Timeline
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.targetsAvailable
andWI.whenTargetsAvailable
to 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 aTarget
domain.
- 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.contentLoaded
adds 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::recordCanvasAction
to actually check that theCanvasRenderingContext
still 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 theCanvasRenderingContext
still 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 ofcanvasId
that are actively recording, which can then be iterated to
handle marking the end of a frame for each once the microtask fires. If thecanvasId
can't
be re-found, then the relatedCanvasRenderingContext
must 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_varargs
in assert function.
This means that op_call_varargs's uses are considered as live (like,arguments
in this example).
But it is not necessary to mark it "live": if we are in assertImpl,arguments
is already loaded into the stack, and we no longer
usearguments
when exiting, and the execution after the exit. Marking thisarguments
live makes thisarguments
allocated
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):
Nov 21, 2019:
- 10:46 PM Changeset in webkit [252765] by
-
- 2 edits in trunk/JSTests
Unreviewed test262 gardening following r252680.
- test262/expectations.yaml:
Mark eight test cases as passing.
- 10:01 PM Changeset in webkit [252764] by
-
- 9 copies1 add in releases/Apple/Safari Technology Preview/Safari Technology Preview 96
Added a tag for Safari Technology Preview release 96.
- 9:41 PM Changeset in webkit [252763] by
-
- 14 edits9 adds in trunk
GetByStatus should not say it took the slow path for multiple identifiers and should have a way to indicate if the StructureStubInfo it saw took the slow path
https://bugs.webkit.org/show_bug.cgi?id=204435
Reviewed by Tadeu Zagallo.
JSTests:
- microbenchmarks/get-by-val-polymorphic-ic-1.js: Added.
(assert):
(test1.foo):
(test1):
- microbenchmarks/get-by-val-polymorphic-ic-2.js: Added.
(assert):
(test2.foo):
(test2):
- microbenchmarks/get-by-val-polymorphic-ic-3.js: Added.
(assert):
(test3.foo):
(test3.args):
(test3):
- microbenchmarks/get-by-val-polymorphic-ic-4.js: Added.
(assert):
(test4.foo):
(test4.capture):
(test4.args):
(test4):
- microbenchmarks/get-by-val-polymorphic-ic-5.js: Added.
(assert):
(test5.foo):
(test5.capture):
(test5.args):
(test5):
- microbenchmarks/get-by-val-polymorphic-ic-6.js: Added.
(assert):
(test6.foo):
(test6.capture):
(test6.args):
(test6):
- microbenchmarks/get-by-val-polymorphic-ic-7.js: Added.
(assert):
(test7.foo):
(test7):
- microbenchmarks/get-by-val-polymorphic-ic-8.js: Added.
(assert):
(test7.foo):
(test7):
- microbenchmarks/get-by-val-polymorphic-ic-9.js: Added.
(assert):
(test7.foo):
(test7):
Source/JavaScriptCore:
I discovered some issues with get by val ICs when re-running the microbenchmarks
I wrote. I noticed that we were faster when not running with the DFG. The reason
for this is that we were only emitting a get by val IC in the DFG/FTL when we
observe the GetByStatus says it didn't "go to the slow path". The logic in GetByStatus
for building up a variant list was wrong for ICs with multiple identifiers. We have
a consistency check when building up the list to ensure that no two variants have
structure sets which overlap, because we wouldn't know which one to choose. However,
we were accidentally saying two GetByIdVariants overlap when they had different identifiers.
This patch fixes that bug by also doing an identifier comparison check. Two GetByIdVariants
with different identifiers do not overlap.
We also used to say a GetByStatus "goes to the slow path" if any of the cases were an
array-like load. I wrote that code thinking that ArrayProfile would just handle it.
However, sometimes we have a get by val IC that both has string properties and int32 properties.
In these kinds of scenarios, an IC is super profitable. This patch now distinguishes
between a GetByStatus saying "we're a slow path" and if we actually observed the StructureStubInfo
go to the slow path. In the DFG/FTL, we only forgo emitting a get by val IC when observing a
prior StructureStubInfo that went to the slow path.
I also realized are call to StructureStubInfo::considerCaching was wrong for get by val ICs.
We were only considering the Structure in isolation, not the { Structure, Identifier }
pair. For get by val, we need to consider the pair together, since {s1, "a"}
and {s1, "b"} will be two different access cases.
This patch demonstrates that on these microbenchmarks, get by val ICs can
be between 50-200% faster.
- bytecode/GetByIdVariant.cpp:
(JSC::GetByIdVariant::dumpInContext const):
- bytecode/GetByIdVariant.h:
(JSC::GetByIdVariant::overlaps):
- bytecode/GetByStatus.cpp:
(JSC::GetByStatus::GetByStatus):
(JSC::GetByStatus::computeForStubInfoWithoutExitSiteFeedback):
(JSC::GetByStatus::makesCalls const):
(JSC::GetByStatus::slowVersion const):
(JSC::GetByStatus::merge):
(JSC::GetByStatus::dump const):
- bytecode/GetByStatus.h:
(JSC::GetByStatus::GetByStatus):
(JSC::GetByStatus::takesSlowPath const):
(JSC::GetByStatus::observedStructureStubInfoSlowPath const):
- bytecode/ICStatusUtils.h:
(JSC::appendICStatusVariant):
- bytecode/InByIdVariant.h:
(JSC::InByIdVariant::overlaps):
- bytecode/InstanceOfVariant.h:
(JSC::InstanceOfVariant::overlaps):
- bytecode/PutByIdVariant.h:
(JSC::PutByIdVariant::overlaps):
- bytecode/StructureStubInfo.cpp:
(JSC::StructureStubInfo::visitWeakReferences):
- bytecode/StructureStubInfo.h:
(JSC::StructureStubInfo::considerCaching):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
- jit/JITOperations.cpp:
- 9:17 PM Changeset in webkit [252762] by
-
- 26 edits4 adds in trunk
Experimental support for HDR media query
https://bugs.webkit.org/show_bug.cgi?id=204422
Reviewed by Eric Carlson.
Source/WebCore:
Test: fast/media/mq-highdynamicrange-live-update.html
Add support for the dynamic-range: media query.
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- css/CSSValueKeywords.in:
- css/MediaFeatureNames.h:
- css/MediaQueryEvaluator.cpp:
(WebCore::dynamicRangeEvaluate):
- css/MediaQueryExpression.cpp:
(WebCore::featureWithValidIdent):
- page/Chrome.cpp:
(WebCore::Chrome::windowScreenDidChange):
- page/Settings.yaml:
- page/SettingsBase.h:
- platform/PlatformScreen.h:
- platform/ScreenProperties.h:
(WebCore::ScreenData::encode const):
(WebCore::ScreenData::decode):
- platform/ios/PlatformScreenIOS.mm:
(WebCore::screenSupportsHighDynamicRange):
- platform/mac/PlatformScreenMac.mm:
(WebCore::collectScreenProperties):
(WebCore::screenSupportsHighDynamicRange):
- testing/InternalSettings.cpp:
(WebCore::InternalSettings::forcedSupportsHighDynamicRangeValue const):
(WebCore::InternalSettings::setForcedSupportsHighDynamicRangeValue):
- testing/InternalSettings.h:
- testing/InternalSettings.idl:
Source/WebCore/PAL:
- PAL.xcodeproj/project.pbxproj:
- pal/PlatformMac.cmake:
- pal/cocoa/MediaToolboxSoftLink.cpp: Renamed from Source/WebCore/platform/cocoa/MediaToolboxSoftLink.h.
- pal/cocoa/MediaToolboxSoftLink.h: Renamed from Source/WebCore/platform/cocoa/MediaToolboxSoftLink.cpp.
Source/WebKit:
Notify the WebContent process of updated screen properties when the screen's
color space changes.
- UIProcess/Cocoa/WebViewImpl.h:
- UIProcess/Cocoa/WebViewImpl.mm:
(-[WKWindowVisibilityObserver startObserving:]):
(-[WKWindowVisibilityObserver stopObserving:]):
(-[WKWindowVisibilityObserver _screenDidChangeColorSpace:]):
(WebKit::WebViewImpl::screenDidChangeColorSpace):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::screenPropertiesDidChange):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::setScreenProperties):
LayoutTests:
- fast/media/mq-highdynamicrange-live-update-expected.txt: Added.
- fast/media/mq-highdynamicrange-live-update.html: Added.
- 9:09 PM Changeset in webkit [252761] by
-
- 7 edits in trunk
Scrolling to fragment shouldn't happen as a part of updating style
https://bugs.webkit.org/show_bug.cgi?id=203982
Reviewed by Simon Fraser.
Source/WebCore:
Don't scroll to the current URL's fragment at the end of resolveStyle. Instead, schedule a task
to scroll to the current URL's fragment when all pending stylesheets have finished loading.
This patch also moves the code which sets a Document's m_gotoAnchorNeededAfterStylesheetsLoadflag
from FrameView to FrameLoader as FrameView shouldn't be relying on the states of pending stylesheets.
- dom/Document.cpp:
(WebCore::Document::resolveStyle): Removed the code to scroll to the current URL's fragment.
(WebCore::Document::didRemoveAllPendingStylesheet): Added a code to schedule a task to scoll.
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::scrollToFragmentWithParentBoundary): Moved the code to trigger the code
in didRemoveAllPendingStylesheet from FrameView.
- page/FrameView.cpp:
(WebCore::FrameView::scrollToFragment):
(WebCore::FrameView::scrollToFragmentInternal): Renamed from scrollToAnchor since this function sets
the current anchor. Also removed the code which defers the scrolling based on pending stylesheets'
states since such a code doesn't belong in FrameView.
- page/FrameView.h:
LayoutTests:
Made an existing test more robust.
- fast/parser/adoption-agency-unload-iframe-4.html: Made the iframe's data URL not cachable.
- 7:56 PM Changeset in webkit [252760] by
-
- 38 edits2 deletes in trunk
Remove font-variant @font-face descriptor
https://bugs.webkit.org/show_bug.cgi?id=203179
Reviewed by Simon Fraser.
Source/WebCore:
As per https://github.com/w3c/csswg-drafts/issues/2531
Deleted relevant tests.
- css/CSSFontFace.cpp:
(WebCore::CSSFontFace::font):
(WebCore::CSSFontFace::setVariantLigatures): Deleted.
(WebCore::CSSFontFace::setVariantPosition): Deleted.
(WebCore::CSSFontFace::setVariantCaps): Deleted.
(WebCore::CSSFontFace::setVariantNumeric): Deleted.
(WebCore::CSSFontFace::setVariantAlternates): Deleted.
(WebCore::CSSFontFace::setVariantEastAsian): Deleted.
- css/CSSFontFace.h:
- css/CSSFontFaceSource.cpp:
(WebCore::CSSFontFaceSource::load):
(WebCore::CSSFontFaceSource::font):
- css/CSSFontFaceSource.h:
- css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::addFontFaceRule):
- css/FontFace.cpp:
(WebCore::FontFace::create):
(WebCore::FontFace::setVariant): Deleted.
(WebCore::FontFace::variant const): Deleted.
- css/FontFace.h:
- css/FontFace.idl:
- loader/cache/CachedFont.cpp:
(WebCore::CachedFont::createFont):
(WebCore::CachedFont::platformDataFromCustomData):
- loader/cache/CachedFont.h:
- loader/cache/CachedSVGFont.cpp:
(WebCore::CachedSVGFont::createFont):
(WebCore::CachedSVGFont::platformDataFromCustomData):
- loader/cache/CachedSVGFont.h:
- platform/graphics/FontCache.cpp:
(WebCore::FontPlatformDataCacheKey::FontPlatformDataCacheKey):
(WebCore::FontPlatformDataCacheKey::operator== const):
(WebCore::FontPlatformDataCacheKeyHash::hash):
(WebCore::FontCache::getCachedFontPlatformData):
(WebCore::FontCache::fontForFamily):
- platform/graphics/FontCache.h:
(WebCore::FontCache::fontForFamily):
(WebCore::FontCache::getCachedFontPlatformData):
(WebCore::FontCache::createFontPlatformDataForTesting):
- platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::preparePlatformFont):
(WebCore::fontWithFamily):
(WebCore::FontCache::createFontPlatformData):
(WebCore::FontCache::systemFallbackForCharacters):
- platform/graphics/cocoa/FontCacheCoreText.h:
- platform/graphics/cocoa/FontFamilySpecificationCoreText.cpp:
(WebCore::FontFamilySpecificationCoreText::fontRanges const):
- platform/graphics/mac/FontCustomPlatformData.cpp:
(WebCore::FontCustomPlatformData::fontPlatformData):
- platform/graphics/mac/FontCustomPlatformData.h:
LayoutTests:
Delete tests for the removed feature.
- css3/font-variant-font-face-all-expected.html: Deleted.
- css3/font-variant-font-face-all.html: Deleted.
- css3/font-variant-font-face-override-expected.html:
- css3/font-variant-font-face-override.html:
- fast/text/font-face-empty-string-expected.txt:
- fast/text/font-face-empty-string.html:
- fast/text/font-face-javascript-expected.txt:
- fast/text/font-face-javascript.html:
- 7:01 PM Changeset in webkit [252759] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, sort WebKit's project file after changes in r252702 and r252637.
- WebKit.xcodeproj/project.pbxproj:
- 6:16 PM Changeset in webkit [252758] by
-
- 4 edits1 add1 delete in trunk
Fix broken String.prototype.replace() and replaceAll().
https://bugs.webkit.org/show_bug.cgi?id=204479
<rdar://problem/57354854>
Reviewed by Ross Kirsling and Yusuke Suzuki.
JSTests:
- ChakraCore.yaml:
- ChakraCore/test/Strings/replace.baseline-jsc: Removed.
- We no longer need this because we've fixed the spec compliance issue in replace().
- stress/string-replaceAll-2.js: Added.
Source/JavaScriptCore:
String.prototype.replace() regressed due to r252683: <https://trac.webkit.org/r252683>
for webkit.org/b/202471. The patch failed to handle InternalFunctions.
This patch also fixed a spec compliance bug for String.prototype.replace() i.e.
the replaceValue needs to be evaluated before we check if there's a match in the
source string.
Ref: 21.1.3.16-6 at https://www.ecma-international.org/ecma-262/10.0/#sec-string.prototype.replace
For String.prototype.replaceAll(), make sure it "behaves just like
String.prototype.replace if searchValue is a global regular expression".
Ref: https://github.com/tc39/proposal-string-replaceall
r252683 also made replaceUsingStringSearch() work the same way as
replaceUsingRegExpSearch(). I think this is the wrong trade off to make.
replaceUsingRegExpSearch() expects each search leg to do a RegExp search, which
is inherently expensive. We shouldn't make string searches slower just because
the RegExp search does it that way.
However, at https://bugs.webkit.org/show_bug.cgi?id=202471#c22, Ross pointed out
that JetStream 2 results appeared to be neutral. I think we should double check
with a micro-benchmark as well. I'll leave this for a later patch. For now, the
goal of this patch is simply to achieve correctness.
Ref: https://bugs.webkit.org/show_bug.cgi?id=204481
- runtime/StringPrototype.cpp:
(JSC::replaceUsingRegExpSearch):
(JSC::replaceUsingStringSearch):
- 5:32 PM Changeset in webkit [252757] by
-
- 2 edits in trunk/Source/WebKit
Crash in com.apple.WebKit.WebContent at WebKit: WebKit::StorageAreaMap::loadValuesIfNeeded
https://bugs.webkit.org/show_bug.cgi?id=204459
<rdar://problem/57383446>
Reviewed by Geoffrey Garen.
If m_storageMapID can be null if connect() fails.
- WebProcess/WebStorage/StorageAreaMap.cpp:
(WebKit::StorageAreaMap::setItem):
(WebKit::StorageAreaMap::removeItem):
(WebKit::StorageAreaMap::clear):
(WebKit::StorageAreaMap::loadValuesIfNeeded):
- 4:54 PM Changeset in webkit [252756] by
-
- 6 edits in trunk/Source/JavaScriptCore
Fix Win64 compile errors
https://bugs.webkit.org/show_bug.cgi?id=204471
Reviewed by Brent Fulgham.
Fix warnings being treated as errors.
- bytecode/AccessCase.cpp:
(JSC::AccessCase::requiresIdentifierNameMatch const):
(JSC::AccessCase::requiresInt32PropertyCheck const):
(JSC::AccessCase::needsScratchFPR const):
(JSC::AccessCase::doesCalls const):
(JSC::AccessCase::canReplace const):
- dfg/DFGOSRExit.cpp:
(JSC::DFG::OSRExit::executeOSRExit):
- jit/JITOperations.cpp:
(JSC::profiledAdd):
- jit/Repatch.cpp:
(JSC::appropriateOptimizingGetByFunction):
(JSC::appropriateGetByFunction):
- tools/JSDollarVM.cpp:
(JSC::functionCallWithStackSize):
- 4:32 PM Changeset in webkit [252755] by
-
- 7 edits in trunk/Source
Ignore the requests to enter/exit video fullscreen/picture-in-picture if the requesting mode is the same as the current mode
https://bugs.webkit.org/show_bug.cgi?id=204461
Patch by Peng Liu <Peng Liu> on 2019-11-21
Reviewed by Jer Noble.
Source/WebCore:
Change the order of enum VideoPresentationMode and add some log messages regarding presentation mode change.
Those changes make the debugging easier.
Covered by existing test cases.
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::enterFullscreen):
(WebCore::HTMLMediaElement::didBecomeFullscreenElement):
(WebCore::HTMLMediaElement::waitForPreparedForInlineThen):
(WebCore::HTMLMediaElement::setVideoFullscreenLayer):
- html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::webkitSetPresentationMode):
(WebCore::HTMLVideoElement::setFullscreenMode):
(WebCore::HTMLVideoElement::fullscreenModeChanged):
- html/HTMLVideoElement.h:
- html/HTMLVideoElement.idl:
Source/WebKit:
In enterVideoFullscreenForVideoElement() and exitVideoFullscreenForVideoElement(),
we can ignore the request if the targeting mode is the same as the current one.
- WebProcess/cocoa/VideoFullscreenManager.mm:
(WebKit::VideoFullscreenManager::enterVideoFullscreenForVideoElement):
(WebKit::VideoFullscreenManager::exitVideoFullscreenForVideoElement):
- 3:35 PM Changeset in webkit [252754] by
-
- 10 edits1 add in trunk
Unreviewed, rolling in again, regression is not caused by it
https://bugs.webkit.org/show_bug.cgi?id=202471
JSTests:
- stress/string-replaceall.js: Added.
(shouldBe):
(shouldThrowTypeError):
(shouldBe.string_appeared_here.replaceAll.Symbol.match):
Source/JavaScriptCore:
- builtins/BuiltinNames.h:
- builtins/StringPrototype.js:
(replaceAll):
- runtime/StringPrototype.cpp:
(JSC::StringPrototype::finishCreation):
(JSC::jsSpliceSubstringsWithSeparators):
(JSC::replaceUsingStringSearch):
(JSC::replace):
(JSC::stringProtoFuncReplaceUsingStringSearch):
(JSC::stringProtoFuncReplaceAllUsingStringSearch):
Source/WTF:
- wtf/text/StringCommon.h:
(WTF::findCommon):
LayoutTests:
- js/Object-getOwnPropertyNames-expected.txt:
- js/script-tests/Object-getOwnPropertyNames.js:
- 3:18 PM Changeset in webkit [252753] by
-
- 10 edits1 delete in trunk
Unreviewed, rolling out r252683 and r252721.
https://bugs.webkit.org/show_bug.cgi?id=204475
13% regression in JetStream2/prepack-wtb (Requested by
yusukesuzuki on #webkit).
Reverted changesets:
"Implement String.prototype.replaceAll"
https://bugs.webkit.org/show_bug.cgi?id=202471
https://trac.webkit.org/changeset/252683
"Unreviewed, address Darin's feedback on r252683."
https://trac.webkit.org/changeset/252721
- 2:42 PM Changeset in webkit [252752] by
-
- 1 copy in tags/Safari-608.5.1
Tag Safari-608.5.1.
- 1:47 PM Changeset in webkit [252751] by
-
- 2 edits in trunk/Source/WebCore
[WebGL] Fix framebufferTexture2D with DEPTH_STENCIL_ATTACHMENT on ANGLE
https://bugs.webkit.org/show_bug.cgi?id=204433
Reviewed by Dean Jackson.
ANGLE expects requests for DEPTH_STENCIL_ATTACHMENT to not be split into two calls, as previous WebGL 1 backend required.
No new tests. Prevents conformance/extensions/webgl-depth-texture.html regression when run with the ANGLE backend.
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::framebufferTexture2D):
- 1:42 PM Changeset in webkit [252750] by
-
- 3 edits in trunk/Source/WebCore
[LFC][IFC] Cache trailing trimmable width.
https://bugs.webkit.org/show_bug.cgi?id=204466
<rdar://problem/57403888>
Reviewed by Antti Koivisto.
Line::trailingTrimmableWidth() is called every time we pass a run to the line breaker because their accumulated widths are part of the "available width context".
- layout/inlineformatting/InlineLine.cpp:
(WebCore::Layout::Line::removeTrailingTrimmableContent):
(WebCore::Layout::Line::appendTextContent):
(WebCore::Layout::Line::appendNonReplacedInlineBox):
(WebCore::Layout::Line::TrimmableContent::append):
(WebCore::Layout::Line::trailingTrimmableWidth const): Deleted.
- layout/inlineformatting/InlineLine.h:
(WebCore::Layout::Line::trailingTrimmableWidth const):
(WebCore::Layout::Line::TrimmableContent::width const):
(WebCore::Layout::Line::TrimmableContent::runs):
(WebCore::Layout::Line::TrimmableContent::isEmpty const):
(WebCore::Layout::Line::TrimmableContent::clear):
- 1:30 PM Changeset in webkit [252749] by
-
- 25 edits1 move in trunk/LayoutTests
Flaky Test: compositing/backing/backing-store-attachment-with-rotation.html
https://bugs.webkit.org/show_bug.cgi?id=204394
Reviewed by Myles C. Maxfield.
Move compositing-overlap-utils.js to compositing/resources and use its layerTreeWithoutTransforms()
function to not dump transforms for the flakey test.
Adjust other tests which use this JS file.
- compositing/backing/backing-store-attachment-with-rotation-expected.txt:
- compositing/backing/backing-store-attachment-with-rotation.html:
- compositing/layer-creation/animation-overlap-with-children.html:
- compositing/layer-creation/mismatched-rotated-transform-animation-overlap.html:
- compositing/layer-creation/mismatched-rotated-transform-transition-overlap.html:
- compositing/layer-creation/mismatched-transform-transition-overlap.html:
- compositing/layer-creation/multiple-keyframes-animation-overlap.html:
- compositing/layer-creation/scale-rotation-animation-overlap.html:
- compositing/layer-creation/scale-rotation-transition-overlap.html:
- compositing/layer-creation/translate-animation-overlap.html:
- compositing/layer-creation/translate-scale-animation-overlap.html:
- compositing/layer-creation/translate-scale-transition-overlap.html:
- compositing/layer-creation/translate-transition-overlap.html:
- compositing/resources/compositing-test-utils.js: Renamed from LayoutTests/compositing/layer-creation/resources/compositing-overlap-utils.js.
(makeDots):
(layerTreeWithoutTransforms):
(dumpLayersWithoutTransforms):
- legacy-animation-engine/compositing/layer-creation/animation-overlap-with-children.html:
- legacy-animation-engine/compositing/layer-creation/mismatched-rotated-transform-animation-overlap.html:
- legacy-animation-engine/compositing/layer-creation/mismatched-rotated-transform-transition-overlap.html:
- legacy-animation-engine/compositing/layer-creation/mismatched-transform-transition-overlap.html:
- legacy-animation-engine/compositing/layer-creation/multiple-keyframes-animation-overlap.html:
- legacy-animation-engine/compositing/layer-creation/scale-rotation-animation-overlap.html:
- legacy-animation-engine/compositing/layer-creation/scale-rotation-transition-overlap.html:
- legacy-animation-engine/compositing/layer-creation/translate-animation-overlap.html:
- legacy-animation-engine/compositing/layer-creation/translate-scale-animation-overlap.html:
- legacy-animation-engine/compositing/layer-creation/translate-scale-transition-overlap.html:
- legacy-animation-engine/compositing/layer-creation/translate-transition-overlap.html:
- 1:26 PM Changeset in webkit [252748] by
-
- 3 edits in trunk/Source/WebCore
AX: support more attributes for AXIsolatedTreeNode
https://bugs.webkit.org/show_bug.cgi?id=204241
<rdar://problem/57237606>
Reviewed by Zalan Bujtas.
Add more attributes to the accessibility isolated tree model.
- accessibility/isolatedtree/AXIsolatedTreeNode.cpp:
(WebCore::AXIsolatedObject::initializeAttributeData):
- accessibility/isolatedtree/AXIsolatedTreeNode.h:
- 1:11 PM Changeset in webkit [252747] by
-
- 8 edits in trunk
Web Inspector: Outline sRGB-safe areas on P3 color picker
https://bugs.webkit.org/show_bug.cgi?id=203533
<rdar://problem/56688057>
Reviewed by Brian Burg.
Source/WebInspectorUI:
Visualize the edge of sRGB gamut as a white line.
- Localizations/en.lproj/localizedStrings.js:
- UserInterface/Models/Color.js:
(WI.Color.displayP3toSRGB.multiplyMatrixByVector):
(WI.Color.displayP3toSRGB):
(WI.Color._toLinearLight):
(WI.Color._gammaCorrect):
Use equations from CSS Color Module Level 4.
- UserInterface/Views/ColorSquare.css:
(.color-square):
(.color-square > .crosshair):
Place the crosshair above the sRGB edge line.
(.color-square .svg-root):
(.color-square .srgb-edge):
(.color-square .srgb-label):
(.color-square .srgb-label:hover):
(.color-square .srgb-label:hover + .svg-root > .srgb-edge):
(@media (-webkit-device-pixel-ratio: 1)):
Make the optical weight of the line on non-retina screens the same as on retina screens.
- UserInterface/Views/ColorSquare.js:
(WI.ColorSquare):
(WI.ColorSquare.prototype.set tintedColor):
(WI.ColorSquare.prototype._updateBaseColor):
(WI.ColorSquare.prototype._drawSRGBOutline):
LayoutTests:
Test WI.Color.displayP3toSRGB.
LayoutTests:
- inspector/model/color-expected.txt:
- inspector/model/color.html:
- 12:27 PM Changeset in webkit [252746] by
-
- 2 edits in trunk/Source/WebKitLegacy/mac
Remove unneeded code that annotated DOMHTMLElement as conforming to UITextInputTraits protocol
https://bugs.webkit.org/show_bug.cgi?id=204464
Reviewed by Wenson Hsieh.
DOMHTMLElement never really conformed to the UITextInputTraits protocol. It was annotated as doing so
in order to register with the runtime as part of advertising that it implemented two UITextInputTraits_Private
messages in r222487: -acceptsAutofilledLoginCredentials and -representingPageURL. These messages were
subsequently removed in r222991 (over years ago). So, we do not need to continue advertising UITextInputTraits
conformance.
- DOM/DOMHTMLInputElement.h:
- 12:06 PM Changeset in webkit [252745] by
-
- 7 edits in trunk/Source/WebInspectorUI
Web Inspector: call frames from blackboxed scripts should be visually distinct
https://bugs.webkit.org/show_bug.cgi?id=204424
Reviewed by Timothy Hatcher.
Seeing "Deferred pause from blackboxed script" in the Pause Reason does indicate that
something in the Call Stack was blackboxed, but it doesn't clarify what was blackboxed.
Given that the debugger effectively ignores blackboxed scripts, we should distinguish call
frames that were ignored so that it's clear how the current pause location was reached.
- UserInterface/Views/CallFrameTreeElement.js:
(WI.CallFrameTreeElement):
(WI.CallFrameTreeElement.prototype.onattach):
- UserInterface/Views/CallFrameTreeElement.css:
(.tree-outline .item.call-frame.blackboxed:not(.selected)): Added.
Make blackboxed call frames 50% opaque when not selected. Add additional explanatory text to
the end of the tooltip when hovering blackboxed call frame tree elements.
- UserInterface/Views/ContextMenuUtilities.js:
(WI.appendContextMenuItemsForSourceCode):
- UserInterface/Views/SourceCodeTreeElement.js:
(WI.SourceCodeTreeElement.prototype._updateToggleBlackboxImageElementState):
Update tooltip/contextmenu text to include "blacboxing" so functionality is clearer.
- UserInterface/Models/SourceCodeLocation.js:
(WI.SourceCodeLocation.prototype.populateLiveDisplayLocationTooltip):
Allow a suffix to be added to the end of the live location.
- Localizations/en.lproj/localizedStrings.js:
- 11:53 AM Changeset in webkit [252744] by
-
- 2 edits in trunk/LayoutTests
REGRESSION (r234440): [Mac WK2 ] Layout Test http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-but-access-from-wrong-frame.html is flaky timeout (194164)
<https://bugs.webkit.org/show_bug.cgi?id=194164>
<rdar://problem/48011649>
Reviewed by John Wilander.
Test no longer flaky.
- platform/mac-wk2/TestExpectations:
- 11:50 AM Changeset in webkit [252743] by
-
- 5 edits in trunk
[iOS] Web process crashes when attempting to request document context in a textarea
https://bugs.webkit.org/show_bug.cgi?id=204455
<rdar://problem/57383975>
Reviewed by Tim Horton.
Source/WebCore:
Make
WebCore::rangesOverlap
robust in the case where the ranges' container nodes are in different tree scopes.
Currently,compareBoundaryPoints
returns an exception in this scenario, whichrangesOverlap
does not expect.
As a result, we crash when releasing the return value after boundary point comparison. To fix this, just upgrade
theownerDocument
check inrangesOverlap
to check for tree scopes instead, via the
areNodesConnectedInSameTreeScope
helper function.
Test: WebKit.DocumentEditingContextSpatialRequestInTextField
- dom/Range.cpp:
(WebCore::rangesOverlap):
Tools:
Add a test to verify that we don't crash (and are still able to retrieve character rects).
- TestWebKitAPI/Tests/WebKitCocoa/DocumentEditingContext.mm:
(-[UIWKDocumentContext markedTextRects]):
(-[UIWKDocumentContext textRects]):
- TestWebKitAPI/ios/UIKitSPI.h:
- 11:31 AM Changeset in webkit [252742] by
-
- 5 edits in trunk/Source/WebCore
Tighten ScrollingTreeNode tree mutations
https://bugs.webkit.org/show_bug.cgi?id=204451
Reviewed by Simon Fraser.
- Use plain Vector instead of std::unique_ptr<Vector> for children
- Use Vector<Ref> instead of Vector<RefPtr>
- Remove non-const ScrollingTreeNode::children() accessor
- Add relase assert that all mutations happen during ScrollingTree::commitTreeState
- page/scrolling/ScrollingTree.cpp:
(WebCore::ScrollingTree::commitTreeState):
(WebCore::ScrollingTree::updateTreeFromStateNode):
(WebCore::ScrollingTree::applyLayerPositionsRecursive):
(WebCore::ScrollingTree::notifyRelatedNodesRecursive):
- page/scrolling/ScrollingTree.h:
(WebCore::ScrollingTree::inCommitTreeState const):
- page/scrolling/ScrollingTreeNode.cpp:
(WebCore::ScrollingTreeNode::appendChild):
(WebCore::ScrollingTreeNode::removeChild):
(WebCore::ScrollingTreeNode::removeAllChildren):
Encapsulate mutations to these functions.
(WebCore::ScrollingTreeNode::dump const):
(WebCore::ScrollingTreeNode::scrollingNodeForPoint const):
- page/scrolling/ScrollingTreeNode.h:
(WebCore::ScrollingTreeNode::children const):
(WebCore::ScrollingTreeNode::children): Deleted.
- 10:53 AM Changeset in webkit [252741] by
-
- 5 edits in trunk/Source/WebCore
Implement accelerated video-to-texture upload path for ANGLE backend for WebGL on desktop
https://bugs.webkit.org/show_bug.cgi?id=200904
Support GPU-accelerated video uploads to WebGL textures with ANGLE.
Uses the IOSurface path, as the CVOpenGLTextureCache seems to have
been disabled at the OS level, even on top-of-tree WebKit without
using ANGLE.
Uses the EGL_ANGLE_iosurface_client_buffer extension to import
IOSurfaces; reuses all of the existing shader and OpenGL code.
Necessary other fixes to GraphicsContext3D's ANGLE backend: supporting
context sharing, and querying the selected EGLConfig.
Covered by WebGL conformance tests. Verified speedup with
"Animating textures in WebGL" MDN article.
Patch by Kenneth Russell <kbr@chromium.org> on 2019-11-21
Reviewed by Dean Jackson.
- platform/graphics/GraphicsContext3D.h:
(WebCore::GraphicsContext3D::platformDisplay const):
(WebCore::GraphicsContext3D::platformConfig const):
- platform/graphics/cocoa/GraphicsContext3DCocoa.mm:
(WebCore::GraphicsContext3D::GraphicsContext3D):
- platform/graphics/cv/VideoTextureCopierCV.cpp:
(WebCore::VideoTextureCopierCV::initializeContextObjects):
(WebCore::VideoTextureCopierCV::initializeUVContextObjects):
(WebCore::VideoTextureCopierCV::attachIOSurfaceToTexture):
(WebCore::VideoTextureCopierCV::detachIOSurfaceFromTexture):
(WebCore::VideoTextureCopierCV::copyImageToPlatformTexture):
(WebCore::VideoTextureCopierCV::copyVideoTextureToPlatformTexture):
- platform/graphics/cv/VideoTextureCopierCV.h:
- 9:52 AM Changeset in webkit [252740] by
-
- 2 edits in trunk/Tools
Fix triggers for catalina debug and webgl testers.
https://bugs.webkit.org/show_bug.cgi?id=204456
Reviewed by Jonathan Bedard.
- BuildSlaveSupport/build.webkit.org-config/config.json:
- 9:39 AM Changeset in webkit [252739] by
-
- 2 edits in trunk/Tools
build.webkit.org: Forward results database credentials to jsc test runs
https://bugs.webkit.org/show_bug.cgi?id=204453
Reviewed by Aakash Jain.
- BuildSlaveSupport/build.webkit.org-config/steps.py:
(RunJavaScriptCoreTests.init): Do not log environment with credentials in it.
(RunJavaScriptCoreTests.start): Add results database API key to environment.
(RunLLINTCLoopTests.init): Do not log environment with credentials in it.
(RunLLINTCLoopTests.start): Add results database API key to environment.
(Run32bitJSCTests.init): Do not log environment with credentials in it.
(Run32bitJSCTests.start): Add results database API key to environment.
- 9:08 AM Changeset in webkit [252738] by
-
- 3 edits in trunk/Tools
run-webkit-tests: Clean-up simulator processes after tearing down simulators
https://bugs.webkit.org/show_bug.cgi?id=204416
Reviewed by Simon Fraser.
- Scripts/webkitpy/common/system/executive_mock.py:
(MockExecutive.running_pids): Make function Python 3 compatible.
- Scripts/webkitpy/xcode/simulated_device.py:
(SimulatedDeviceManager.tear_down): Kill any CoreSimulator processes.
- 9:07 AM Changeset in webkit [252737] by
-
- 5 edits in trunk
Regression (r252660): Layout Test platform/ios/mediastream/audio-muted-in-background-tab.html is failing
https://bugs.webkit.org/show_bug.cgi?id=204408
<rdar://problem/57364353>
Reviewed by Eric Carlson.
Source/WebCore:
Covered by no longer failing test.
- platform/mediastream/mac/CoreAudioCaptureSource.h:
- platform/mock/MockRealtimeMediaSourceCenter.cpp:
Now that we are using CoreAudioCaptureSource, we need to use its factory to interrupt/uninterrupt the active source.
LayoutTests:
- platform/ios/TestExpectations:
- 8:50 AM Changeset in webkit [252736] by
-
- 13 edits in trunk/Source/WebCore
MediaQueryEvaluator shouldn't know about style resolver
https://bugs.webkit.org/show_bug.cgi?id=204449
Reviewed by Zalan Bujtas.
Gather dynamic dependencies from MediaQueryEvaluator into a struct rather than writing them directly to a resolver.
- css/MediaQueryEvaluator.cpp:
(WebCore::MediaQueryEvaluator::evaluate const):
Delete a duplicate version of evaluate() that returned partial dependencies.
- css/MediaQueryEvaluator.h:
(WebCore::MediaQueryDynamicResults::append):
- css/parser/SizesAttributeParser.cpp:
(WebCore::SizesAttributeParser::mediaConditionMatches):
This doesn't need resolver, the picture element implementation takes care of the media query dependencies.
- html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
- html/HTMLPictureElement.cpp:
(WebCore::HTMLPictureElement::viewportChangeAffectedPicture const):
(WebCore::HTMLPictureElement::appearanceChangeAffectedPicture const):
Store MediaQueryDynamicResults struct instead of individual vectors.
- style/RuleSet.cpp:
(WebCore::Style::RuleSet::addChildRules):
(WebCore::Style::RuleSet::addRulesFromSheet):
- style/RuleSet.h:
- style/StyleResolver.cpp:
(WebCore::Style::Resolver::appendAuthorStyleSheets):
(WebCore::Style::Resolver::addMediaQueryDynamicResults):
(WebCore::Style::Resolver::hasMediaQueriesAffectedByViewportChange const):
(WebCore::Style::Resolver::hasMediaQueriesAffectedByAccessibilitySettingsChange const):
(WebCore::Style::Resolver::hasMediaQueriesAffectedByAppearanceChange const):
(WebCore::Style::Resolver::addViewportDependentMediaQueryResult): Deleted.
(WebCore::Style::Resolver::addAccessibilitySettingsDependentMediaQueryResult): Deleted.
(WebCore::Style::Resolver::addAppearanceDependentMediaQueryResult): Deleted.
Store MediaQueryDynamicResults struct instead of individual vectors.
- style/StyleResolver.h:
(WebCore::Style::Resolver::hasViewportDependentMediaQueries const):
(WebCore::Style::Resolver::hasAccessibilitySettingsDependentMediaQueries const):
(WebCore::Style::Resolver::hasAppearanceDependentMediaQueries const):
- style/StyleScopeRuleSets.cpp:
(WebCore::Style::ScopeRuleSets::updateUserAgentMediaQueryStyleIfNeeded const):
(WebCore::Style::ScopeRuleSets::initializeUserStyle):
(WebCore::Style::ScopeRuleSets::collectRulesFromUserStyleSheets):
(WebCore::Style::ScopeRuleSets::appendAuthorStyleSheets):
- style/StyleScopeRuleSets.h:
- 8:32 AM Changeset in webkit [252735] by
-
- 3 edits in trunk/Source/WebCore
[LFC] Add support for LFC layout only.
https://bugs.webkit.org/show_bug.cgi?id=204441
<rdar://problem/57382929>
Reviewed by Antti Koivisto.
Clean up the render tree state when RenderView::layout is not called.
- page/FrameViewLayoutContext.cpp:
(WebCore::FrameViewLayoutContext::layoutUsingFormattingContext):
- rendering/updating/RenderTreeUpdater.cpp:
(WebCore::RenderTreeUpdater::updateRendererStyle):
- 8:21 AM Changeset in webkit [252734] by
-
- 2 edits in trunk/Tools
Fix Tools/Scripts/run-javascriptcore-tests after r252490
https://bugs.webkit.org/show_bug.cgi?id=204452
Rubber-stamped by Philippe Normand
Regression introduced in:
results.webkit.org: Report JSC tests to the results database
https://bugs.webkit.org/show_bug.cgi?id=204091
<rdar://problem/49778900>
WebKitGTK and WPE build environment is defined by the dependencies
policy document [1] as a Debian Stable. For Debian theuname
binary
is installed in the/bin/
directory and this directory is included
in the$PATH
for any regular or system user. This fix removes the
path for theuname
command in the run-javascriptcore-tests script.
[1] https://trac.webkit.org/wiki/WebKitGTK/DependenciesPolicy
- Scripts/run-javascriptcore-tests:
(configurationForUpload):
- 7:11 AM Changeset in webkit [252733] by
-
- 2 edits in trunk/LayoutTests
Update test expectations for flaky tests
Unreviewed test gardening.
- platform/win/TestExpectations:
- 6:12 AM Changeset in webkit [252732] by
-
- 5 edits in trunk/Source/WebCore
Support boundingBoxRect and elementRect in AXIsolatedObject.
https://bugs.webkit.org/show_bug.cgi?id=204431
Reviewed by Chris Fleizach.
- Implementation of boundingBoxRect and elementRect in AXIsolatedObject.
- Templatized rectAttributeValue generalize retrieval of cached rects for different types of rects.
- accessibility/AccessibilityObject.h:
- accessibility/AccessibilityObjectInterface.h:
(WebCore::AXCoreObject::pixelSnappedBoundingBoxRect const): Moved from AccessibilityObject.
(WebCore::AXCoreObject::size const): Moved from AccessibilityObject.
- accessibility/isolatedtree/AXIsolatedTreeNode.cpp:
(WebCore::AXIsolatedObject::initializeAttributeData): Caching of boundingBox and element rects.
(WebCore::AXIsolatedObject::rectAttributeValue const): Templatized version.
- accessibility/isolatedtree/AXIsolatedTreeNode.h:
- 4:59 AM Changeset in webkit [252731] by
-
- 2 edits in trunk/Source/WTF
add ASSERT_NOT_REACHED_WITH_MESSAGE and RELEASE_ASSERT_NOT_REACHED_WITH_MESSAGE
https://bugs.webkit.org/show_bug.cgi?id=204445
Patch by Tuomas Karkkainen <tuomas.webkit@apple.com> on 2019-11-21
Reviewed by Antti Koivisto.
Add assertions that combine ASSERT_NOT_REACHED and ASSERT_WITH_MESSAGE.
- wtf/Assertions.h:
- 4:14 AM Changeset in webkit [252730] by
-
- 5 edits in trunk
Web Inspector: removing the blackbox for a specific script doesn't actually remove the blackbox
https://bugs.webkit.org/show_bug.cgi?id=204428
Reviewed by Timothy Hatcher.
Source/JavaScriptCore:
Previously, when updating the blackbox state of each existing script, we would only tell the
Debugger
about when scripts should be blackboxed, not when they shouldn't. This means that
when a given script is un-blackboxed, theDebugger
would never get told about it and would
therefore still defer pauses as if it was blackboxed.
The solution to this is simple; update the blackboxed state of every script, not just those
that should be blackboxed, and tell theDebugger
about each.
- inspector/agents/InspectorDebuggerAgent.cpp:
(Inspector::InspectorDebuggerAgent::setShouldBlackboxURL):
LayoutTests:
- inspector/debugger/setShouldBlackboxURL.html:
- inspector/debugger/setShouldBlackboxURL-expected.txt:
- 2:56 AM WebKitGTK/2.26.x edited by
- (diff)
- 2:56 AM WebKitGTK/2.26.x edited by
- (diff)
Nov 20, 2019:
- 11:25 PM Changeset in webkit [252729] by
-
- 2 edits in trunk/Source/WebCore
Crash at com.apple.WebCore: -[WebRevealHighlight revealContext:drawRectsForItem:]
https://bugs.webkit.org/show_bug.cgi?id=204434
Reviewed by Megan Gardner.
_attributedString was not retained, leading to a potential use-after-dealloc. Fix
this by wrapping it in a RetainPtr. While we're here, remove explicit ivars and
property synthesis and copy the string during assignment.
Reveal functionality is currently not testable.
- editing/cocoa/DictionaryLookup.mm:
(SOFT_LINK_CLASS_OPTIONAL):
(-[WebRevealHighlight initWithHighlightRect:useDefaultHighlight:attributedString:]):
- 10:02 PM Changeset in webkit [252728] by
-
- 3 edits in trunk/Source/JavaScriptCore
[JSC] Extend MacroAssemblerARM64::load/store for datasize = 16
https://bugs.webkit.org/show_bug.cgi?id=204442
<rdar://problem/57366761>
Reviewed by Mark Lam.
Our
void load16(const void* address, RegisterID dest)
andvoid store16(RegisterID src, const void* address)
are not aware of
the condition that passed register can be memoryTempRegister, whileMacroAssemblerARM64::{load,store}
handles it correctly, e.g.
load
invalidatescachedMemoryTempRegister
if destination register is memoryTempRegister. As a result, when we are emitting
or16(TrustedImm32 imm, AbsoluteAddress address)
with address where the address's value does not fit in imm, the generated code
is reusing memoryTempRegister incorrectly.
0xedf8d4fb4: mov x17, #0x7af0
0xedf8d4fb8: movk x17, #0xd5a, lsl #16
0xedf8d4fbc: movk x17, #0x1, lsl #32 Construct imm register on x17.
0xedf8d4fc0: ldrh w17, [x17] Load half word from x17 to w17 (we should invalidate x17 memoryTempRegister here).
0xedf8d4fc4: mov w16, #0x1b
0xedf8d4fc8: orr w16, w17, w16
0xedf8d4fcc: strh w16, [x17] x17 memoryTempRegister is reused while its content is invalid.
The problem is that
load
andstore
functions are not supporting datasize = 16 case. This patch extendsMacroAssemblerARM64::{load,store}
to support 16 so thator16
implementation looks is similar toor32
etc.
- assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::load16):
(JSC::MacroAssemblerARM64::store16):
(JSC::MacroAssemblerARM64::load):
(JSC::MacroAssemblerARM64::store):
- assembler/testmasm.cpp:
(JSC::testOrImmMem):
- 9:12 PM Changeset in webkit [252727] by
-
- 2 edits in trunk/Tools
run-webkit-tests: Make usability test on booting simulators more robust
https://bugs.webkit.org/show_bug.cgi?id=204423
<rdar://problem/57364735>
Reviewed by Alexey Proskuryakov.
- Scripts/webkitpy/xcode/simulated_device.py:
(SimulatedDevice.is_usable): Use regular expressions to find home-screen service.
- 8:34 PM Changeset in webkit [252726] by
-
- 2 edits in trunk/Source/WebCore
[MSVC] error C2039: 'weakPtrFactory': is not a member of 'WebCore::DocumentStorageAccess::requestStorageAccess::<lambda_3f2cfd7704f93d8fe19d5b5f064f8add>'
https://bugs.webkit.org/show_bug.cgi?id=204437
Unreviewed build fix.
MSVC has a bug of a outer lambda's captured 'this' can't be used as
a lambda capture initializer of a inner lambda.
- dom/DocumentStorageAccess.cpp:
(WebCore::DocumentStorageAccess::requestStorageAccess): Replaced '*this' in the lambda capture initializer with '*weakThis'.
- 6:00 PM Changeset in webkit [252725] by
-
- 3 edits in trunk/Source/JavaScriptCore
Baseline JIT should fill in StructureStubInfo's propertyIsInt32 and the slow path should update the array profile more frequently
https://bugs.webkit.org/show_bug.cgi?id=204432
Reviewed by Tadeu Zagallo.
When I added inline caching for get by val, I removed code which updated the
ArrayProfile with some frequency. This patch adds code that does that back,
which recovers some of the JetStream2 regressions we are seeing.
- jit/JITOperations.cpp:
- jit/JITPropertyAccess.cpp:
(JSC::JIT::emit_op_get_by_val):
- 5:48 PM Changeset in webkit [252724] by
-
- 31 edits in trunk
getComputedStyle returns "auto" for zIndex property even after it has been set, on non-positioned elements
https://bugs.webkit.org/show_bug.cgi?id=15562
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
More passing tests.
- web-platform-tests/css/css-position/inheritance-expected.txt:
- web-platform-tests/css/css-values/calc-integer-expected.txt:
- web-platform-tests/css/css-values/calc-z-index-fractions-001-expected.txt:
- web-platform-tests/css/css-values/minmax-integer-computed-expected.txt:
Source/WebCore:
The computed value of z-index should be the specified value, but Style::Adjuster::adjust() set z-index
to auto on non-positioned elements, so we reported the incorrect computed value.
Fix by storing the specified value in RenderStyle as "zIndex", and the used value as "effectiveZIndex", and
converting all rendering code to use the "effective" variants. getComputedStyle reads "zIndex".
Style::Adjuster::adjust() copies zIndex to effectiveZIndex for positioned elements.
Tests: fast/css/getComputedStyle/getComputedStyle-zIndex-auto.html
- animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::apply):
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
- css/CSSProperties.json:
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::createInnerTextStyle):
- page/animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- page/animation/CompositeAnimation.cpp:
(WebCore::CompositeAnimation::animate):
- rendering/RenderBox.cpp:
(WebCore::isCandidateForOpaquenessTest):
- rendering/RenderBox.h:
- rendering/RenderElement.cpp:
(WebCore::RenderElement::styleWillChange):
- rendering/RenderFullScreen.cpp:
(WebCore::createFullScreenStyle):
- rendering/RenderLayer.cpp:
(WebCore::canCreateStackingContext):
(WebCore::RenderLayer::shouldBeCSSStackingContext const):
(WebCore::RenderLayer::calculateClipRects const):
- rendering/RenderLayer.h:
- rendering/RenderLayerCompositor.cpp:
(WebCore::RenderLayerCompositor::logLayerInfo):
- rendering/RenderLayerModelObject.cpp:
(WebCore::RenderLayerModelObject::styleWillChange):
- rendering/RenderTreeAsText.cpp:
(WebCore::RenderTreeAsText::writeRenderObject):
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::changeRequiresLayerRepaint const):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::specifiedZIndex const):
(WebCore::RenderStyle::hasAutoSpecifiedZIndex const):
(WebCore::RenderStyle::setSpecifiedZIndex):
(WebCore::RenderStyle::setHasAutoSpecifiedZIndex):
(WebCore::RenderStyle::usedZIndex const):
(WebCore::RenderStyle::hasAutoUsedZIndex const):
(WebCore::RenderStyle::setUsedZIndex):
(WebCore::RenderStyle::setHasAutoUsedZIndex):
(WebCore::RenderStyle::hasAutoZIndex const): Deleted.
(WebCore::RenderStyle::setHasAutoZIndex): Deleted.
(WebCore::RenderStyle::zIndex const): Deleted.
(WebCore::RenderStyle::setZIndex): Deleted.
- rendering/style/StyleBoxData.cpp:
(WebCore::StyleBoxData::StyleBoxData):
(WebCore::StyleBoxData::operator== const):
- rendering/style/StyleBoxData.h:
(WebCore::StyleBoxData::specifiedZIndex const):
(WebCore::StyleBoxData::hasAutoSpecifiedZIndex const):
(WebCore::StyleBoxData::usedZIndex const):
(WebCore::StyleBoxData::hasAutoUsedZIndex const):
(WebCore::StyleBoxData::zIndex const): Deleted.
(WebCore::StyleBoxData::hasAutoZIndex const): Deleted.
- style/StyleAdjuster.cpp:
(WebCore::Style::Adjuster::adjust const):
LayoutTests:
- fast/css-grid-layout/grid-item-z-index-support-expected.txt:
- fast/css-grid-layout/grid-item-z-index-support.html:
- fast/css/getComputedStyle/getComputedStyle-zIndex-auto-expected.txt:
- fast/css/getComputedStyle/getComputedStyle-zIndex-auto.html:
- 5:47 PM Changeset in webkit [252723] by
-
- 34 edits in trunk/Source/WebCore
MicrotaskQueue should be accessed via EventLoop
https://bugs.webkit.org/show_bug.cgi?id=204397
Reviewed by Antti Koivisto.
This patch refactors the existing code so that a microtask is always queued via EventLoopTaskGroup.
It preserves all other (broken) semantics and behavior like all origins sharing a single microtask queue.
The singleton MicrotaskQueue for the main thread has been moved from MicrotaskQueue::mainThreadQueue
to WindowEventLoop, and an instance of MicrotaskQueue for each worker has been moved from WorkerGlobalScope
to WorkerEventLoop.
- animation/DocumentTimeline.cpp:
(WebCore::DocumentTimeline::internalUpdateAnimationsAndSendEvents):
- animation/WebAnimation.cpp:
(WebCore::WebAnimation::updateFinishedState):
- bindings/js/JSDOMGlobalObjectTask.cpp:
(WebCore::JSGlobalObjectTask::JSGlobalObjectTask):
- bindings/js/JSDOMWindowBase.cpp:
(WebCore::JSDOMWindowBase::queueMicrotaskToEventLoop): Renamed from queueTaskToEventLoop.
- bindings/js/JSDOMWindowBase.h:
- bindings/js/JSExecState.cpp:
(WebCore::JSExecState::didLeaveScriptContext):
- bindings/js/JSRemoteDOMWindowBase.cpp:
- bindings/js/JSWorkerGlobalScopeBase.cpp:
(WebCore::JSWorkerGlobalScopeBase::queueMicrotaskToEventLoop): Renamed from queueTaskToEventLoop.
- bindings/js/JSWorkerGlobalScopeBase.h:
- bindings/js/JSWorkletGlobalScopeBase.cpp:
- bindings/js/JSWorkletGlobalScopeBase.h:
- dom/CustomElementReactionQueue.cpp:
(WebCore::BackupElementQueueMicrotask): Deleted.
(WebCore::CustomElementReactionQueue::enqueueElementOnAppropriateElementQueue):
(WebCore::CustomElementReactionQueue::ensureBackupQueue):
- dom/CustomElementReactionQueue.h:
- dom/Document.cpp:
(WebCore::Document::finishedParsing):
- dom/DocumentStorageAccess.cpp:
(WebCore::DocumentStorageAccess::requestStorageAccess):
- dom/EventLoop.cpp:
(WebCore::EventLoop::queueMicrotask): Added.
(WebCore::EventLoop::performMicrotaskCheckpoint): Added.
(WebCore::EventLoopTaskGroup::queueMicrotaskCallback): Added.
(WebCore::EventLoopTaskGroup::queueMicrotask): Added.
(WebCore::EventLoopTaskGroup::performMicrotaskCheckpoint): Added.
- dom/EventLoop.h:
(WebCore::EventLoopTaskGroup::microtaskQueue):
- dom/Microtasks.cpp:
(WebCore::MicrotaskQueue::mainThreadQueue): Deleted.
(WebCore::MicrotaskQueue::contextQueue): Deleted.
- dom/Microtasks.h:
- dom/MutationObserver.cpp:
(WebCore::MutationObserverMicrotask): Deleted.
(WebCore::MutationObserver::queueMutationObserverCompoundMicrotask): Made this a member function
so that it can call notifyMutationObservers in its lambda.
(WebCore::MutationObserver::enqueueMutationRecord):
(WebCore::MutationObserver::enqueueSlotChangeEvent):
(WebCore::MutationObserver::setHasTransientRegistration):
- dom/MutationObserver.h:
- dom/MutationObserverRegistration.cpp:
(WebCore::MutationObserverRegistration::observedSubtreeNodeWillDetach):
- dom/WindowEventLoop.cpp:
(WebCore::WindowEventLoop::microtaskQueue):
- dom/WindowEventLoop.h:
- html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::runScriptsForPausedTreeBuilder):
- html/parser/HTMLScriptRunner.cpp:
(WebCore::HTMLScriptRunner::executePendingScriptAndDispatchEvent):
(WebCore::HTMLScriptRunner::runScript):
- inspector/agents/InspectorCanvasAgent.cpp:
(WebCore::InspectorCanvasAgent::recordCanvasAction):
- testing/Internals.cpp:
(WebCore::Internals::queueMicroTask):
- workers/WorkerEventLoop.cpp:
(WebCore::WorkerEventLoop::~WorkerEventLoop):
(WebCore::WorkerEventLoop::microtaskQueue):
(WebCore::WorkerEventLoop::clearMicrotaskQueue):
- workers/WorkerEventLoop.h:
- workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::WorkerGlobalScope):
(WebCore::WorkerGlobalScope::prepareForTermination):
- workers/WorkerGlobalScope.h:
(WebCore::WorkerGlobalScope::microtaskQueue const): Deleted.
- 5:25 PM Changeset in webkit [252722] by
-
- 2 edits in trunk/Tools
run-webkit-tests: Do not create global SystemHost objects
https://bugs.webkit.org/show_bug.cgi?id=204426
Reviewed by Aakash Jain.
If created, SystemHost objects should be created on-demand, not globally
shared between all instances of a function.
- Scripts/webkitpy/xcode/simulated_device.py:
(SimulatedDeviceManager.populate_available_devices):
(SimulatedDeviceManager.available_devices):
(SimulatedDeviceManager.device_by_filter):
(SimulatedDeviceManager._create_or_find_device_for_request):
(SimulatedDeviceManager._boot_device):
(SimulatedDeviceManager.device_count_for_type):
(SimulatedDeviceManager.initialize_devices):
(SimulatedDeviceManager.max_supported_simulators):
(SimulatedDeviceManager.swap):
(SimulatedDeviceManager.tear_down):
- 5:16 PM Changeset in webkit [252721] by
-
- 6 edits in trunk
Unreviewed, address Darin's feedback on r252683.
JSTests:
- stress/string-replaceall.js:
Source/JavaScriptCore:
- runtime/StringPrototype.cpp:
(JSC::replaceUsingStringSearch):
(JSC::replace):
(JSC::stringProtoFuncReplaceUsingStringSearch):
(JSC::stringProtoFuncReplaceAllUsingStringSearch):
Source/WTF:
- wtf/text/StringCommon.h:
(WTF::findCommon):
- 5:09 PM Changeset in webkit [252720] by
-
- 3 edits in trunk/LayoutTests
[ Jazz ] http/tests/resourceLoadStatistics/cookie-deletion.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=203813
<rdar://problem/54316765>
Reviewed by John Wilander.
Added random dummy value to the end of the cookie-redirect query to ensure
the third party url isn't failing to set the cookie and redirect back
to the correct file because the url is already in the cache from previous runs.
- http/tests/resourceLoadStatistics/cookie-deletion-expected.txt:
- http/tests/resourceLoadStatistics/cookie-deletion.html:
- 5:08 PM Changeset in webkit [252719] by
-
- 8 edits in trunk/Tools
Correct argument types in UIScriptController::activateDataListSuggestion after r252062
https://bugs.webkit.org/show_bug.cgi?id=203116
Reviewed by Tim Horton.
Use
unsigned
to representunsigned long
arguments declared in the IDL.
- DumpRenderTree/mac/UIScriptControllerMac.h:
- DumpRenderTree/mac/UIScriptControllerMac.mm:
(WTR::UIScriptControllerMac::activateDataListSuggestion):
- TestRunnerShared/UIScriptContext/UIScriptController.h:
(WTR::UIScriptController::activateDataListSuggestion):
- WebKitTestRunner/ios/UIScriptControllerIOS.h:
- WebKitTestRunner/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptControllerIOS::activateDataListSuggestion):
- WebKitTestRunner/mac/UIScriptControllerMac.h:
- WebKitTestRunner/mac/UIScriptControllerMac.mm:
(WTR::UIScriptControllerMac::activateDataListSuggestion):
- 4:28 PM Changeset in webkit [252718] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, remove an unnecessary null check after r252561
https://bugs.webkit.org/show_bug.cgi?id=204287
Address post-review feedback.
- Modules/async-clipboard/Clipboard.cpp:
(WebCore::Clipboard::writeText):
- 3:59 PM Changeset in webkit [252717] by
-
- 33 edits1 copy1 add in trunk
[GTK] Add ANGLE backend to GTK port
https://bugs.webkit.org/show_bug.cgi?id=199060
Reviewed by Žan Doberšek.
.:
This change brings ANGLE support for WebGL to GTK port. USE_ANGLE_WEBGL
is newly defined in OptionGTK.cmake, and turns on the USE_ANGLE_EGL flag.
- Source/cmake/OptionsGTK.cmake: USE_ANGLE_WEBGL added.
Source/ThirdParty/ANGLE:
- CMakeLists.txt: When USE_ANGLE_WEBGL is enabled, necessary glesv2 entry points headers are installed in the derived source directory. And then adjust-angle-include-path.sh is applied to change include paths in the entry points header files.
- GLESv2.cmake: libglesv2_entry_points_headers is newly defined, which is a gathering of entry point headers of libGLESv2.
- PlatformGTK.cmake: In this file, we append gl and glx related angle code as a build target. Since we want gl context and gles context simultaneously, we remove gl prototype calls from the generated libGLESv2 library. Instead, we invoke egl and gl calls of ANGLE via their non-prototype function names.
- adjust-angle-include-paths.sh: sed is slightly different in unix and linux systems. In particular, its inplace option needs to be changed for better compatibility on linux.
- include/CMakeLists.txt: ANGLE_WEBGL_HEADERS is newly defined. It gathers header files of ANGLE for WebGL support.
Source/WebCore:
This change aims to bring ANGLE support for WebGL to GTK port. The port
wants to have a gl context for texture mapper and a gles/egl context for webgl
simultaneously, we adopt the readPixel-copyToTexture approach for now because
sharing textures between the two different contextes is not a feasible direction.
Also, to avoid conflicts between gl and gles calls, we use non-prototype functions
of ANGLE for WebGL context (i.e., GraphicsContext3D). Although many combinations
of graphic configurations exist, only default configuration (Nicosia layers
running on ANGLE + GLX is supported. Other combinations like ANGLE + GLES or WPE
will be covered by following patches.
No new tests since no functionality changed.
- Headers.cmake:
- PlatformGTK.cmake:
- SourcesGTK.txt:
- platform/TextureMapper.cmake:
- platform/graphics/ANGLEWebKitBridge.h:
- platform/graphics/GLContext.cpp:
- platform/graphics/GLContext.h:
- platform/graphics/GraphicsContext3D.h:
- platform/graphics/OpenGLShims.cpp:
(WebCore::initializeOpenGLShims):
- platform/graphics/OpenGLShims.h:
- platform/graphics/PlatformDisplay.cpp:
- platform/graphics/angle/GraphicsContext3DANGLE.cpp:
(WebCore::GraphicsContext3D::reshapeFBOs):
(WebCore::GraphicsContext3D::prepareTexture):
- platform/graphics/nicosia/texmap/NicosiaGC3DANGLELayer.cpp: Added.
(Nicosia::GC3DANGLELayer::ANGLEContext::errorString):
(Nicosia::GC3DANGLELayer::ANGLEContext::lastErrorString):
(Nicosia::GC3DANGLELayer::ANGLEContext::createContext):
(Nicosia::GC3DANGLELayer::ANGLEContext::ANGLEContext):
(Nicosia::GC3DANGLELayer::ANGLEContext::~ANGLEContext):
(Nicosia::GC3DANGLELayer::ANGLEContext::makeContextCurrent):
(Nicosia::GC3DANGLELayer::ANGLEContext::platformContext):
(Nicosia::GC3DANGLELayer::GC3DANGLELayer):
(Nicosia::GC3DANGLELayer::~GC3DANGLELayer):
(Nicosia::GC3DANGLELayer::makeContextCurrent):
(Nicosia::GC3DANGLELayer::platformContext):
- platform/graphics/nicosia/texmap/NicosiaGC3DANGLELayer.h: Copied from Source/WebCore/platform/graphics/nicosia/texmap/NicosiaGC3DLayer.h.
- platform/graphics/nicosia/texmap/NicosiaGC3DLayer.cpp:
(Nicosia::GC3DLayer::GC3DLayer):
(Nicosia::GC3DLayer::swapBuffersIfNeeded):
- platform/graphics/nicosia/texmap/NicosiaGC3DLayer.h:
- platform/graphics/texmap/BitmapTextureGL.cpp:
(WebCore::BitmapTextureGL::setPendingContents):
(WebCore::BitmapTextureGL::updatePendingContents):
- platform/graphics/texmap/BitmapTextureGL.h:
- platform/graphics/texmap/GraphicsContext3DTextureMapper.cpp:
(WebCore::GraphicsContext3D::create):
(WebCore::GraphicsContext3D::GraphicsContext3D):
(WebCore::GraphicsContext3D::~GraphicsContext3D):
- platform/graphics/texmap/TextureMapperPlatformLayerBuffer.cpp:
(WebCore::TextureMapperPlatformLayerBuffer::paintToTextureMapper):
- platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp:
(WebCore::TextureMapperPlatformLayerProxy::pushNextBuffer):
Source/WebKit:
- UIProcess/API/glib/WebKitProtocolHandler.cpp: Extention3DANGLE is used instead where ANGLE for WebGL is enabled.
- UIProcess/gtk/AcceleratedBackingStoreWayland.cpp: Append gl extensions for ANGLE.
(WebKit::AcceleratedBackingStoreWayland::checkRequirements):
Source/WTF:
The GTK port uses TEXTURE_MAPPER that has a gl context for accelerated rendering,
and ANGLE has an egl context for WebGL. We want to make both live together
so an exception is made where TEXTURE_MAPPER is enabled.
- wtf/Platform.h:
- 3:52 PM Changeset in webkit [252716] by
-
- 15 edits in trunk
Flexbox sizing logic triggers full repaint on the flex items.
https://bugs.webkit.org/show_bug.cgi?id=204380
<rdar://problem/57236404>
Reviewed by Simon Fraser.
Source/WebCore:
RenderFlexibleBox::applyStretchAlignmentToChild explicitly sets the child renderer's height to 0 before issuing layout on it.
This confuses the child's repaint logic and could trigger unnecessary repaints on complete subtrees.
Many ::layout functions plant a LayoutRepainter stack object to track and report paint invalidations.
It works as long as the renderer's geometry change happens within the scope of this LayoutRepainter.
When the parent (RenderFlexibleBox) mutates the renderer's geometry, the LayoutRepainter object sees
this already mutated state as the initial state and will happily issue repaints even when the final
geometry remains the same.
This patch addresses the redundant repaint by pushing the height reset from the parent down to the child, inside the LayoutRepainter scope.
- rendering/RenderBlock.h: Restrict it to RenderBlock level for now. It might need to go all the way up to RenderBox.
(WebCore::RenderBlock::shouldResetChildLogicalHeightBeforeLayout const):
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::layoutBlock):
- rendering/RenderBlockFlow.h:
- rendering/RenderBox.cpp:
(WebCore::RenderBox::resetLogicalHeightBeforeLayoutIfNeeded):
- rendering/RenderBox.h:
(WebCore::RenderBox::shouldResetLogicalHeightBeforeLayout const):
- rendering/RenderDeprecatedFlexibleBox.cpp:
(WebCore::RenderDeprecatedFlexibleBox::layoutBlock):
- rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::layoutBlock):
(WebCore::RenderFlexibleBox::applyStretchAlignmentToChild):
- rendering/RenderFlexibleBox.h:
- rendering/RenderGrid.cpp:
(WebCore::RenderGrid::layoutBlock):
- rendering/RenderGrid.h:
- rendering/RenderTable.cpp:
(WebCore::RenderTable::layout):
- rendering/RenderTable.h:
LayoutTests:
- fast/repaint/align-items-change-expected.txt: progression.
- 3:31 PM Changeset in webkit [252715] by
-
- 2 edits in trunk/LayoutTests
webgl/1.0.3/conformance/context/context-release-upon-reload.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=203984
Unreviewed test gardening. Skip the 2.0.0 version of this test as well.
- platform/mac-highsierra-wk1/TestExpectations:
- 3:21 PM Changeset in webkit [252714] by
-
- 3 edits in trunk/Tools
run-api-tests reports AssertionError os.pathsep not in value in _append_value_colon_separated in Cygwin Python
https://bugs.webkit.org/show_bug.cgi?id=204400
Reviewed by Jonathan Bedard.
r249500 changed Port.environment_for_api_tests to use
Port._append_value_colon_separated to append a build path to some
enviroment variables. _append_value_colon_separated has a
assertion to ensure the given value doesn't iclude ':'. However,
Port._build_path contains ':' on Cygwin Python.
Those enviroment variables are only for macOS and iOS. Move the code to darwin.py.
- Scripts/webkitpy/port/base.py:
(Port.environment_for_api_tests):
- Scripts/webkitpy/port/darwin.py:
(DarwinPort.environment_for_api_tests):
- 3:12 PM Changeset in webkit [252713] by
-
- 18 edits in trunk
[JSC] OSR exit to LLInt is broken on MIPS
https://bugs.webkit.org/show_bug.cgi?id=203737
Reviewed by Yusuke Suzuki.
JSTests:
Unskipping broken tests due to OSR to LLInt bug.
- microbenchmarks/call-spread-call.js:
- microbenchmarks/throw.js:
- stress/allocation-sinking-hints-are-valid-ssa-2.js:
- stress/allocation-sinking-hints-are-valid-ssa.js:
- stress/arith-profile-for-negate-can-see-non-number-due-to-dfg-osr-exit-profiling.js:
- stress/arrowfunction-lexical-bind-supercall-4.js:
- stress/arrowfunction-tdz-3.js:
- stress/function-constructor-semantics.js:
- stress/global-import-function-should-return-a-promise-when-clearing-exceptions.js:
- stress/stress-cleared-calllinkinfo.js:
- stress/typedarray-configure-index.js:
- stress/v8-deltablue-strict.js:
PerformanceTests/SunSpider:
- tests/v8-v6/v8-deltablue.js:
Source/JavaScriptCore:
This patch is adjusting the OSR to LLInt mechanism to MIPS. When we
use PIC on this architecture, we need to properly configure$gp
at some places to be able to access global variables. This is required
on LLInt to access Global Offset Table (got). According to MIPS ABI,
the$gp
can be recalculated during function prologue using caller
register$t9
. We also emit such instructions (we can see this as
OFFLINE_ASM_CPLOAD
macro) immediately after a non-local label on
LLInt. With the introduction of OSR to LLInt mechanism, we now have
return location labels that are reached fromret
LLInt instructions.
Such return locations are used to properly return to LLInt execution
whenever an OSR exits from inlined call on DFG or FTL to LLInt. When
OSR is materializing LLInt stack frames for inlined functions (or
accessors), it sets return address to its return location label.
This means that for such labels, we need to adjust$gp
using$ra
instead of$t9
, given that LLIntret
operation uses
jr $ra
to jump the execution to there.
To implement this, we changedmipsAddPICCode
to emit code
using the correct register required to recalculate$gp
.
We also changedcallTargetFunction
to use the stubs as return
location points, since the declaration of global labels will emmit
OFFLINE_ASM_CPLOAD($ra)
and we don't want to execute it during
normal LLInt execution.
- llint/LowLevelInterpreter.asm:
- offlineasm/mips.rb:
- 3:01 PM Changeset in webkit [252712] by
-
- 3 edits in trunk/Source/WebKit
[iOS] Make sure WebContent process does not get suspended while it is holding a process assertion for the UIProcess
https://bugs.webkit.org/show_bug.cgi?id=204418
Reviewed by Jer Noble.
Make sure WebContent process does not get suspended while it is holding a process assertion for the UIProcess. We
see this happening in sysdiagnoses, and it means the system ends up killing the WebContent process because it leaked
a process assertion.
- WebProcess/WebProcess.h:
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::processTaskStateDidChange):
(WebKit::WebProcess::releaseProcessWasResumedAssertions):
- 2:45 PM Changeset in webkit [252711] by
-
- 3 edits1 add in trunk
[WebGL] Add
--webgl-test-suite
flag for run-webkit-tests
https://bugs.webkit.org/show_bug.cgi?id=204327
Rubber-stamped by Aakash Jain.
Tools:
- Scripts/webkitpy/layout_tests/run_webkit_tests.py:
(parse_args): Add the --webgl macro command, which is the equivalent of:
'Run-webkit-tests --additional-expectations=LayoutTests/webgl/TestExpectations webgl'
LayoutTests:
- webgl/TestExpectations: Added.
- 2:29 PM Changeset in webkit [252710] by
-
- 4 edits2 adds in trunk
[Cocoa] Add ui-sans-serif as a sibling to ui-serif, ui-monospace, and ui-rounded
https://bugs.webkit.org/show_bug.cgi?id=204188
Reviewed by Simon Fraser.
Source/WebCore:
Test: fast/text/design-system-ui-sans-serif.html
- platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::fontWithFamilySpecialCase):
- platform/graphics/cocoa/FontDescriptionCocoa.cpp:
(WebCore::matchSystemFontUse):
LayoutTests:
- fast/text/design-system-ui-sans-serif-expected.html: Added.
- fast/text/design-system-ui-sans-serif.html: Added.
- 2:25 PM Changeset in webkit [252709] by
-
- 1 copy in tags/Safari-608.4.9.1.4
Tag Safari-608.4.9.1.4.
- 2:19 PM Changeset in webkit [252708] by
-
- 7 edits in branches/safari-608.4.9.1-branch/Source
Versioning.
- 2:18 PM Changeset in webkit [252707] by
-
- 2 edits in trunk/Tools
Reactivate my committer status.
Unreviewed.
- Scripts/webkitpy/common/config/contributors.json:
- 2:13 PM Changeset in webkit [252706] by
-
- 1 edit3 adds in trunk/LayoutTests
Add platform specific expectations for High Sierra and Mojave for svg/custom/glyph-selection-arabic-forms.svg
https://bugs.webkit.org/show_bug.cgi?id=204249
Unreviewed test gardening.
- platform/mac-highsierra/svg/custom/glyph-selection-arabic-forms-expected.txt: Added.
- platform/mac-mojave/svg/custom/glyph-selection-arabic-forms-expected.txt: Added.
- 2:12 PM Changeset in webkit [252705] by
-
- 2 edits in trunk/Tools
Add trigger for WebGL bot to config.
RS config fix by Jonathan Bedard.
- BuildSlaveSupport/build.webkit.org-config/config.json:
- 1:23 PM Changeset in webkit [252704] by
-
- 8 edits in trunk/Source/WebInspectorUI
Web Inspector: REGRESSION(r250618): main resource view is empty when pausing on inline 'debugger' statement
https://bugs.webkit.org/show_bug.cgi?id=204086
Reviewed by Devin Rousso.
SourceCodeRevision.currentRevision doesn't create new revisions under the hood anymore.
This allows to avoid undesirable side effects when e.g. text editor tries to read current
content of the SourceCode which results in a new revision (with empty content).
New method editableRevision is introduced for applying changes to the resource while
keeping original content revision intact.
- UserInterface/Controllers/CSSManager.js:
(WI.CSSManager.prototype._resourceContentDidChange.applyStyleSheetChanges.styleSheetFound):
(WI.CSSManager.prototype._resourceContentDidChange.applyStyleSheetChanges):
(WI.CSSManager.prototype._resourceContentDidChange):
(WI.CSSManager.prototype._updateResourceContent.fetchedStyleSheetContent):
- UserInterface/Models/SourceCode.js:
(WI.SourceCode.prototype.get currentRevision):
(WI.SourceCode.prototype.get editableRevision):
(WI.SourceCode.prototype.get content):
(WI.SourceCode.prototype.revisionContentDidChange):
- UserInterface/Views/FontResourceContentView.js:
(WI.FontResourceContentView.prototype.dropZoneHandleDrop):
- UserInterface/Views/ImageResourceContentView.js:
(WI.ImageResourceContentView.prototype.dropZoneHandleDrop):
- UserInterface/Views/ResourceContentView.js:
(WI.ResourceContentView.prototype._contentAvailable):
(WI.ResourceContentView.prototype._handleImportLocalResourceOverride):
- UserInterface/Views/ScriptContentView.js:
(WI.ScriptContentView.prototype._handleTextEditorContentDidChange):
- UserInterface/Views/TextResourceContentView.js:
(WI.TextResourceContentView.prototype._textEditorContentDidChange):
- 1:04 PM Changeset in webkit [252703] by
-
- 3 edits in trunk/Tools
Bring up WebGL Test Queue.
https://bugs.webkit.org/show_bug.cgi?id=204374
Reviewed by Jonathan Bedard.
- BuildSlaveSupport/build.webkit.org-config/config.json:
- BuildSlaveSupport/build.webkit.org-config/steps_unittest.py:
- 12:35 PM Changeset in webkit [252702] by
-
- 14 edits1 add in trunk/Source
[Cocoa] Add _WKRemoteWebInspectorViewController SPI to set diagnostic logging delegate
https://bugs.webkit.org/show_bug.cgi?id=204371
Reviewed by Devin Rousso.
Source/WebCore:
Expose whether a diagnostic logging delegate has been configured for the frontend's WKWebView.
In a later patch, WI.DiagnosticController will start and stop recording as availability changes.
- inspector/InspectorFrontendClient.h:
(WebCore::InspectorFrontendClient::diagnosticLoggingAvailable):
- inspector/InspectorFrontendHost.cpp:
(WebCore::InspectorFrontendHost::diagnosticLoggingAvailable):
- inspector/InspectorFrontendHost.h:
Source/WebKit:
- UIProcess/WebInspectorProxy.h:
- UIProcess/RemoteWebInspectorProxy.h:
- UIProcess/RemoteWebInspectorProxy.cpp:
(WebKit::RemoteWebInspectorProxy::setDiagnosticLoggingAvailable):
Hook up the plumbing to forward this state change to the frontend.
- UIProcess/API/Cocoa/_WKRemoteWebInspectorViewControllerPrivate.h: Added.
- UIProcess/API/Cocoa/_WKRemoteWebInspectorViewController.mm:
(-[_WKRemoteWebInspectorViewController _setDiagnosticLoggingDelegate:]):
Add new SPI to set the diagnostic logging delegate. This is preferable to directly
setting the delegate on the inspector WKWebView (via .webView._diagnosticLoggingDelegate),
because the controller can notify the frontend that diagnostic logging is now available.
- WebKit.xcodeproj/project.pbxproj: Add new header file and make it private.
- WebProcess/WebPage/WebInspectorUI.h:
- WebProcess/WebPage/WebInspectorUI.cpp:
(WebKit::WebInspectorUI::setDiagnosticLoggingAvailable):
Cache this value and use it for InspectorFrontendClient::diagnosticLoggingAvailable().
- WebProcess/WebPage/RemoteWebInspectorUI.messages.in:
- WebProcess/WebPage/RemoteWebInspectorUI.h:
- WebProcess/WebPage/RemoteWebInspectorUI.cpp:
(WebKit::RemoteWebInspectorUI::setDiagnosticLoggingAvailable):
Duplicate what is done for the local case.
- 12:33 PM Changeset in webkit [252701] by
-
- 7 edits in trunk
Turn off antialiasing when rendering with Ahem, for testing
https://bugs.webkit.org/show_bug.cgi?id=204197
Source/WebCore:
<rdar://problem/57190712>
Reviewed by Myles C. Maxfield.
If the font family name matches "Ahem", turn off antialiasing when rendering text,
because many CSS tests assume that Ahem glyphs can be compared with positioned elements
in ref tests.
Since Ahem is a font only used for testing, I don't think this behavior needs to be
controlled by a setting.
- platform/graphics/Font.cpp:
(WebCore::Font::Font):
- platform/graphics/Font.h:
(WebCore::Font::allowsAntialiasing const):
- platform/graphics/cocoa/FontCascadeCocoa.mm:
(WebCore::FontCascade::drawGlyphs):
- platform/graphics/cocoa/FontCocoa.mm:
(WebCore::isAhemFont):
(WebCore::Font::platformInit):
LayoutTests:
Reviewed by Myles C. Maxfield.
- 12:14 PM Changeset in webkit [252700] by
-
- 2 edits in trunk/Tools
[EWS] iOS layout-tests fails with 30+ failures on re-run and on clean-tree
https://bugs.webkit.org/show_bug.cgi?id=204409
Reviewed by Aakash Jain.
- BuildSlaveSupport/ews-build/steps.py:
(RunWebKitPerlTests.evaluateCommand): Add killOldProcesses before running test suite.
(RunJavaScriptCoreTests.evaluateCommand): Ditto.
(ReRunJavaScriptCoreTests.evaluateCommand): Ditto.
(RunWebKitTests.evaluateCommand): Ditto.
(ReRunWebKitTests.evaluateCommand): Ditto.
(RunAPITests.evaluateCommand): Ditto.
(ReRunAPITests.evaluateCommand): Ditto.
- 12:06 PM Changeset in webkit [252699] by
-
- 2 edits in trunk/Source/JavaScriptCore
Fix load<16> on ARM64
https://bugs.webkit.org/show_bug.cgi?id=204326
Reviewed by Mark Lam.
On ARM64 I used load<16> in https://bugs.webkit.org/show_bug.cgi?id=202832.
Unfortunately it turns out to call ldr<16>, and ldr<n> asserts that n is either 32 or 64.
This fix simply calls ldrh/strh directly.
- assembler/MacroAssemblerARM64.h:
(JSC::MacroAssemblerARM64::load16):
(JSC::MacroAssemblerARM64::store16):
- 11:52 AM Changeset in webkit [252698] by
-
- 2 edits in trunk/LayoutTests
Layout Test fast/text/font-antialiasing-save-restore.html is failing
https://bugs.webkit.org/show_bug.cgi?id=204413
Unreviewed test gardening.
- platform/win/TestExpectations:
- 11:28 AM Changeset in webkit [252697] by
-
- 2 edits in tags/Safari-609.1.10.2/Source/WebKit
Cherry-pick r252333. rdar://problem/57079557
[iOS] Unable to view .pages files
https://bugs.webkit.org/show_bug.cgi?id=204076
<rdar://problem/57079557>
Reviewed by Brent Fulgham.
This is caused by a syscall being blocked by the sandbox. The syscall was previously unused in the
WebContent process.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252333 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:57 AM Changeset in webkit [252696] by
-
- 5 edits in trunk/Source/WebCore
[LFC][IFC] Cache InlinteTextItem width when possible
https://bugs.webkit.org/show_bug.cgi?id=204412
<rdar://problem/57359366>
Reviewed by Antti Koivisto.
This helps when subsequent inline layouts use the same set of InlineTextItems and they would
keep re-measuring them on each layout frame (e.g. view resize).
- layout/inlineformatting/InlineLineLayout.cpp:
(WebCore::Layout::inlineItemWidth):
- layout/inlineformatting/InlineTextItem.cpp:
(WebCore::Layout::InlineTextItem::createAndAppendTextItems):
(WebCore::Layout::InlineTextItem::createWhitespaceItem):
(WebCore::Layout::InlineTextItem::createNonWhitespaceItem):
(WebCore::Layout::InlineTextItem::createSegmentBreakItem):
(WebCore::Layout::InlineTextItem::InlineTextItem):
(WebCore::Layout::InlineTextItem::left const):
(WebCore::Layout::InlineTextItem::right const):
- layout/inlineformatting/InlineTextItem.h:
(WebCore::Layout::InlineTextItem::width const):
- layout/inlineformatting/text/TextUtil.h:
(WebCore::Layout::TextUtil::width):
- 10:53 AM Changeset in webkit [252695] by
-
- 2 edits in trunk/LayoutTests
Regression (r252660): Layout Test platform/ios/mediastream/audio-muted-in-background-tab.html is failing
https://bugs.webkit.org/show_bug.cgi?id=204408
Unreviewed test gardening.
- platform/ios/TestExpectations:
- 10:50 AM Changeset in webkit [252694] by
-
- 4 edits in trunk
Flaky JSC test: stress/stack-overflow-in-yarr-byteCompile.js.dfg-eager.
https://bugs.webkit.org/show_bug.cgi?id=204405
Reviewed by Alexey Proskuryakov.
JSTests:
The test was timing out because it's slow. We don't really need to run this test
on all configurations. So, we'll change it to on run with the default
configuration. Also declare the test as "@ slow!".
- stress/stack-overflow-in-yarr-byteCompile.js:
Source/JavaScriptCore:
$vm.allWithStackSize() manipulates the stack in ways that will freak out ASan.
So, add SUPPRESS_ASAN to functionCallWithStackSize() to tell ASan to ignore it.
- tools/JSDollarVM.cpp:
- 10:39 AM Changeset in webkit [252693] by
-
- 2 edits in trunk/LayoutTests
Rebase svg/custom/glyph-selection-arabic-forms.svg
https://bugs.webkit.org/show_bug.cgi?id=204249
Unreviewed test gardening.
- svg/custom/glyph-selection-arabic-forms-expected.txt:
- 10:32 AM Changeset in webkit [252692] by
-
- 7 edits2 adds in trunk
HTML5 audio .ended event not fired when app in background or phone screen is off
https://bugs.webkit.org/show_bug.cgi?id=173332
<rdar://problem/32757402>
Reviewed by Eric Carlson.
Source/WebCore:
Test: media/audio-background-playback-playlist.html
In addition to the necessary WebKit part of this patch, there are behaviors which prevent
websites from enqueuing new playback while in the background. Namely, the platform will
prevent background playback from any application which is not currently the "Now Playing"
application, so in order to allow pages to switch sources, we must ensure we do not give
up "Now Playing" status. To do so, we will change the implementation of canProduceAudio()
to include any media element which previously could produce audio but currently has no
source.
Also, MediaElementSession::canShowControlsManager() will be modified to only check for
a RequireUserGestureToControlControlsManager restriction if the purpose passed in is
is "ControlsManager" and not "NowPlaying".
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::canProduceAudio const):
- html/MediaElementSession.cpp:
(WebCore::MediaElementSession::canShowControlsManager const):
Source/WebKit:
When a WebPage goes from audible to inaudible, allow a short grace period before removing
the activity token, to give the page a chance to (e.g.) move to the next item in a playlist
before the process is suspended when in the background.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::close):
(WebKit::WebPageProxy::updateThrottleState):
(WebKit::WebPageProxy::clearAudibleActivity):
- UIProcess/WebPageProxy.h:
LayoutTests:
- media/audio-background-playback-playlist-expected.txt: Added.
- media/audio-background-playback-playlist.html: Added.
- 10:25 AM Changeset in webkit [252691] by
-
- 2 edits in trunk/Tools
kill-old-processes: Log currently running processes
https://bugs.webkit.org/show_bug.cgi?id=204415
Unreviewed infrastructure management.
- BuildSlaveSupport/kill-old-processes:
(main): Log 'ps aux' for Mac and Linux.
- 9:48 AM Changeset in webkit [252690] by
-
- 6 edits in trunk/Source/JavaScriptCore
Regression (r252680): JSCOnly build broken: no matching function for call to JSC::DFG::SpeculativeJIT::jsValueResult
https://bugs.webkit.org/show_bug.cgi?id=204404
Reviewed by Saam Barati.
Adjusting build after changes from r252684 and r252680.
- bytecode/AccessCase.cpp:
(JSC::AccessCase::generateWithGuard):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileIncOrDec):
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- jit/JITOpcodes32_64.cpp:
(JSC::JIT::emit_op_to_numeric):
- jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::emit_op_get_by_val):
(JSC::JIT::emitSlow_op_get_by_val):
- 9:12 AM Changeset in webkit [252689] by
-
- 3 edits2 adds in trunk
REGRESSION (r252161): box-shadow with inset and rounded borders is clipped
https://bugs.webkit.org/show_bug.cgi?id=204348
Reviewed by Zalan Bujtas.
Source/WebCore:
r252161 introduced a bug for inset shadows where we passed the wrong rect to areaCastingShadowInHole().
Clean the code up a little, and make the xOffset stuff more similar to the outset shadow path.
We could still do a better job of pixel snapping here.
Test: fast/box-shadow/inset-box-shadow.html
- rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::paintBoxShadow):
LayoutTests:
- fast/box-shadow/inset-box-shadow-expected.html: Added.
- fast/box-shadow/inset-box-shadow.html: Added.
- 8:53 AM Changeset in webkit [252688] by
-
- 2 edits in trunk/LayoutTests
Layout Test fast/text/font-antialiasing-save-restore.html is failing
https://bugs.webkit.org/show_bug.cgi?id=204413
Unreviewed test gardening.
- platform/win/TestExpectations:
- 8:04 AM Changeset in webkit [252687] by
-
- 5 edits1 delete in trunk/Source/WTF
[Win] Implement WTF::ThreadSpecific in WTF::Thread
https://bugs.webkit.org/show_bug.cgi?id=204341
Reviewed by Brent Fulgham and Yusuke Suzuki.
Thread::destructTLS had a tricky code to defer destroying
WTF::Thread in TLS in order to ensure WTF::Thread is destructed
after other ThreadSpecific are destructed, which is a part of
cause of nasty hanging issue in the process termination (Bug 204192).
This change implements WTF::ThreadSpecific in WTF::Thread by
adding a new class Thread::SpecificStorage to manage TLS. Simplify
Thread::destructTLS. Remove threadMapMutex in ThreadingWin.cpp
- wtf/PlatformWin.cmake:
- wtf/ThreadSpecific.h:
(WTF::canBeGCThread>::ThreadSpecific):
(WTF::canBeGCThread>::get):
(WTF::canBeGCThread>::setInTLS):
(WTF::canBeGCThread>::destroy):
(WTF::canBeGCThread>::~ThreadSpecific): Deleted.
- wtf/Threading.h:
(WTF::Thread::specificStorage):
(WTF::Thread::current):
- wtf/win/ThreadSpecificWin.cpp: Removed.
- wtf/win/ThreadingWin.cpp:
(WTF::Thread::initializeTLSKey):
(WTF::Thread::initializeTLS):
(WTF::Thread::destructTLS):
(WTF::Thread::SpecificStorage::allocateKey):
(WTF::Thread::SpecificStorage::get):
(WTF::Thread::SpecificStorage::set):
(WTF::Thread::SpecificStorage::destroySlots):
(): Deleted.
(WTF::Thread::currentDying): Deleted.
(WTF::Thread::get): Deleted.
- 7:18 AM Changeset in webkit [252686] by
-
- 9 edits1 copy in trunk/Source/WebCore
[LFC][IFC] TextUtil::width should use FontCascade::widthForSimpleText when applicable
https://bugs.webkit.org/show_bug.cgi?id=204393
<rdar://problem/57347144>
Reviewed by Antti Koivisto.
This is one of reasons why simple line layout performs better than complex line layout.
- WebCore.xcodeproj/project.pbxproj:
- layout/blockformatting/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):
- layout/inlineformatting/InlineLine.cpp:
(WebCore::Layout::Line::Run::expand):
(WebCore::Layout::Line::appendTextContent):
- layout/inlineformatting/InlineTextItem.cpp:
(WebCore::Layout::moveToNextNonWhitespacePosition):
(WebCore::Layout::InlineTextItem::createAndAppendTextItems):
- layout/inlineformatting/text/TextUtil.cpp:
(WebCore::Layout::TextUtil::width):
(WebCore::Layout::TextUtil::fixedPitchWidth):
- layout/inlineformatting/text/TextUtil.h:
- layout/layouttree/LayoutBox.cpp:
(WebCore::Layout::Box::Box):
(WebCore::Layout::Box::setTextContext):
(WebCore::Layout::Box::hasTextContent const):
(WebCore::Layout::Box::textContext const):
(WebCore::Layout::Box::setTextContent): Deleted.
(WebCore::Layout::Box::textContent const): Deleted.
- layout/layouttree/LayoutBox.h:
- layout/layouttree/LayoutTreeBuilder.cpp:
(WebCore::Layout::canUseSimplifiedTextMeasuring):
(WebCore::Layout::TreeBuilder::createLayoutBox):
(WebCore::Layout::outputLayoutBox):
Nov 19, 2019:
- 11:23 PM Changeset in webkit [252685] by
-
- 1 edit3 deletes in trunk/LayoutTests
Remove macOS Sierra results in LayoutTests/platform
https://bugs.webkit.org/show_bug.cgi?id=204388
Reviewed by Eric Carlson.
- platform/mac-sierra-wk1/compositing/repaint/iframes/composited-iframe-with-fixed-background-doc-repaint-expected.txt: Removed.
- platform/mac-sierra-wk1/compositing/repaint/iframes/compositing-iframe-scroll-repaint-expected.txt: Removed.
- platform/mac-sierra-wk1/compositing/repaint/iframes/compositing-iframe-with-fixed-background-doc-repaint-expected.txt: Removed.
- platform/mac-sierra-wk1/imported/w3c/web-platform-tests/html/webappapis/system-state-and-capabilities/the-navigator-object/navigator-pluginarray-expected.txt: Removed.
- platform/mac-sierra-wk2/fast/dom/HTMLLinkElement/preconnect-support-expected.txt: Removed.
- platform/mac-sierra-wk2/http/tests/navigation/keyboard-events-during-provisional-navigation-expected.txt: Removed.
- platform/mac-sierra/crypto/subtle/rsa-generate-key-malformed-parameters-expected.txt: Removed.
- platform/mac-sierra/crypto/subtle/rsa-import-key-malformed-parameters-expected.txt: Removed.
- platform/mac-sierra/css1/basic/inheritance-expected.png: Removed.
- platform/mac-sierra/css1/basic/inheritance-expected.txt: Removed.
- platform/mac-sierra/css2.1/t0602-c13-inh-underlin-00-e-expected.png: Removed.
- platform/mac-sierra/css2.1/t0602-c13-inh-underlin-00-e-expected.txt: Removed.
- platform/mac-sierra/css2.1/t0805-c5522-brdr-02-e-expected.txt: Removed.
- platform/mac-sierra/css3/selectors3/html/css3-modsel-18-expected.png: Removed.
- platform/mac-sierra/css3/selectors3/html/css3-modsel-18-expected.txt: Removed.
- platform/mac-sierra/css3/selectors3/html/css3-modsel-19b-expected.png: Removed.
- platform/mac-sierra/css3/selectors3/html/css3-modsel-19b-expected.txt: Removed.
- platform/mac-sierra/css3/selectors3/html/css3-modsel-23-expected.png: Removed.
- platform/mac-sierra/css3/selectors3/html/css3-modsel-23-expected.txt: Removed.
- platform/mac-sierra/css3/selectors3/html/css3-modsel-69-expected.png: Removed.
- platform/mac-sierra/css3/selectors3/html/css3-modsel-69-expected.txt: Removed.
- platform/mac-sierra/css3/selectors3/xhtml/css3-modsel-18-expected.png: Removed.
- platform/mac-sierra/css3/selectors3/xhtml/css3-modsel-18-expected.txt: Removed.
- platform/mac-sierra/css3/selectors3/xhtml/css3-modsel-19b-expected.png: Removed.
- platform/mac-sierra/css3/selectors3/xhtml/css3-modsel-19b-expected.txt: Removed.
- platform/mac-sierra/css3/selectors3/xhtml/css3-modsel-23-expected.png: Removed.
- platform/mac-sierra/css3/selectors3/xhtml/css3-modsel-23-expected.txt: Removed.
- platform/mac-sierra/css3/selectors3/xhtml/css3-modsel-69-expected.png: Removed.
- platform/mac-sierra/css3/selectors3/xhtml/css3-modsel-69-expected.txt: Removed.
- platform/mac-sierra/css3/selectors3/xml/css3-modsel-18-expected.png: Removed.
- platform/mac-sierra/css3/selectors3/xml/css3-modsel-18-expected.txt: Removed.
- platform/mac-sierra/css3/selectors3/xml/css3-modsel-19b-expected.png: Removed.
- platform/mac-sierra/css3/selectors3/xml/css3-modsel-19b-expected.txt: Removed.
- platform/mac-sierra/css3/selectors3/xml/css3-modsel-23-expected.png: Removed.
- platform/mac-sierra/css3/selectors3/xml/css3-modsel-23-expected.txt: Removed.
- platform/mac-sierra/css3/selectors3/xml/css3-modsel-69-expected.png: Removed.
- platform/mac-sierra/css3/selectors3/xml/css3-modsel-69-expected.txt: Removed.
- platform/mac-sierra/editing/deleting/delete-emoji-1-expected.txt: Removed.
- platform/mac-sierra/editing/deleting/delete-emoji-2-expected.txt: Removed.
- platform/mac-sierra/editing/deleting/delete-emoji-3-expected.txt: Removed.
- platform/mac-sierra/editing/deleting/delete-emoji-4-expected.txt: Removed.
- platform/mac-sierra/editing/deleting/delete-emoji-5-expected.txt: Removed.
- platform/mac-sierra/editing/deleting/delete-emoji-6-expected.txt: Removed.
- platform/mac-sierra/editing/deleting/delete-emoji-7-expected.txt: Removed.
- platform/mac-sierra/editing/deleting/delete-emoji-8-expected.txt: Removed.
- platform/mac-sierra/editing/deleting/delete-emoji-9-expected.txt: Removed.
- platform/mac-sierra/editing/deleting/delete-emoji-expected.txt: Removed.
- platform/mac-sierra/editing/mac/attributed-string/anchor-element-expected.txt: Removed.
- platform/mac-sierra/editing/mac/attributed-string/attrib-string-colors-with-color-filter-expected.txt: Removed.
- platform/mac-sierra/editing/mac/attributed-string/attrib-string-range-with-color-filter-expected.txt: Removed.
- platform/mac-sierra/editing/mac/attributed-string/attribute-string-for-copy-with-color-filter-expected.txt: Removed.
- platform/mac-sierra/editing/mac/attributed-string/attributed-string-across-shadow-boundaries-1-expected.txt: Removed.
- platform/mac-sierra/editing/mac/attributed-string/attributed-string-across-shadow-boundaries-2-expected.txt: Removed.
- platform/mac-sierra/editing/mac/attributed-string/attributed-string-across-shadow-boundaries-3-expected.txt: Removed.
- platform/mac-sierra/editing/mac/attributed-string/attributed-string-across-shadow-boundaries-4-expected.txt: Removed.
- platform/mac-sierra/editing/mac/attributed-string/attributed-string-across-shadow-boundaries-5-expected.txt: Removed.
- platform/mac-sierra/editing/mac/attributed-string/attributed-string-across-shadow-boundaries-with-style-1-expected.txt: Removed.
- platform/mac-sierra/editing/mac/attributed-string/attributed-string-across-shadow-boundaries-with-style-2-expected.txt: Removed.
- platform/mac-sierra/editing/mac/attributed-string/attributed-string-for-typing-expected.txt: Removed.
- platform/mac-sierra/editing/mac/attributed-string/attributed-string-for-typing-with-color-filter-expected.txt: Removed.
- platform/mac-sierra/editing/mac/attributed-string/basic-expected.txt: Removed.
- platform/mac-sierra/editing/mac/attributed-string/comment-cdata-section-expected.txt: Removed.
- platform/mac-sierra/editing/mac/attributed-string/font-size-expected.txt: Removed.
- platform/mac-sierra/editing/mac/attributed-string/font-style-variant-effect-expected.txt: Removed.
- platform/mac-sierra/editing/mac/attributed-string/font-weight-expected.txt: Removed.
- platform/mac-sierra/editing/mac/attributed-string/letter-spacing-expected.txt: Removed.
- platform/mac-sierra/editing/mac/attributed-string/text-decorations-expected.txt: Removed.
- platform/mac-sierra/editing/mac/attributed-string/vertical-align-expected.txt: Removed.
- platform/mac-sierra/editing/mac/input/firstrectforcharacterrange-styled-expected.txt: Removed.
- platform/mac-sierra/editing/selection/select-from-textfield-outwards-expected.png: Removed.
- platform/mac-sierra/editing/selection/select-from-textfield-outwards-expected.txt: Removed.
- platform/mac-sierra/fast/HTMLTextAreaElement/reset-textarea-expected.png: Removed.
- platform/mac-sierra/fast/HTMLTextAreaElement/reset-textarea-expected.txt: Removed.
- platform/mac-sierra/fast/block/basic/001-expected.png: Removed.
- platform/mac-sierra/fast/block/basic/001-expected.txt: Removed.
- platform/mac-sierra/fast/css-generated-content/initial-letter-basic-expected.png: Removed.
- platform/mac-sierra/fast/css-generated-content/initial-letter-basic-expected.txt: Removed.
- platform/mac-sierra/fast/css-generated-content/initial-letter-border-padding-expected.png: Removed.
- platform/mac-sierra/fast/css-generated-content/initial-letter-border-padding-expected.txt: Removed.
- platform/mac-sierra/fast/css-generated-content/initial-letter-raised-expected.png: Removed.
- platform/mac-sierra/fast/css-generated-content/initial-letter-raised-expected.txt: Removed.
- platform/mac-sierra/fast/css-generated-content/initial-letter-sunken-expected.png: Removed.
- platform/mac-sierra/fast/css-generated-content/initial-letter-sunken-expected.txt: Removed.
- platform/mac-sierra/fast/css/apple-system-control-colors-expected.txt: Removed.
- platform/mac-sierra/fast/css/css3-nth-child-expected.png: Removed.
- platform/mac-sierra/fast/css/css3-nth-child-expected.txt: Removed.
- platform/mac-sierra/fast/css/getComputedStyle/computed-style-expected.txt: Removed.
- platform/mac-sierra/fast/css/getComputedStyle/computed-style-font-family-expected.txt: Removed.
- platform/mac-sierra/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt: Removed.
- platform/mac-sierra/fast/css/rtl-ordering-expected.png: Removed.
- platform/mac-sierra/fast/css/rtl-ordering-expected.txt: Removed.
- platform/mac-sierra/fast/css/text-overflow-input-expected.png: Removed.
- platform/mac-sierra/fast/css/text-overflow-input-expected.txt: Removed.
- platform/mac-sierra/fast/dom/34176-expected.png: Removed.
- platform/mac-sierra/fast/dom/34176-expected.txt: Removed.
- platform/mac-sierra/fast/dom/HTMLTextAreaElement/reset-textarea-expected.txt: Removed.
- platform/mac-sierra/fast/dom/clone-node-dynamic-style-expected.png: Removed.
- platform/mac-sierra/fast/dom/clone-node-dynamic-style-expected.txt: Removed.
- platform/mac-sierra/fast/forms/basic-inputs-expected.png: Removed.
- platform/mac-sierra/fast/forms/basic-inputs-expected.txt: Removed.
- platform/mac-sierra/fast/forms/box-shadow-override-expected.png: Removed.
- platform/mac-sierra/fast/forms/box-shadow-override-expected.txt: Removed.
- platform/mac-sierra/fast/forms/button-sizes-expected.png: Removed.
- platform/mac-sierra/fast/forms/button-sizes-expected.txt: Removed.
- platform/mac-sierra/fast/forms/button-style-color-expected.png: Removed.
- platform/mac-sierra/fast/forms/button-style-color-expected.txt: Removed.
- platform/mac-sierra/fast/forms/input-appearance-disabled-expected.png: Removed.
- platform/mac-sierra/fast/forms/input-appearance-disabled-expected.txt: Removed.
- platform/mac-sierra/fast/forms/input-appearance-readonly-expected.png: Removed.
- platform/mac-sierra/fast/forms/input-appearance-readonly-expected.txt: Removed.
- platform/mac-sierra/fast/forms/input-appearance-visibility-expected.png: Removed.
- platform/mac-sierra/fast/forms/input-appearance-visibility-expected.txt: Removed.
- platform/mac-sierra/fast/forms/input-button-sizes-expected.png: Removed.
- platform/mac-sierra/fast/forms/input-button-sizes-expected.txt: Removed.
- platform/mac-sierra/fast/forms/input-table-expected.txt: Removed.
- platform/mac-sierra/fast/forms/input-value-expected.png: Removed.
- platform/mac-sierra/fast/forms/input-value-expected.txt: Removed.
- platform/mac-sierra/fast/forms/listbox-bidi-align-expected.png: Removed.
- platform/mac-sierra/fast/forms/listbox-bidi-align-expected.txt: Removed.
- platform/mac-sierra/fast/forms/listbox-hit-test-zoomed-expected.png: Removed.
- platform/mac-sierra/fast/forms/listbox-hit-test-zoomed-expected.txt: Removed.
- platform/mac-sierra/fast/forms/option-script-expected.png: Removed.
- platform/mac-sierra/fast/forms/option-script-expected.txt: Removed.
- platform/mac-sierra/fast/forms/plaintext-mode-2-expected.png: Removed.
- platform/mac-sierra/fast/forms/plaintext-mode-2-expected.txt: Removed.
- platform/mac-sierra/fast/forms/search-rtl-expected.png: Removed.
- platform/mac-sierra/fast/forms/search-rtl-expected.txt: Removed.
- platform/mac-sierra/fast/forms/search-vertical-alignment-expected.png: Removed.
- platform/mac-sierra/fast/forms/search-vertical-alignment-expected.txt: Removed.
- platform/mac-sierra/fast/forms/searchfield-heights-expected.png: Removed.
- platform/mac-sierra/fast/forms/searchfield-heights-expected.txt: Removed.
- platform/mac-sierra/fast/forms/select-visual-hebrew-expected.png: Removed.
- platform/mac-sierra/fast/forms/select-visual-hebrew-expected.txt: Removed.
- platform/mac-sierra/fast/forms/select-writing-direction-natural-expected.png: Removed.
- platform/mac-sierra/fast/forms/select-writing-direction-natural-expected.txt: Removed.
- platform/mac-sierra/fast/forms/textarea-setinnerhtml-expected.png: Removed.
- platform/mac-sierra/fast/forms/textarea-setinnerhtml-expected.txt: Removed.
- platform/mac-sierra/fast/forms/textfield-outline-expected.png: Removed.
- platform/mac-sierra/fast/forms/textfield-outline-expected.txt: Removed.
- platform/mac-sierra/fast/forms/visual-hebrew-text-field-expected.png: Removed.
- platform/mac-sierra/fast/forms/visual-hebrew-text-field-expected.txt: Removed.
- platform/mac-sierra/fast/invalid/003-expected.png: Removed.
- platform/mac-sierra/fast/invalid/003-expected.txt: Removed.
- platform/mac-sierra/fast/invalid/004-expected.png: Removed.
- platform/mac-sierra/fast/invalid/004-expected.txt: Removed.
- platform/mac-sierra/fast/invalid/nestedh3s-expected.png: Removed.
- platform/mac-sierra/fast/invalid/nestedh3s-expected.txt: Removed.
- platform/mac-sierra/fast/selectors/018-expected.png: Removed.
- platform/mac-sierra/fast/selectors/018-expected.txt: Removed.
- platform/mac-sierra/fast/table/frame-and-rules-expected.png: Removed.
- platform/mac-sierra/fast/table/frame-and-rules-expected.txt: Removed.
- platform/mac-sierra/fast/text/atsui-multiple-renderers-expected.png: Removed.
- platform/mac-sierra/fast/text/atsui-multiple-renderers-expected.txt: Removed.
- platform/mac-sierra/fast/text/bidi-embedding-pop-and-push-same-expected.png: Removed.
- platform/mac-sierra/fast/text/bidi-embedding-pop-and-push-same-expected.txt: Removed.
- platform/mac-sierra/fast/text/drawBidiText-expected.png: Removed.
- platform/mac-sierra/fast/text/drawBidiText-expected.txt: Removed.
- platform/mac-sierra/fast/text/emoji-expected.txt: Removed.
- platform/mac-sierra/fast/text/font-selection-font-face-parse-expected.txt: Removed.
- platform/mac-sierra/fast/text/font-selection-font-loading-api-parse-expected.txt: Removed.
- platform/mac-sierra/fast/text/font-stretch-parse-expected.txt: Removed.
- platform/mac-sierra/fast/text/font-style-parse-expected.txt: Removed.
- platform/mac-sierra/fast/text/font-weight-parse-expected.txt: Removed.
- platform/mac-sierra/fast/text/font-weights-expected.png: Removed.
- platform/mac-sierra/fast/text/font-weights-expected.txt: Removed.
- platform/mac-sierra/fast/text/font-weights-zh-expected.png: Removed.
- platform/mac-sierra/fast/text/font-weights-zh-expected.txt: Removed.
- platform/mac-sierra/fast/text/indic-expected.png: Removed.
- platform/mac-sierra/fast/text/indic-expected.txt: Removed.
- platform/mac-sierra/fast/text/international/complex-character-based-fallback-expected.png: Removed.
- platform/mac-sierra/fast/text/international/complex-character-based-fallback-expected.txt: Removed.
- platform/mac-sierra/fast/text/international/danda-space-expected.png: Removed.
- platform/mac-sierra/fast/text/international/danda-space-expected.txt: Removed.
- platform/mac-sierra/fast/text/international/pop-up-button-text-alignment-and-direction-expected.png: Removed.
- platform/mac-sierra/fast/text/international/pop-up-button-text-alignment-and-direction-expected.txt: Removed.
- platform/mac-sierra/fast/text/orientation-sideways-expected.png: Removed.
- platform/mac-sierra/fast/text/orientation-sideways-expected.txt: Removed.
- platform/mac-sierra/fast/text/updateNewFont-expected.png: Removed.
- platform/mac-sierra/fast/text/updateNewFont-expected.txt: Removed.
- platform/mac-sierra/fast/writing-mode/text-orientation-basic-expected.png: Removed.
- platform/mac-sierra/fast/writing-mode/text-orientation-basic-expected.txt: Removed.
- platform/mac-sierra/fonts/cursive-expected.png: Removed.
- platform/mac-sierra/fonts/cursive-expected.txt: Removed.
- platform/mac-sierra/http/tests/blink/sendbeacon/beacon-same-origin-expected.txt: Removed.
- platform/mac-sierra/http/tests/inspector/network/resource-sizes-memory-cache-expected.txt: Removed.
- platform/mac-sierra/http/tests/inspector/network/resource-sizes-network-expected.txt: Removed.
- platform/mac-sierra/http/tests/websocket/tests/hybi/secure-cookie-secure-connection-expected.txt: Removed.
- platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/pbkdf2.https.worker-expected.txt: Removed.
- platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/test_pbkdf2_long_empty.https-expected.txt: Removed.
- platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/test_pbkdf2_short_empty.https-expected.txt: Removed.
- platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.any-expected.txt: Removed.
- platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.any.worker-expected.txt: Removed.
- platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.https.worker-expected.txt: Removed.
- platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/failures_RSA-PSS.worker-expected.txt: Removed.
- platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.any-expected.txt: Removed.
- platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.any.worker-expected.txt: Removed.
- platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.https.worker-expected.txt: Removed.
- platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-PSS.worker-expected.txt: Removed.
- platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures.https-expected.txt: Removed.
- platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_failures_RSA-PSS.https-expected.txt: Removed.
- platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/test_successes_RSA-PSS.https-expected.txt: Removed.
- platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/import_export/rsa_importKey.https.worker-expected.txt: Removed.
- platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/import_export/rsa_importKey.worker-expected.txt: Removed.
- platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/import_export/test_rsa_importKey.https-expected.txt: Removed.
- platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/sign_verify/rsa_pkcs.https.worker-expected.txt: Removed.
- platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/sign_verify/rsa_pkcs.worker-expected.txt: Removed.
- platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/sign_verify/rsa_pss.https.worker-expected.txt: Removed.
- platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/sign_verify/rsa_pss.worker-expected.txt: Removed.
- platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/sign_verify/test_rsa_pkcs.https-expected.txt: Removed.
- platform/mac-sierra/imported/w3c/web-platform-tests/WebCryptoAPI/sign_verify/test_rsa_pss.https-expected.txt: Removed.
- platform/mac-sierra/imported/w3c/web-platform-tests/fetch/api/basic/request-headers.any-expected.txt: Removed.
- platform/mac-sierra/imported/w3c/web-platform-tests/fetch/api/basic/request-headers.any.worker-expected.txt: Removed.
- platform/mac-sierra/imported/w3c/web-platform-tests/media-source/mediasource-changetype-play-expected.txt: Removed.
- platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt: Removed.
- platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-expected.txt: Removed.
- platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt: Removed.
- platform/mac-sierra/imported/w3c/web-platform-tests/xhr/send-blob-with-no-mime-type-expected.txt: Removed.
- platform/mac-sierra/inspector/css/shadow-scoped-style-expected.txt: Removed.
- platform/mac-sierra/platform/mac/fast/loader/file-url-mimetypes-3-expected.txt: Removed.
- platform/mac-sierra/printing/width-overflow-expected.txt: Removed.
- platform/mac-sierra/svg/W3C-SVG-1.1/animate-elem-46-t-expected.txt: Removed.
- platform/mac-sierra/svg/W3C-SVG-1.1/struct-use-01-t-expected.txt: Removed.
- platform/mac-sierra/svg/batik/text/textStyles-expected.png: Removed.
- platform/mac-sierra/svg/batik/text/textStyles-expected.txt: Removed.
- platform/mac-sierra/svg/css/getComputedStyle-basic-expected.txt: Removed.
- platform/mac-sierra/tables/mozilla/bugs/bug18359-expected.png: Removed.
- platform/mac-sierra/tables/mozilla/bugs/bug18359-expected.txt: Removed.
- platform/mac-sierra/tables/mozilla/bugs/bug30692-expected.txt: Removed.
- platform/mac-sierra/tables/mozilla/bugs/bug51727-expected.png: Removed.
- platform/mac-sierra/tables/mozilla/bugs/bug51727-expected.txt: Removed.
- platform/mac-sierra/tables/mozilla/bugs/bug52505-expected.png: Removed.
- platform/mac-sierra/tables/mozilla/bugs/bug52505-expected.txt: Removed.
- platform/mac-sierra/tables/mozilla/other/wa_table_thtd_rowspan-expected.png: Removed.
- platform/mac-sierra/tables/mozilla/other/wa_table_thtd_rowspan-expected.txt: Removed.
- platform/mac-sierra/tables/mozilla/other/wa_table_tr_align-expected.png: Removed.
- platform/mac-sierra/tables/mozilla/other/wa_table_tr_align-expected.txt: Removed.
- platform/mac-sierra/transforms/2d/zoom-menulist-expected.png: Removed.
- platform/mac-sierra/transforms/2d/zoom-menulist-expected.txt: Removed.
- 9:53 PM Changeset in webkit [252684] by
-
- 71 edits2 moves in trunk/Source/JavaScriptCore
GetByVal should use polymorphic access and hook into a status object
https://bugs.webkit.org/show_bug.cgi?id=202767
Reviewed by Keith Miller.
This patch puts get_by_val in our normal IC caching infrastructure. This means
building it on top of StructureStubInfo and PolymorphicAccess. For this to
work, AccessCase now supports all the array load variants that we used to have
fast paths for. For identifier based variants, it we just fall back to the
code we've already implemented, but only after doing a runtime check that
the identifier matches the expected identifier. This allows us to reuse all
the IC infrastructure we have for get_by_id.
Our compilation strategy is that the baseline JIT always emits a get_by_val
IC. If that IC goes to the slow path, the DFG/FTL won't also emit the same IC,
since it's probable that we're seeing a megamorphic switch over strings. This
was needed to keep this patch neutral on Speedometer 2. It's likely there is
room to improve this heuristic: https://bugs.webkit.org/show_bug.cgi?id=204336
This now allows us to have inline caches which contain array loads, and uses
of different identifiers. They just show up as different access cases inside
polymorphic access.
This patch is a progression on various microbenchmarks, especially those with
uses of a fixed set of multiple identifiers. It's neutral on JetStream 2 and
Speedometer 2.
This patch also hooks in get_by_val ICs to our ICStatus infrastructure. This
is going to pave the way to allow us to eagerly throw away baseline code, since
when we go for an FTL compile, we will be able to use the IC status from the
prior compile without relying on baseline specific data structures.
There are a few interesting tidbits in this patch that are worth
highlighting.
- Unlike get_by_id, when we take an IC snapshot for a get_by_val
IC, we're not guaranteed the various identifiers in question will outlive
the compile (get_by_id ensures this since they're in the constant pool of
CodeBlock). For get_by_val, the Identifiers in question are dynamic fields
of AccessCase, and AccessCase may get destroyed as we're compiling concurrently.
Also, String's reference counting isn't thread safe, so we can't just ref it.
Instead, we use a Box<Identifier> inside AccessCase. This allows us to safely
ref the Box without refing the underlying String. We're not worried about the
Box being destroyed while we're doing this, since we're holding a lock while
taking an IC snapshot inside GetByStatus.
- We no longer hold onto the actual JS symbol object in the inline cache.
This is what we used to do for inlining by val infos. Instead, this patch
extends the CheckStringIdent node to be able to handle symbols as well. This
patch also renames CheckStringIdent to CheckIdent.
This patch also renames various IC related helpers from GetById* to GetBy*,
since they can both be used by get_by_val and get_by_id.
- JavaScriptCore.xcodeproj/project.pbxproj:
- Sources.txt:
- bytecode/AccessCase.cpp:
(JSC::AccessCase::AccessCase):
(JSC::AccessCase::create):
(JSC::AccessCase::fromStructureStubInfo):
(JSC::AccessCase::commit):
(JSC::AccessCase::guardedByStructureCheck const):
(JSC::AccessCase::guardedByStructureCheckSkippingConstantIdentifierCheck const):
(JSC::AccessCase::requiresIdentifierNameMatch const):
(JSC::AccessCase::requiresInt32PropertyCheck const):
(JSC::AccessCase::needsScratchFPR const):
(JSC::AccessCase::forEachDependentCell const):
(JSC::AccessCase::doesCalls const):
(JSC::AccessCase::canReplace const):
(JSC::AccessCase::dump const):
(JSC::AccessCase::generateWithGuard):
(JSC::AccessCase::generate):
(JSC::AccessCase::generateImpl):
(JSC::AccessCase::toTypedArrayType):
(JSC::AccessCase::checkConsistency):
- bytecode/AccessCase.h:
(JSC::AccessCase::uid const):
(JSC::AccessCase::identifier const):
(JSC::AccessCase::checkConsistency):
(JSC::AccessCase::AccessCase):
- bytecode/GetByIdStatus.cpp: Removed.
- bytecode/GetByIdStatus.h: Removed.
- bytecode/GetByIdVariant.cpp:
(JSC::GetByIdVariant::GetByIdVariant):
(JSC::GetByIdVariant::operator=):
(JSC::GetByIdVariant::attemptToMerge):
- bytecode/GetByIdVariant.h:
(JSC::GetByIdVariant::domAttribute const):
(JSC::GetByIdVariant::identifier const):
- bytecode/GetByStatus.cpp: Copied from Source/JavaScriptCore/bytecode/GetByIdStatus.cpp.
(JSC::GetByStatus::appendVariant):
(JSC::GetByStatus::computeFromLLInt):
(JSC::GetByStatus::computeFor):
(JSC::GetByStatus::GetByStatus):
(JSC::GetByStatus::computeForStubInfoWithoutExitSiteFeedback):
(JSC::GetByStatus::makesCalls const):
(JSC::GetByStatus::slowVersion const):
(JSC::GetByStatus::merge):
(JSC::GetByStatus::filter):
(JSC::GetByStatus::markIfCheap):
(JSC::GetByStatus::finalize):
(JSC::GetByStatus::singleIdentifier const):
(JSC::GetByStatus::dump const):
(JSC::GetByIdStatus::appendVariant): Deleted.
(JSC::GetByIdStatus::computeFromLLInt): Deleted.
(JSC::GetByIdStatus::computeFor): Deleted.
(JSC::GetByIdStatus::computeForStubInfo): Deleted.
(JSC::GetByIdStatus::GetByIdStatus): Deleted.
(JSC::GetByIdStatus::computeForStubInfoWithoutExitSiteFeedback): Deleted.
(JSC::GetByIdStatus::makesCalls const): Deleted.
(JSC::GetByIdStatus::slowVersion const): Deleted.
(JSC::GetByIdStatus::merge): Deleted.
(JSC::GetByIdStatus::filter): Deleted.
(JSC::GetByIdStatus::markIfCheap): Deleted.
(JSC::GetByIdStatus::finalize): Deleted.
(JSC::GetByIdStatus::dump const): Deleted.
- bytecode/GetByStatus.h: Copied from Source/JavaScriptCore/bytecode/GetByIdStatus.h.
(JSC::GetByStatus::GetByStatus):
(JSC::GetByStatus::moduleNamespaceObject const):
(JSC::GetByStatus::moduleEnvironment const):
(JSC::GetByStatus::scopeOffset const):
(JSC::GetByIdStatus::GetByIdStatus): Deleted.
(JSC::GetByIdStatus::state const): Deleted.
(JSC::GetByIdStatus::isSet const): Deleted.
(JSC::GetByIdStatus::operator bool const): Deleted.
(JSC::GetByIdStatus::isSimple const): Deleted.
(JSC::GetByIdStatus::isCustom const): Deleted.
(JSC::GetByIdStatus::isModuleNamespace const): Deleted.
(JSC::GetByIdStatus::numVariants const): Deleted.
(JSC::GetByIdStatus::variants const): Deleted.
(JSC::GetByIdStatus::at const): Deleted.
(JSC::GetByIdStatus::operator[] const): Deleted.
(JSC::GetByIdStatus::takesSlowPath const): Deleted.
(JSC::GetByIdStatus::wasSeenInJIT const): Deleted.
(JSC::GetByIdStatus::moduleNamespaceObject const): Deleted.
(JSC::GetByIdStatus::moduleEnvironment const): Deleted.
(JSC::GetByIdStatus::scopeOffset const): Deleted.
- bytecode/GetterSetterAccessCase.cpp:
(JSC::GetterSetterAccessCase::GetterSetterAccessCase):
(JSC::GetterSetterAccessCase::create):
- bytecode/GetterSetterAccessCase.h:
- bytecode/ICStatusMap.h:
- bytecode/InByIdStatus.cpp:
(JSC::InByIdStatus::computeForStubInfoWithoutExitSiteFeedback):
- bytecode/InlineAccess.cpp:
(JSC::InlineAccess::generateSelfPropertyAccess):
(JSC::InlineAccess::canGenerateSelfPropertyReplace):
(JSC::InlineAccess::generateSelfPropertyReplace):
(JSC::InlineAccess::isCacheableArrayLength):
(JSC::InlineAccess::generateArrayLength):
(JSC::InlineAccess::isCacheableStringLength):
(JSC::InlineAccess::generateStringLength):
(JSC::InlineAccess::generateSelfInAccess):
- bytecode/InstanceOfAccessCase.cpp:
(JSC::InstanceOfAccessCase::InstanceOfAccessCase):
- bytecode/InstanceOfStatus.cpp:
(JSC::InstanceOfStatus::computeForStubInfo):
- bytecode/IntrinsicGetterAccessCase.cpp:
(JSC::IntrinsicGetterAccessCase::IntrinsicGetterAccessCase):
(JSC::IntrinsicGetterAccessCase::create):
- bytecode/IntrinsicGetterAccessCase.h:
- bytecode/ModuleNamespaceAccessCase.cpp:
(JSC::ModuleNamespaceAccessCase::ModuleNamespaceAccessCase):
(JSC::ModuleNamespaceAccessCase::create):
- bytecode/ModuleNamespaceAccessCase.h:
- bytecode/PolymorphicAccess.cpp:
(JSC::AccessGenerationState::preserveLiveRegistersToStackForCall):
(JSC::PolymorphicAccess::addCases):
(JSC::PolymorphicAccess::addCase):
(JSC::PolymorphicAccess::commit):
(JSC::PolymorphicAccess::regenerate):
(WTF::printInternal):
- bytecode/PolymorphicAccess.h:
- bytecode/ProxyableAccessCase.cpp:
(JSC::ProxyableAccessCase::ProxyableAccessCase):
(JSC::ProxyableAccessCase::create):
- bytecode/ProxyableAccessCase.h:
- bytecode/PutByIdStatus.cpp:
(JSC::PutByIdStatus::computeForStubInfo):
- bytecode/RecordedStatuses.cpp:
(JSC::RecordedStatuses::addGetByStatus):
(JSC::RecordedStatuses::addGetByIdStatus): Deleted.
- bytecode/RecordedStatuses.h:
- bytecode/StructureStubInfo.cpp:
(JSC::StructureStubInfo::StructureStubInfo):
(JSC::StructureStubInfo::initGetByIdSelf):
(JSC::StructureStubInfo::initArrayLength):
(JSC::StructureStubInfo::initStringLength):
(JSC::StructureStubInfo::initPutByIdReplace):
(JSC::StructureStubInfo::initInByIdSelf):
(JSC::StructureStubInfo::deref):
(JSC::StructureStubInfo::aboutToDie):
(JSC::StructureStubInfo::addAccessCase):
(JSC::StructureStubInfo::reset):
(JSC::StructureStubInfo::visitWeakReferences):
(JSC::StructureStubInfo::propagateTransitions):
(JSC::StructureStubInfo::summary const):
(JSC::StructureStubInfo::containsPC const):
(JSC::StructureStubInfo::setCacheType):
(JSC::StructureStubInfo::checkConsistency):
- bytecode/StructureStubInfo.h:
(JSC::StructureStubInfo::getByIdSelfIdentifier):
(JSC::StructureStubInfo::thisValueIsInThisGPR const):
(JSC::StructureStubInfo::checkConsistency):
(JSC::StructureStubInfo::cacheType const):
(JSC::appropriateOptimizingGetByIdFunction):
(JSC::appropriateGenericGetByIdFunction):
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::filterICStatus):
- dfg/DFGArgumentsEliminationPhase.cpp:
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::handleDOMJITGetter):
(JSC::DFG::ByteCodeParser::handleModuleNamespaceLoad):
(JSC::DFG::ByteCodeParser::load):
(JSC::DFG::ByteCodeParser::handleGetById):
(JSC::DFG::ByteCodeParser::parseGetById):
(JSC::DFG::ByteCodeParser::parseBlock):
(JSC::DFG::ByteCodeParser::handlePutByVal):
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
- dfg/DFGClobbersExitState.cpp:
(JSC::DFG::clobbersExitState):
- dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::foldConstants):
- dfg/DFGDesiredIdentifiers.cpp:
(JSC::DFG::DesiredIdentifiers::processCodeBlockIdentifiersIfNeeded):
(JSC::DFG::DesiredIdentifiers::ensure):
(JSC::DFG::DesiredIdentifiers::at const):
(JSC::DFG::DesiredIdentifiers::reallyAdd):
- dfg/DFGDesiredIdentifiers.h:
- dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGGraph.cpp:
(JSC::DFG::Graph::dump):
- dfg/DFGGraph.h:
- dfg/DFGInPlaceAbstractState.cpp:
- dfg/DFGJITCompiler.cpp:
(JSC::DFG::JITCompiler::link):
- dfg/DFGJITCompiler.h:
(JSC::DFG::JITCompiler::addGetByVal):
- dfg/DFGMayExit.cpp:
- dfg/DFGNode.h:
(JSC::DFG::Node::hasUidOperand):
(JSC::DFG::Node::hasGetByStatus):
(JSC::DFG::Node::getByStatus):
(JSC::DFG::Node::hasGetByIdStatus): Deleted.
(JSC::DFG::Node::getByIdStatus): Deleted.
- dfg/DFGNodeType.h:
- dfg/DFGObjectAllocationSinkingPhase.cpp:
- dfg/DFGPredictionPropagationPhase.cpp:
- dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileGetById):
(JSC::DFG::SpeculativeJIT::compileCheckIdent):
(JSC::DFG::SpeculativeJIT::compileCheckStringIdent): Deleted.
- dfg/DFGSpeculativeJIT.h:
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::cachedGetByIdWithThis):
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::cachedGetByIdWithThis):
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGVarargsForwardingPhase.cpp:
- ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckIdent):
(JSC::FTL::DFG::LowerDFGToB3::compileGetById):
(JSC::FTL::DFG::LowerDFGToB3::compileGetByVal):
(JSC::FTL::DFG::LowerDFGToB3::getByIdWithThis):
(JSC::FTL::DFG::LowerDFGToB3::compileCheckStringIdent): Deleted.
- jit/ICStats.h:
- jit/JIT.cpp:
(JSC::JIT::privateCompileSlowCases):
(JSC::JIT::link):
- jit/JIT.h:
- jit/JITInlineCacheGenerator.cpp:
(JSC::garbageStubInfo):
(JSC::JITGetByIdWithThisGenerator::JITGetByIdWithThisGenerator):
(JSC::JITInstanceOfGenerator::JITInstanceOfGenerator):
(JSC::JITGetByValGenerator::JITGetByValGenerator):
(JSC::JITGetByValGenerator::generateFastPath):
(JSC::JITGetByValGenerator::finalize):
- jit/JITInlineCacheGenerator.h:
(JSC::JITGetByValGenerator::JITGetByValGenerator):
(JSC::JITGetByValGenerator::slowPathJump const):
- jit/JITInlines.h:
(JSC::JIT::emitDoubleGetByVal): Deleted.
(JSC::JIT::emitContiguousGetByVal): Deleted.
(JSC::JIT::emitArrayStorageGetByVal): Deleted.
- jit/JITOperations.cpp:
(JSC::getByVal):
(JSC::tryGetByValOptimize): Deleted.
- jit/JITOperations.h:
- jit/JITPropertyAccess.cpp:
(JSC::JIT::emit_op_get_by_val):
(JSC::JIT::emitSlow_op_get_by_val):
(JSC::JIT::emit_op_try_get_by_id):
(JSC::JIT::emit_op_get_by_id_direct):
(JSC::JIT::emit_op_get_by_id):
(JSC::JIT::emit_op_get_by_id_with_this):
(JSC::JIT::emitGetByValWithCachedId): Deleted.
(JSC::JIT::privateCompileGetByVal): Deleted.
(JSC::JIT::privateCompileGetByValWithCachedId): Deleted.
(JSC::JIT::emitDirectArgumentsGetByVal): Deleted.
(JSC::JIT::emitScopedArgumentsGetByVal): Deleted.
(JSC::JIT::emitIntTypedArrayGetByVal): Deleted.
(JSC::JIT::emitFloatTypedArrayGetByVal): Deleted.
- jit/JITPropertyAccess32_64.cpp:
(JSC::JIT::emit_op_get_by_val):
(JSC::JIT::emit_op_try_get_by_id):
(JSC::JIT::emit_op_get_by_id_direct):
(JSC::JIT::emit_op_get_by_id):
(JSC::JIT::emit_op_get_by_id_with_this):
(JSC::JIT::emitGetByValWithCachedId): Deleted.
- jit/Repatch.cpp:
(JSC::appropriateOptimizingGetByFunction):
(JSC::appropriateGetByFunction):
(JSC::tryCacheGetBy):
(JSC::repatchGetBy):
(JSC::tryCacheArrayGetByVal):
(JSC::repatchArrayGetByVal):
(JSC::tryCachePutByID):
(JSC::tryCacheInByID):
(JSC::tryCacheInstanceOf):
(JSC::resetGetBy):
(JSC::appropriateOptimizingGetByIdFunction): Deleted.
(JSC::appropriateGetByIdFunction): Deleted.
(JSC::tryCacheGetByID): Deleted.
(JSC::repatchGetByID): Deleted.
(JSC::resetGetByID): Deleted.
- jit/Repatch.h:
- llint/LowLevelInterpreter.h:
- runtime/DOMAnnotation.h:
- runtime/JSCJSValue.cpp:
(JSC::JSValue::dumpInContextAssumingStructure const):
- runtime/Structure.h:
- 9:12 PM Changeset in webkit [252683] by
-
- 10 edits1 add in trunk
Implement String.prototype.replaceAll
https://bugs.webkit.org/show_bug.cgi?id=202471
Reviewed by Yusuke Suzuki.
JSTests:
- stress/string-replaceall.js: Added.
Source/JavaScriptCore:
Implement the stage 3 proposal here:
https://github.com/tc39/proposal-string-replaceall
String.prototype.replaceAll is the same as String.prototype.replace, except:
- When the first argument is a string, all instances of the search string are replaced.
- When the first argument is a non-global regular expression, a TypeError is thrown.
- builtins/BuiltinNames.h:
- builtins/StringPrototype.js:
(replaceAll): Added.
- runtime/StringPrototype.cpp:
(JSC::StringPrototype::finishCreation):
(JSC::jsSpliceSubstringsWithSeparators): Add early out for single-replacement case.
(JSC::replaceUsingStringSearch): Add global replacement logic, following replaceUsingRegExpSearch.
(JSC::replace):
(JSC::stringProtoFuncReplaceUsingStringSearch):
(JSC::stringProtoFuncReplaceAllUsingStringSearch): Added.
Source/WTF:
- wtf/text/StringCommon.h:
(WTF::findCommon):
Fix logic: "start > length" early out should come before "empty search string" early out.
LayoutTests:
- js/Object-getOwnPropertyNames-expected.txt:
- js/script-tests/Object-getOwnPropertyNames.js:
Grrr, why is this a layout test...
- 8:31 PM Changeset in webkit [252682] by
-
- 3 edits1 add in trunk
Web Inspector: DOM.highlightSelector should work for "div, div::before"
https://bugs.webkit.org/show_bug.cgi?id=204306
Reviewed by Brian Burg.
.:
- ManualTests/inspector/overlay-selectors.html: Added.
Source/WebCore:
In r252436, the implementation of
DOM.highlightSelector
was changed from just calling
document.querySelectorAll
to actually attempting to mimic what the CSS selector matching
engine does. Basically, this meant adding logic to walk the entire DOM tree and for each
node test eachCSSSelector
of the givenselector
string to see if it matched.
At the time, I had incorrectly assumed that once a selector was found that matched the
current node, it wouldn't need to be checked against ever again. This would be a fine
assumption if we didn't care about:before
/:after
, but sinceDOM.highlightSelector
also wants to match those, it is necessary to test everyCSSSelector
in case a later one
in the givenselector
string matches a pseudo-element (e.g.div, div:before
).
The fix is simply to change
break
tocontinue
and to ensure that every item in the
generatedNodeList
is unique (otherwise the overlay for a node may be drawn twice).
- inspector/agents/InspectorDOMAgent.cpp:
(WebCore::InspectorDOMAgent::highlightSelector):
- 8:10 PM Changeset in webkit [252681] by
-
- 18 edits in trunk
getUserMedia echoCancellation constraint has no affect
https://bugs.webkit.org/show_bug.cgi?id=179411
Reviewed by Eric Carlson.
LayoutTests/imported/w3c:
- web-platform-tests/mediacapture-streams/MediaDevices-getSupportedConstraints.https-expected.txt:
Source/WebCore:
Update implementation to properly report echoCancellation is supported and can take true or false.
Update CoreAudioCaptureSource to initialize its state in constructor from the audio unit.
This allows getUserMedia constraints to kick in after construction and update the source parameters.
Audio unit parameters will then be set when the source will be asked to produce data.
To enable testing, the mock audio is now adding a high frequency hum when echo cancellation is off.
Covered by updated test.
- Modules/mediastream/MediaStreamTrack.cpp:
(WebCore::capabilityStringVector):
(WebCore::capabilityBooleanVector):
- platform/mediastream/RealtimeMediaSourceCenter.cpp:
(WebCore::RealtimeMediaSourceCenter::RealtimeMediaSourceCenter):
- platform/mediastream/gstreamer/MockGStreamerAudioCaptureSource.cpp:
- platform/mediastream/mac/CoreAudioCaptureSource.cpp:
(WebCore::CoreAudioCaptureSource::initializeToStartProducingData):
- platform/mediastream/mac/MockAudioSharedUnit.mm:
(WebCore::MockAudioSharedUnit::reconfigure):
- platform/mock/MockRealtimeAudioSource.cpp:
(WebCore::MockRealtimeAudioSource::MockRealtimeAudioSource):
LayoutTests:
- fast/mediastream/MediaDevices-getSupportedConstraints-expected.txt:
- fast/mediastream/MediaDevices-getSupportedConstraints.html:
- fast/mediastream/MediaStreamTrack-getCapabilities-expected.txt:
- fast/mediastream/apply-constraints-audio-expected.txt:
- fast/mediastream/apply-constraints-audio.html:
- fast/mediastream/getUserMedia-webaudio-expected.txt:
- fast/mediastream/getUserMedia-webaudio.html:
- webrtc/routines.js:
- 7:41 PM Changeset in webkit [252680] by
-
- 50 edits2 adds in trunk
[ESNext][BigInt] Add support for op_inc
https://bugs.webkit.org/show_bug.cgi?id=193240
Reviewed by Yusuke Suzuki.
JSTests:
Some parts of these tests are inspired by tests in a WIP patch by Caio Lima.
Thanks to him for allowing their reuse.
- stress/inc-osr-exit-from-big-int.js: Added.
(let.assert.sameValue):
(postInc):
(preInc):
(postDec):
(preDec):
- stress/inc-osr-exit-to-big-int.js: Added.
(let.assert.sameValue):
(postInc):
(preInc):
(postDec):
(preDec):
(o.valueOf):
Source/JavaScriptCore:
This patch adds support for both ++ and -- on BigInts.
It required the following secondary changes:
- teaching FixupPhase how to replace it by ArithAdd/ArithSub/ValueAdd/ValueSub when the type is Int32/Double/BigInt
- pulling ObservedResults out of UnaryArithProfile/BinaryArithProfile, so that it can be used by ArithAdd regardless of whether it comes from an Inc or from an Add
- adding the constant 1n to the VM object so that it can be used by FixupPhase since it cannot allocate a new JSValue.
- adding an UnaryArithProfile to op_inc and op_dec, and teaching the llint to update them.
- adding ToNumeric (identity on bigints, same as toNumber on everything else) to all tiers
- bytecode/ArithProfile.cpp:
(JSC::ArithProfile<BitfieldType>::shouldEmitSetDouble const):
(JSC::ArithProfile<BitfieldType>::emitSetDouble const):
(JSC::ArithProfile<BitfieldType>::shouldEmitSetNonNumeric const):
(JSC::ArithProfile<BitfieldType>::shouldEmitSetBigInt const):
(JSC::ArithProfile<BitfieldType>::emitSetNonNumeric const):
(JSC::ArithProfile<BitfieldType>::emitSetBigInt const):
- bytecode/ArithProfile.h:
(JSC::ObservedResults::ObservedResults):
(JSC::ObservedResults::didObserveNonInt32):
(JSC::ObservedResults::didObserveDouble):
(JSC::ObservedResults::didObserveNonNegZeroDouble):
(JSC::ObservedResults::didObserveNegZeroDouble):
(JSC::ObservedResults::didObserveNonNumeric):
(JSC::ObservedResults::didObserveBigInt):
(JSC::ObservedResults::didObserveInt32Overflow):
(JSC::ObservedResults::didObserveInt52Overflow):
(JSC::ArithProfile::observedResults const):
(JSC::ArithProfile::didObserveNonInt32 const):
(JSC::ArithProfile::didObserveDouble const):
(JSC::ArithProfile::didObserveNonNegZeroDouble const):
(JSC::ArithProfile::didObserveNegZeroDouble const):
(JSC::ArithProfile::didObserveNonNumeric const):
(JSC::ArithProfile::didObserveBigInt const):
(JSC::ArithProfile::didObserveInt32Overflow const):
(JSC::ArithProfile::didObserveInt52Overflow const):
(JSC::ArithProfile::setObservedNonNegZeroDouble):
(JSC::ArithProfile::setObservedNegZeroDouble):
(JSC::ArithProfile::setObservedNonNumeric):
(JSC::ArithProfile::setObservedBigInt):
(JSC::ArithProfile::setObservedInt32Overflow):
(JSC::ArithProfile::setObservedInt52Overflow):
(JSC::ArithProfile::observeResult):
- bytecode/BytecodeList.rb:
- bytecode/BytecodeUseDef.h:
(JSC::computeUsesForBytecodeIndex):
(JSC::computeDefsForBytecodeIndex):
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::unaryArithProfileForPC):
- bytecode/ExitKind.h:
- bytecode/SpeculatedType.h:
(JSC::isInt32SpeculationForArithmetic):
(JSC::isInt32OrBooleanSpeculationForArithmetic):
- bytecompiler/BytecodeGenerator.cpp:
(JSC::BytecodeGenerator::emitUnaryOp):
(JSC::BytecodeGenerator::emitToNumeric):
- bytecompiler/BytecodeGenerator.h:
- bytecompiler/NodesCodegen.cpp:
(JSC::emitPostIncOrDec):
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGBackwardsPropagationPhase.cpp:
(JSC::DFG::BackwardsPropagationPhase::propagate):
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::makeSafe):
(JSC::DFG::ByteCodeParser::parseBlock):
- dfg/DFGCapabilities.cpp:
(JSC::DFG::capabilityLevel):
- dfg/DFGClobberize.h:
(JSC::DFG::clobberize):
- dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::foldConstants):
- dfg/DFGDoesGC.cpp:
(JSC::DFG::doesGC):
- dfg/DFGFixupPhase.cpp:
(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::fixupToNumeric):
- dfg/DFGMayExit.cpp:
- dfg/DFGNode.h:
(JSC::DFG::Node::hasHeapPrediction):
- dfg/DFGNodeType.h:
- dfg/DFGOperations.cpp:
- dfg/DFGOperations.h:
- dfg/DFGPredictionPropagationPhase.cpp:
- dfg/DFGSafeToExecute.h:
(JSC::DFG::safeToExecute):
- dfg/DFGSpeculativeJIT.cpp:
(JSC::DFG::SpeculativeJIT::compileIncOrDec):
(JSC::DFG::SpeculativeJIT::compileToPrimitive):
(JSC::DFG::SpeculativeJIT::compileToNumeric):
- dfg/DFGSpeculativeJIT.h:
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compile):
- ftl/FTLCapabilities.cpp:
(JSC::FTL::canCompile):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileIncOrDec):
- jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):
- jit/JIT.h:
- jit/JITMathIC.h:
(JSC::JITMathIC::generateInline):
- jit/JITMulGenerator.cpp:
(JSC::JITMulGenerator::generateFastPath):
- jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_to_numeric):
- jit/JITOpcodes32_64.cpp:
(JSC::JIT::emit_op_to_numeric):
- llint/LowLevelInterpreter.asm:
- llint/LowLevelInterpreter32_64.asm:
- llint/LowLevelInterpreter64.asm:
- runtime/CommonSlowPaths.cpp:
(JSC::SLOW_PATH_DECL):
- runtime/CommonSlowPaths.h:
- runtime/JSBigInt.cpp:
(JSC::JSBigInt::inc):
(JSC::JSBigInt::dec):
- runtime/JSBigInt.h:
- runtime/VM.cpp:
(JSC::VM::VM):
- runtime/VM.h:
- 7:22 PM Changeset in webkit [252679] by
-
- 6 edits in trunk
Remove runNullishAwareOperatorsEnabled
Rubber-stamped by Keith Miller.
JSTests:
- stress/nullish-coalescing.js:
- stress/optional-chaining.js:
- stress/tail-call-recognize.js:
Tools:
- Scripts/run-jsc-stress-tests:
- 7:14 PM Changeset in webkit [252678] by
-
- 4 edits in trunk/Source/WebKit
Unreviewed, fix webkitpy failures after r252655.
- Scripts/webkit/LegacyMessageReceiver-expected.cpp:
(WebKit::WebPage::didReceiveWebPageMessage):
(WebKit::WebPage::didReceiveSyncWebPageMessage):
- Scripts/webkit/MessageReceiver-expected.cpp:
(WebKit::WebPage::didReceiveMessage):
(WebKit::WebPage::didReceiveSyncMessage):
- Scripts/webkit/MessageReceiverSuperclass-expected.cpp:
(WebKit::WebPage::didReceiveMessage):
(WebKit::WebPage::didReceiveSyncMessage):
- 7:08 PM Changeset in webkit [252677] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed mac catalyst build fix after r252655.
- WebProcess/WebPage/Cocoa/TextCheckingControllerProxy.messages.in:
- 6:43 PM Changeset in webkit [252676] by
-
- 5 edits4 moves in trunk/LayoutTests
Typos in layout test names
https://bugs.webkit.org/show_bug.cgi?id=204387
Patch by Peng Liu <Peng Liu> on 2019-11-19
Reviewed by Eric Carlson.
- media/video-fullscreen-only-controls-expected.txt: Renamed from LayoutTests/media/video-fullscreeen-only-controls-expected.txt.
- media/video-fullscreen-only-controls.html: Renamed from LayoutTests/media/video-fullscreeen-only-controls.html.
- media/video-fullscreen-only-playback-expected.txt: Renamed from LayoutTests/media/video-fullscreeen-only-playback-expected.txt.
- media/video-fullscreen-only-playback.html: Renamed from LayoutTests/media/video-fullscreeen-only-playback.html.
- platform/gtk/TestExpectations:
- platform/ios/TestExpectations:
- platform/mac/TestExpectations:
- platform/win/TestExpectations:
- 6:37 PM Changeset in webkit [252675] by
-
- 3 edits2 adds in trunk
Assertion failure in HTMLMediaElement::enterFullscreen()
https://bugs.webkit.org/show_bug.cgi?id=204376
Patch by Peng Liu <Peng Liu> on 2019-11-19
Reviewed by Eric Carlson.
Source/WebCore:
Test: media/video-set-presentation-mode-to-inline.html
- html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::setFullscreenMode):
LayoutTests:
- media/video-set-presentation-mode-to-inline-expected.txt: Added.
- media/video-set-presentation-mode-to-inline.html: Added.
- 6:28 PM Changeset in webkit [252674] by
-
- 2 edits in trunk/Source/JavaScriptCore
[JSC] MetadataTable::sizeInBytes should not touch m_rawBuffer in UnlinkedMetadataTable unless MetadataTable is linked to that UnlinkedMetadataTable
https://bugs.webkit.org/show_bug.cgi?id=204390
Reviewed by Mark Lam.
We have a race issue here. When calling MetadataTable::sizeInBytes, we call UnlinkedMetadataTable::sizeInBytes since we change the result based on
whether this MetadataTable is linked to this UnlinkedMetadataTable or not. The problem is that we are callingUnlinkedMetadataTable::totalSize
unconditionally in UnlinkedMetadataTable::sizeInBytes, and this is touching m_rawBuffer unconditionally. This is not correct since it is possible
that this m_rawBuffer is realloced while we are calling MetadataTable::sizeInBytes in GC thread.
- The GC thread is calling MetadataTable::sizeInBytes for MetadataTable "A".
- The main thread is destroying MetadataTable "B".
- MetadataTable "B" is linked to UnlinkedMetadataTable "C".
- MetadataTable "A" is pointing to UnlinkedMetadataTable "C".
- "A" is touching UnlinkedMetadataTable::m_rawBuffer in "C", called from MetadataTable::sizeInBytes.
- (2) destroys MetadataTable "B", and realloc UnlinkedMetadataTable::m_rawBuffer in "C".
- (5) can touch already freed buffer.
This patch fixes UnlinkedMetadataTable::sizeInBytes: not touching m_rawBuffer unless it is owned by the caller's MetadataTable. We need to call
UnlinkedMetadataTable::sizeInBytes anyway since we need to adjust the result based on whether the caller MetadataTable is linked to this UnlinkedMetadataTable.
- bytecode/UnlinkedMetadataTableInlines.h:
(JSC::UnlinkedMetadataTable::sizeInBytes):
- 6:13 PM Changeset in webkit [252673] by
-
- 2 edits in trunk/Source/WebCore
IndexedDB: pass along error of IDBBackingStore operations
https://bugs.webkit.org/show_bug.cgi?id=204381
Reviewed by Brady Eidson.
Covered by existing tests.
- Modules/indexeddb/server/UniqueIDBDatabase.cpp:
(WebCore::IDBServer::UniqueIDBDatabase::performCreateObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::performDeleteObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::performClearObjectStore):
(WebCore::IDBServer::UniqueIDBDatabase::performDeleteIndex):
- 6:08 PM Changeset in webkit [252672] by
-
- 6 edits in trunk
IndexedDB: overflow of KeyGenerator in MemoryIDBBackingStore
https://bugs.webkit.org/show_bug.cgi?id=204366
Reviewed by Brady Eidson.
Source/WebCore:
Do not set KeyGenerator if it is key is bigger than 253.
Test: storage/indexeddb/key-generator-private.html
- Modules/indexeddb/server/MemoryIDBBackingStore.cpp:
(WebCore::IDBServer::MemoryIDBBackingStore::maybeUpdateKeyGeneratorNumber):
LayoutTests:
- storage/indexeddb/key-generator-expected.txt:
- storage/indexeddb/key-generator-private-expected.txt:
- storage/indexeddb/resources/key-generator.js:
(request.onerror):
- 6:08 PM Changeset in webkit [252671] by
-
- 5 edits in trunk/Source/JavaScriptCore
[JSC] DisallowVMReentry and DeferGC should use WTF::ThreadSpecific instead of using WTF::threadSpecificKeyCreate directly
https://bugs.webkit.org/show_bug.cgi?id=204350
Reviewed by Yusuke Suzuki.
WTF provides two thread specific storages, ThreadSpecific and
threadSpecificKeyCreate. Only DisallowVMReentry and DeferGC were
using the latter. They should use WTF::ThreadSpecific because it
is a useful type-safe wrapper class.
- heap/DeferGC.cpp:
- heap/DeferGC.h:
(JSC::DisallowGC::initialize):
(JSC::DisallowGC::scopeReentryCount):
(JSC::DisallowGC::setScopeReentryCount):
- runtime/DisallowVMReentry.cpp:
- runtime/DisallowVMReentry.h:
(JSC::DisallowVMReentry::initialize):
(JSC::DisallowVMReentry::scopeReentryCount):
(JSC::DisallowVMReentry::setScopeReentryCount):
- 5:53 PM Changeset in webkit [252670] by
-
- 3 edits5 adds in trunk
IndexedDB: update m_objectStoresByName after renaming object store
https://bugs.webkit.org/show_bug.cgi?id=204373
Reviewed by Brady Eidson.
Source/WebCore:
Tests: storage/indexeddb/put-after-objectstore-rename-private.html
storage/indexeddb/put-after-objectstore-rename.html
- Modules/indexeddb/server/MemoryIDBBackingStore.cpp:
(WebCore::IDBServer::MemoryIDBBackingStore::renameObjectStore):
LayoutTests:
- storage/indexeddb/put-after-objectstore-rename-expected.txt: Added.
- storage/indexeddb/put-after-objectstore-rename-private-expected.txt: Added.
- storage/indexeddb/put-after-objectstore-rename-private.html: Added.
- storage/indexeddb/put-after-objectstore-rename.html: Added.
- storage/indexeddb/resources/put-after-objectstore-rename.js: Added.
(prepareDatabase):
(openSuccess):
- 5:37 PM Changeset in webkit [252669] by
-
- 2 edits in branches/safari-608-branch/Tools
Cherry-pick r252031. rdar://problem/56889868
webkitpy: Build ImageDiff if it is missing
https://bugs.webkit.org/show_bug.cgi?id=183422
Reviewed by Alexey Proskuryakov.
ImageDiff is built with a different SDK than the rest of the WebKit
stack, and this frequently causes infrastructure failures where ImageDiff
is missing on testers. To address this, we should automatically build
ImageDiff if it is missing.
- Scripts/webkitpy/port/base.py: (Port.check_build): Unconditionally build ImageDiff if it is missing. (Port.check_image_diff): Use _build_path since _path_to_image_diff will attempt to use a back-up location. (Port._path_to_image_diff): If the provided path to ImageDiff does not exist, use the path of the one we built.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252031 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:35 PM Changeset in webkit [252668] by
-
- 5 edits in trunk/LayoutTests
Improve WebAuthn NFC tests after r252297
https://bugs.webkit.org/show_bug.cgi?id=204251
Reviewed by Alexey Proskuryakov.
This patch fixes a test failure after r252297 and adds new test contents for r252297.
- http/wpt/webauthn/public-key-credential-create-failure-nfc.https-expected.txt:
- http/wpt/webauthn/public-key-credential-create-failure-nfc.https.html:
- http/wpt/webauthn/public-key-credential-create-success-nfc.https-expected.txt:
- http/wpt/webauthn/public-key-credential-create-success-nfc.https.html:
- 5:27 PM Changeset in webkit [252667] by
-
- 3 edits4 adds in trunk
Nullptr crash in Node::setTextContent via Document::setTitle if title element is removed before setTextContent call.
https://bugs.webkit.org/show_bug.cgi?id=204332
Patch by Sunny He <sunny_he@apple.com> on 2019-11-19
Reviewed by Ryosuke Niwa.
Source/WebCore:
Test: fast/dom/Document/title-property-set-with-dom-event.html
- dom/Document.cpp:
(WebCore::Document::setTitle):
LayoutTests:
- fast/dom/Document/title-property-set-with-dom-event-expected.txt: Added.
- fast/dom/Document/title-property-set-with-dom-event.html: Added.
- fast/dom/Document/title-property-set-with-dom-event-svg-expected.html: Added.
- fast/dom/Document/title-property-set-with-dom-event-svg.html: Added.
- 5:24 PM Changeset in webkit [252666] by
-
- 3 edits in branches/safari-608-branch/Tools
Cherry-pick r250997. rdar://problem/56177210
results.webkit.org: Sort out certificates on Catalina
https://bugs.webkit.org/show_bug.cgi?id=202837
Unreviewed infrastructure repair.
This is a temporary strategy until we sort out our certificates on the newly
deployed Catalina bots.
- Scripts/webkitpy/results/upload.py: (Upload.upload): (Upload.upload_archive):
- Scripts/webkitpy/results/upload_unittest.py: (UploadTest.test_upload): (UploadTest.test_archive_upload):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@250997 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:24 PM Changeset in webkit [252665] by
-
- 6 edits in branches/safari-608-branch/Tools
Cherry-pick r250966. rdar://problem/56047710
results.webkit.org: Start reporting results
https://bugs.webkit.org/show_bug.cgi?id=202639
Reviewed by Dewei Zhu.
- BuildSlaveSupport/build.webkit.org-config/loadConfig.py: (loadBuilderConfig): Load API key for results.webkit.org.
- BuildSlaveSupport/build.webkit.org-config/make_passwords_json.py: (create_mock_slave_passwords_dict): Add mock for API key.
- BuildSlaveSupport/build.webkit.org-config/steps.py: (RunWebKitTests): Start reporting to results.webkit.org. (RunWebKitTests.init): Do not print the environment to hide the API key. (RunWebKitTests.start): Add the API key to the environment. (RunAPITests): Start reporting to results.webkit.org. (RunAPITests.init): Do not print the environment to hide the API key. (RunAPITests.start): Add the API key to the environment. (RunPythonTests): Start reporting to results.webkit.org. (RunPythonTests.init): Do not print the environment to hide the API key. (RunPythonTests.start): Add the API key to the environment.
- Scripts/webkitpy/results/upload.py: (Upload): (Upload.upload): Add API_KEY, if it exists, to the request. (Upload.upload_archive): Ditto.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@250966 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:24 PM Changeset in webkit [252664] by
-
- 2 edits in branches/safari-608-branch/Tools
Cherry-pick r252087. rdar://problem/56900657
REGRESSION(r252031): layout tests fail to run in non apple ports after r252031 (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=203844
Rubber-stamped by Aakash Jain.
Remove infinite loop for Windows.
- Scripts/webkitpy/port/win.py: (WinPort._path_to_default_image_diff): (WinPort._path_to_image_diff): Deleted.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252087 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:24 PM Changeset in webkit [252663] by
-
- 4 edits in branches/safari-608-branch/Tools
Cherry-pick r252058. rdar://problem/56889868
webkitpy: Build ImageDiff if it is missing (Follow-fix)
https://bugs.webkit.org/show_bug.cgi?id=183422
Unreviewed infrastructure fix.
- Scripts/webkitpy/port/base.py: (Port._path_to_image_diff): Use the host build directory.
- Scripts/webkitpy/port/config.py: (Config.build_directory): Allow the caller to ignore the port argument, which will return the default build directory for the host running the script.
- Scripts/webkitpy/port/port_testcase.py: (PortTestCase.make_port):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252058 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:24 PM Changeset in webkit [252662] by
-
- 4 edits in branches/safari-608-branch/Tools
Cherry-pick r249652. rdar://problem/55190632
run-webkit-tests: Report results archive to results.webkit.org
https://bugs.webkit.org/show_bug.cgi?id=201321
Reviewed by Aakash Jain.
- Scripts/webkitpy/layout_tests/controllers/manager.py: (Manager.run): After all tests are finish, upload the results archive for each configuration.
- Scripts/webkitpy/results/upload.py: (Upload): (Upload.init): Automatically define timestamp. (Upload.upload_archive): Upload an archive associated with the test run.
- Scripts/webkitpy/results/upload_unittest.py: (UploadTest.test_buildbot): (UploadTest): (UploadTest.test_archive_upload):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@249652 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:56 PM Changeset in webkit [252661] by
-
- 2 edits in trunk/Source/JavaScriptCore
[JSC] Work-around Leaks' false-positive report about memory leaking
https://bugs.webkit.org/show_bug.cgi?id=204384
<rdar://problem/56950932>
Reviewed by Mark Lam.
According to the radar, Leaks start reporting false-positive memory leaks about ExecutableAllocator and FixedVMPoolExecutableAllocator,
while they are per-process singleton and reachable through g_jscConfig. I'm guessing this is because Leaks start skipping scan for
readonly memory region. (g_jscConfig is now mprotected to readonly).
To work-around this, we anchor these heap allocated things to global variables to help Leaks scan. Once it is fixed, we should remove it.
- jit/ExecutableAllocator.cpp:
(JSC::ExecutableAllocator::initializeUnderlyingAllocator):
(JSC::ExecutableAllocator::initialize):
- 4:50 PM Changeset in webkit [252660] by
-
- 5 edits1 move3 adds1 delete in trunk/Source/WebCore
Introduce a mock implementation of CoreAudioSharedUnit
https://bugs.webkit.org/show_bug.cgi?id=204290
Reviewed by Eric Carlson.
Introduce BaseAudioSharedUnit as a base class to CoreAudioSharedUnit.
Make CoreAudioCaptureSource use either CoreAudioSharedUnit singleton or an override.
Implement a MockAudioSharedUnit and use the override to implement mock audio capture sources.
Remove some code from CoreAudioCaptureSource related to reference data, which is not used currently.
Covered by existing tests.
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/mediastream/mac/BaseAudioSharedUnit.cpp: Added.
(WebCore::BaseAudioSharedUnit::addClient):
(WebCore::BaseAudioSharedUnit::removeClient):
(WebCore::BaseAudioSharedUnit::forEachClient const):
(WebCore::BaseAudioSharedUnit::clearClients):
(WebCore::BaseAudioSharedUnit::startProducingData):
(WebCore::BaseAudioSharedUnit::resume):
(WebCore::BaseAudioSharedUnit::prepareForNewCapture):
(WebCore::BaseAudioSharedUnit::captureFailed):
(WebCore::BaseAudioSharedUnit::stopProducingData):
(WebCore::BaseAudioSharedUnit::suspend):
(WebCore::BaseAudioSharedUnit::audioSamplesAvailable):
- platform/mediastream/mac/BaseAudioSharedUnit.h: Added.
(WebCore::BaseAudioSharedUnit::delaySamples):
(WebCore::BaseAudioSharedUnit::isSuspended const):
(WebCore::BaseAudioSharedUnit::volume const):
(WebCore::BaseAudioSharedUnit::sampleRate const):
(WebCore::BaseAudioSharedUnit::enableEchoCancellation const):
(WebCore::BaseAudioSharedUnit::setVolume):
(WebCore::BaseAudioSharedUnit::setSampleRate):
(WebCore::BaseAudioSharedUnit::setEnableEchoCancellation):
(WebCore::BaseAudioSharedUnit::sampleRateCapacities const):
(WebCore::BaseAudioSharedUnit::hasClients const):
(WebCore::BaseAudioSharedUnit::setSuspended):
- platform/mediastream/mac/CoreAudioCaptureSource.cpp:
(WebCore::CoreAudioSharedUnit::unit):
(WebCore::CoreAudioSharedUnit::CoreAudioSharedUnit):
(WebCore::CoreAudioSharedUnit::setupAudioUnit):
(WebCore::CoreAudioSharedUnit::configureMicrophoneProc):
(WebCore::CoreAudioSharedUnit::configureSpeakerProc):
(WebCore::CoreAudioSharedUnit::provideSpeakerData):
(WebCore::CoreAudioSharedUnit::processMicrophoneSamples):
(WebCore::initializeCoreAudioCaptureSource):
(WebCore::CoreAudioCaptureSource::create):
(WebCore::CoreAudioCaptureSource::createForTesting):
(WebCore::CoreAudioCaptureSource::unit):
(WebCore::CoreAudioCaptureSourceFactory::devicesChanged):
(WebCore::CoreAudioCaptureSource::CoreAudioCaptureSource):
(WebCore::CoreAudioCaptureSource::initializeToStartProducingData):
(WebCore::CoreAudioCaptureSource::~CoreAudioCaptureSource):
(WebCore::CoreAudioCaptureSource::startProducingData):
(WebCore::CoreAudioCaptureSource::stopProducingData):
(WebCore::CoreAudioCaptureSource::capabilities):
(WebCore::CoreAudioCaptureSource::settingsDidChange):
(WebCore::CoreAudioCaptureSource::scheduleReconfiguration):
(WebCore::CoreAudioCaptureSource::beginInterruption):
(WebCore::CoreAudioCaptureSource::endInterruption):
(WebCore::CoreAudioCaptureSource::interrupted const):
(WebCore::CoreAudioCaptureSource::delaySamples):
- platform/mediastream/mac/CoreAudioCaptureSource.h:
- platform/mediastream/mac/MockAudioSharedUnit.h: Added.
- platform/mediastream/mac/MockAudioSharedUnit.mm: Added.
(WebCore::MockRealtimeAudioSource::create):
(WebCore::MockAudioSharedUnit::singleton):
(WebCore::MockAudioSharedUnit::MockAudioSharedUnit):
(WebCore::MockAudioSharedUnit::hasAudioUnit const):
(WebCore::MockAudioSharedUnit::setCaptureDevice):
(WebCore::MockAudioSharedUnit::reconfigureAudioUnit):
(WebCore::MockAudioSharedUnit::cleanupAudioUnit):
(WebCore::MockAudioSharedUnit::startInternal):
(WebCore::MockAudioSharedUnit::stopInternal):
(WebCore::MockAudioSharedUnit::isProducingData const):
(WebCore::MockAudioSharedUnit::tick):
(WebCore::MockAudioSharedUnit::delaySamples):
(WebCore::MockAudioSharedUnit::reconfigure):
(WebCore::MockAudioSharedUnit::emitSampleBuffers):
(WebCore::MockAudioSharedUnit::render):
- platform/mediastream/mac/MockRealtimeAudioSourceMac.h: Removed.
- 4:50 PM Changeset in webkit [252659] by
-
- 3 edits in trunk/LayoutTests
REGRESSION (r252598): system-preview/badge.html and transforms/2d/zoom-menulist.html are failing
https://bugs.webkit.org/show_bug.cgi?id=204383
Unreviewed test gardening: adjust these tests for the different color component
rounding introduced in r252598.
- platform/ios/transforms/2d/zoom-menulist-expected.txt:
- system-preview/badge-expected.html:
- 4:48 PM Changeset in webkit [252658] by
-
- 12 edits in trunk/Source
Unreviewed non-unified build fixes.
Source/WebCore:
- Modules/async-clipboard/ClipboardItem.cpp:
- Modules/async-clipboard/ClipboardItemBindingsDataSource.cpp:
- Modules/async-clipboard/ClipboardItemBindingsDataSource.h:
- Modules/async-clipboard/ClipboardItemDataSource.h:
- Modules/async-clipboard/ClipboardItemPasteboardDataSource.cpp:
- animation/WebAnimation.cpp:
- html/canvas/WebGLRenderingContextBase.cpp:
- xml/parser/XMLDocumentParserLibxml2.cpp:
Source/WebKit:
- WebProcess/WebPage/FindController.cpp:
- WebProcess/WebPage/FindController.h:
- 4:33 PM Changeset in webkit [252657] by
-
- 3 edits in branches/safari-608-branch/Source/WebKit
Cherry-pick r252619. rdar://problem/57330791
IPC::Decoder should use nullptr as invalid value
<https://webkit.org/b/203880>
<rdar://problem/53159906>
Reviewed by Brent Fulgham.
Covered by existing tests.
- Platform/IPC/Decoder.cpp: (IPC::alignedBufferIsLargeEnoughToContain): Add bufferStart parameter to add beginning bounds check now that m_bufferPos uses nullptr for an invalid value. (IPC::Decoder::alignBufferPosition): Update to pass m_buffer to IPC::alignedBufferIsLargeEnoughToContain(). (IPC::Decoder::bufferIsLargeEnoughToContain const): Ditto.
- Platform/IPC/Decoder.h: (IPC::Decoder::isInvalid const): Add beginning bounds check now that m_bufferPos uses nullptr for an invalid value. (IPC::Decoder::markInvalid): Make nullptr the invalid value for m_bufferPos.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252619 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:33 PM Changeset in webkit [252656] by
-
- 3 edits in branches/safari-608-branch/Source/WebCore
Cherry-pick r251678. rdar://problem/57283567
Drop code for X-Temp-Tablet HTTP header experiment
https://bugs.webkit.org/show_bug.cgi?id=203524
<rdar://problem/55791195>
Reviewed by Ryosuke Niwa.
- loader/cache/CachedResourceLoader.cpp: (WebCore::CachedResourceLoader::CachedResourceLoader): (WebCore::CachedResourceLoader::requestResource):
- loader/cache/CachedResourceLoader.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@251678 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:32 PM Changeset in webkit [252655] by
-
- 43 edits in trunk/Source/WebKit
Protect MessageReceivers when possible while they are processing incoming IPC messages
https://bugs.webkit.org/show_bug.cgi?id=204377
Reviewed by Brady Eidson.
Protect MessageReceiver while they are processing incoming IPC messages for
extra safety. It is a common mistake to call client delegates as a result of an IPC, and
failing to protect |this| while doing so. Client code can destroy |this| and we end up
crashing.
For MessageReceivers that are not RefCounted, they can use the "NotRefCounted" attribute
in their messages.in file to opt out.
- NetworkProcess/Cookies/WebCookieManager.messages.in:
- NetworkProcess/CustomProtocols/LegacyCustomProtocolManager.messages.in:
- NetworkProcess/IndexedDB/WebIDBConnectionToClient.messages.in:
- NetworkProcess/NetworkContentRuleListManager.messages.in:
- NetworkProcess/NetworkSocketChannel.messages.in:
- NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.messages.in:
- NetworkProcess/ServiceWorker/WebSWServerConnection.messages.in:
- NetworkProcess/ServiceWorker/WebSWServerToContextConnection.messages.in:
- NetworkProcess/webrtc/NetworkMDNSRegister.messages.in:
- NetworkProcess/webrtc/NetworkRTCMonitor.messages.in:
- NetworkProcess/webrtc/NetworkRTCSocket.messages.in:
- PluginProcess/PluginControllerProxy.messages.in:
- PluginProcess/PluginProcess.messages.in:
- Scripts/webkit/messages.py:
- Shared/API/Cocoa/RemoteObjectRegistry.messages.in:
- Shared/ApplePay/WebPaymentCoordinatorProxy.messages.in:
- Shared/Authentication/AuthenticationManager.messages.in:
- Shared/AuxiliaryProcess.messages.in:
- Shared/Plugins/NPObjectMessageReceiver.messages.in:
- UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in:
- UIProcess/DrawingAreaProxy.messages.in:
- UIProcess/Network/CustomProtocols/LegacyCustomProtocolManagerProxy.messages.in:
- UIProcess/Network/NetworkProcessProxy.messages.in:
- UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.messages.in:
- UIProcess/ViewGestureController.messages.in:
- UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.messages.in:
- UIProcess/WebFullScreenManagerProxy.messages.in:
- UIProcess/WebPasteboardProxy.messages.in:
- UIProcess/ios/SmartMagnificationController.messages.in:
- WebProcess/ApplePay/WebPaymentCoordinator.messages.in:
- WebProcess/Automation/WebAutomationSessionProxy.messages.in:
- WebProcess/Geolocation/WebGeolocationManager.messages.in:
- WebProcess/Network/webrtc/WebMDNSRegister.messages.in:
- WebProcess/Network/webrtc/WebRTCMonitor.messages.in:
- WebProcess/Network/webrtc/WebRTCResolver.messages.in:
- WebProcess/Network/webrtc/WebRTCSocket.messages.in:
- WebProcess/Notifications/WebNotificationManager.messages.in:
- WebProcess/Storage/WebSWContextManagerConnection.messages.in:
- WebProcess/WebPage/DrawingArea.messages.in:
- WebProcess/WebPage/ViewGestureGeometryCollector.messages.in:
- WebProcess/WebProcess.messages.in:
- WebProcess/cocoa/UserMediaCaptureManager.messages.in:
- 4:16 PM Changeset in webkit [252654] by
-
- 2 edits in trunk/LayoutTests
Unreviewed, test gardening
- platform/ios-wk2/TestExpectations:
- 4:12 PM Changeset in webkit [252653] by
-
- 2 edits in trunk/Source/WebCore
Fix null deref when a DocumentLoader's policy decision is delivered.
<rdar://problem/54847830> and https://bugs.webkit.org/show_bug.cgi?id=204378
Reviewed by Ryosuke Niwa.
Definitely a required null check, as all async entries into DocumentLoader should (and most do!)
No new tests, as no steps to reproduce are known.
- loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::continueAfterContentPolicy): Null check m_frame.
- 2:55 PM Changeset in webkit [252652] by
-
- 14 edits in trunk/Source/WebInspectorUI
Web Inspector: Local Overrides: the placeholder for the MIME type, status code, and status text is the same as the placeholder URL
https://bugs.webkit.org/show_bug.cgi?id=204330
Reviewed by Joseph Pecoraro.
- UserInterface/Views/LocalResourceOverridePopover.js:
(WI.LocalResourceOverridePopover.prototype.get serializedData):
(WI.LocalResourceOverridePopover.prototype.show):
(WI.LocalResourceOverridePopover.prototype._createEditor):
- UserInterface/Views/LocalResourceOverridePopover.css:
(.popover .local-resource-override-popover-content .data-grid tr.header-content-type > :matches(.name-column, .value-column)): Added.
Replace the hardcodedplaceholder
with an optionaloptions
object that can include a
placeholder
value, allowing each caller to customize what is shown. Disallow selecting the
"Content-Type" header since it's automatically populated, even if there is no set value for
the MIME type or URL (e.g. inferred from placeholders).
Drive-by: if aCodeMirror
has no value, attempt to use it's placeholder instead.
Drive-by: replace genericdataGrid
with more specificthis._headersDataGrid
, which is
more clear given how many
WI.DataGrid
are created by this class.
- UserInterface/Views/DataGridNode.js:
(WI.DataGridNode.prototype.get selectable):
(WI.PlaceholderDataGridNode):
- UserInterface/Views/DataGrid.js:
(WI.DataGrid.createSortableDataGrid):
- UserInterface/Views/DOMStorageContentView.js:
(WI.DOMStorageContentView.prototype.itemAdded):
(WI.DOMStorageContentView.prototype._populate):
- UserInterface/Views/EditableDataGridNode.js:
(WI.EditableDataGridNode): Deleted.
- UserInterface/Views/HeapSnapshotClassDataGridNode.js:
(WI.HeapSnapshotClassDataGridNode):
- UserInterface/Views/HeapSnapshotInstanceDataGridNode.js:
(WI.HeapSnapshotInstanceDataGridNode):
- UserInterface/Views/HeapSnapshotInstanceFetchMoreDataGridNode.js:
(WI.HeapSnapshotInstanceFetchMoreDataGridNode):
- UserInterface/Views/ProfileDataGridNode.js:
(WI.ProfileDataGridNode):
- UserInterface/Views/RecordingStateDetailsSidebarPanel.js:
(WI.RecordingStateDetailsSidebarPanel.prototype._generateDetailsCanvas2D):
(WI.RecordingStateDetailsSidebarPanel):
- UserInterface/Views/ResourceDetailsSidebarPanel.js:
(WI.ResourceDetailsSidebarPanel.prototype._createNameValueDataGrid.addDataGridNode):
- UserInterface/Views/TimelineDataGridNode.js:
(WI.TimelineDataGridNode):
Rework constructor ofWI.DataGridNode
to accept anoptions
-style object as its second
parameter, instead of separate parameters for each configurable property. Now that this is
able to be done via a single parameter, add support for marking aWI.DataGridNode
as not
being selectable.
- 2:31 PM Changeset in webkit [252651] by
-
- 5 edits in trunk/Source/WebCore
Unreviewed, follow-up after r252642
https://bugs.webkit.org/show_bug.cgi?id=204346
- Modules/indexeddb/IDBActiveDOMObject.h:
- Modules/indexeddb/client/TransactionOperation.h:
(WebCore::IDBClient::TransactionOperation::~TransactionOperation):
(WebCore::IDBClient::TransactionOperation::perform):
(WebCore::IDBClient::TransactionOperation::transitionToCompleteOnThisThread):
(WebCore::IDBClient::TransactionOperation::transitionToComplete):
(WebCore::IDBClient::TransactionOperation::doComplete):
- platform/Supplementable.h:
(WebCore::Supplementable::provideSupplement):
(WebCore::Supplementable::removeSupplement):
(WebCore::Supplementable::requireSupplement):
- platform/Timer.cpp:
(WebCore::TimerBase::~TimerBase):
(WebCore::TimerBase::start):
(WebCore::TimerBase::stop):
(WebCore::TimerBase::setNextFireTime):
- 2:17 PM Changeset in webkit [252650] by
-
- 7 edits in tags/Safari-609.1.9.7/Source
Versioning.
- 2:15 PM Changeset in webkit [252649] by
-
- 1 copy in tags/Safari-609.1.9.7
New tag.
- 2:06 PM Changeset in webkit [252648] by
-
- 2 edits in trunk/Tools
results.webkit.org: Have build.webkit.org report JSC tests
https://bugs.webkit.org/show_bug.cgi?id=204364
Reviewed by Aakash Jain.
- BuildSlaveSupport/build.webkit.org-config/steps.py:
(RunJavaScriptCoreTests):
(RunWebKitTests):
(RunAPITests):
(RunPythonTests):
(RunLLINTCLoopTests):
(Run32bitJSCTests):
- 2:05 PM Changeset in webkit [252647] by
-
- 6 edits in trunk/Source/WebCore
ASSERTION FAILURE: useDownstream ? (result > vp) : (result < vp) in WebCore::nextSentenceBoundaryInDirection()
https://bugs.webkit.org/show_bug.cgi?id=204370
<rdar://problem/57332559>
Reviewed by Wenson Hsieh.
Only positions whose anchor nodes are in a document and in the same tree scope can be
compared using the operator< overload. Otherwise, the result is non-deterministic by
spec. <https://dom.spec.whatwg.org/#dom-node-comparedocumentposition> (13 November 2019):
- If node1 or node2 is null, or node1's root is not node2's root, then return the result of adding DOCUMENT_POSITION_DISCONNECTED, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC, and either DOCUMENT_POSITION_PRECEDING or DOCUMENT_POSITION_FOLLOWING, with the constraint that this is to be consistent, together.
NOTE: Whether to return DOCUMENT_POSITION_PRECEDING or DOCUMENT_POSITION_FOLLOWING is typically
implemented via pointer comparison. In JavaScript implementations a cached Math.random()
value can be used.
- dom/Node.cpp:
(WebCore::areNodesConnectedInSameTreeScope): Added; extracted from compareDocumentPosition().
(WebCore::Node::compareDocumentPosition): Write in terms of areNodesConnectedInSameTreeScope().
- dom/Node.h:
- editing/VisiblePosition.cpp:
(WebCore::areVisiblePositionsInSameTreeScope): Added. Write in terms of areNodesConnectedInSameTreeScope().
- editing/VisiblePosition.h:
- editing/VisibleUnits.cpp:
(WebCore::nextSentenceBoundaryInDirection): Update assert. We can only compare positions
if areVisiblePositionsInSameTreeScope() returns true.
- 1:57 PM Changeset in webkit [252646] by
-
- 20 edits1 move1 add in trunk/Source/WebCore
Rename AbstractEventLoop to EventLoop and move to its own cpp file
https://bugs.webkit.org/show_bug.cgi?id=204335
Reviewed by Antti Koivisto.
This patch renames AbstractEventLoop to EventLoop and move to its own cpp file since
r252607 consolidated the event loop implementations in WindowEventLoop and WorkerEventLoop.
- Modules/cache/DOMCache.cpp:
- Modules/cache/DOMCacheStorage.cpp:
- Modules/encryptedmedia/MediaKeySession.cpp:
- Modules/encryptedmedia/MediaKeys.cpp:
- Modules/encryptedmedia/legacy/WebKitMediaKeySession.cpp:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- animation/WebAnimation.cpp:
- bindings/js/JSDOMPromiseDeferred.h:
- css/FontFaceSet.cpp:
- dom/ActiveDOMObject.cpp:
- dom/Document.h:
- dom/ScriptExecutionContext.h:
- dom/WindowEventLoop.cpp:
(WebCore::AbstractEventLoop::queueTask): Deleted.
(WebCore::AbstractEventLoop::resumeGroup): Deleted.
(WebCore::AbstractEventLoop::stopGroup): Deleted.
(WebCore::AbstractEventLoop::scheduleToRunIfNeeded): Deleted.
(WebCore::AbstractEventLoop::run): Deleted.
(WebCore::AbstractEventLoop::clearAllTasks): Deleted.
(WebCore::EventLoopFunctionDispatchTask::EventLoopFunctionDispatchTask): Deleted.
(WebCore::EventLoopTaskGroup::queueTask): Deleted.
- dom/WindowEventLoop.h:
- fileapi/FileReader.cpp:
- testing/Internals.cpp:
- workers/WorkerEventLoop.h:
- workers/service/ServiceWorkerContainer.cpp:
- 1:36 PM Changeset in webkit [252645] by
-
- 3 edits in trunk/LayoutTests
fast/events/touch/ios/long-press-on-link.html times out after r251693
https://bugs.webkit.org/show_bug.cgi?id=204365
<rdar://problem/57324773>
Reviewed by Megan Gardner.
The change in trac.webkit.org/r251693 inadvertently fixed a failing layout test, fast/events/touch/ios/
long-press-on-image.html. In doing so, it caused the subsequent layout test, long-press-on-link.html, to begin
failing, since both tests depend on the previous test not presenting a context menu when long pressing; if the
previous test presents a context menu, the next test will proceed while the context menu is still dismissing,
which prevents the touches from making it to the web view.
To fix this, simply mark both tests as
runSingly
in test options; this forces context menu UI to be torn down
after running these two tests, so that these tests won't have side effects when they successfully show a context
menu.
- fast/events/touch/ios/long-press-on-image.html:
- fast/events/touch/ios/long-press-on-link.html:
- 1:21 PM Changeset in webkit [252644] by
-
- 4 edits in trunk/Tools
Disable reporting EWS test failures from clean-tree to results.webkit.org
https://bugs.webkit.org/show_bug.cgi?id=204369
Reviewed by Jonathan Bedard.
- BuildSlaveSupport/ews-build/steps.py:
(RunWebKitTestsWithoutPatch):
(RunAPITestsWithoutPatch.evaluateCommand):
(RunWebKitTestsWithoutPatch.start): Deleted.
(RunAPITestsWithoutPatch.start): Deleted.
- BuildSlaveSupport/ews-build/steps_unittest.py: Updated unit-tests.
- BuildSlaveSupport/ews-build/loadConfig.py:
- 1:00 PM Changeset in webkit [252643] by
-
- 2 edits in trunk/Source/WebKit
[iOS] Fix sysctl-read sandbox violation
https://bugs.webkit.org/show_bug.cgi?id=204358
<rdar://problem/57298313>
Reviewed by Brent Fulgham.
The WebContent sandbox should allow sysctl-read of "kern.hostname", "kern.osrelease", and "kern.version".
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
- 12:53 PM Changeset in webkit [252642] by
-
- 18 edits in trunk/Source
[IndexedDB] IndexedDB's threading assertion should respect Web thread
https://bugs.webkit.org/show_bug.cgi?id=204346
Reviewed by Daniel Bates.
Source/WebCore:
Previously we are doing pointer-comparison between Thread::current() and origin-thread to
assert the thread affinity. But this does not respect Web thread: we can create an object
in Web Thread, and touch it in the main thread if web thread lock is correctly held.
This patch replaces pointer-comparison with WTF::canAccessThreadLocalDataForThread helper
function which appropriately respects Web thread status.
No behavior change.
- Modules/indexeddb/IDBActiveDOMObject.h:
(WebCore::IDBActiveDOMObject::performCallbackOnOriginThread):
(WebCore::IDBActiveDOMObject::callFunctionOnOriginThread):
- Modules/indexeddb/IDBCursor.cpp:
(WebCore::IDBCursor::IDBCursor):
(WebCore::IDBCursor::~IDBCursor):
(WebCore::IDBCursor::sourcesDeleted const):
(WebCore::IDBCursor::transaction const):
(WebCore::IDBCursor::update):
(WebCore::IDBCursor::advance):
(WebCore::IDBCursor::continueFunction):
(WebCore::IDBCursor::uncheckedIterateCursor):
(WebCore::IDBCursor::deleteFunction):
(WebCore::IDBCursor::setGetResult):
- Modules/indexeddb/IDBDatabase.cpp:
(WebCore::IDBDatabase::~IDBDatabase):
(WebCore::IDBDatabase::hasPendingActivity const):
(WebCore::IDBDatabase::name const):
(WebCore::IDBDatabase::version const):
(WebCore::IDBDatabase::objectStoreNames const):
(WebCore::IDBDatabase::renameObjectStore):
(WebCore::IDBDatabase::renameIndex):
(WebCore::IDBDatabase::createObjectStore):
(WebCore::IDBDatabase::transaction):
(WebCore::IDBDatabase::deleteObjectStore):
(WebCore::IDBDatabase::close):
(WebCore::IDBDatabase::connectionToServerLost):
(WebCore::IDBDatabase::maybeCloseInServer):
(WebCore::IDBDatabase::activeDOMObjectName const):
(WebCore::IDBDatabase::stop):
(WebCore::IDBDatabase::startVersionChangeTransaction):
(WebCore::IDBDatabase::didStartTransaction):
(WebCore::IDBDatabase::willCommitTransaction):
(WebCore::IDBDatabase::didCommitTransaction):
(WebCore::IDBDatabase::willAbortTransaction):
(WebCore::IDBDatabase::didAbortTransaction):
(WebCore::IDBDatabase::didCommitOrAbortTransaction):
(WebCore::IDBDatabase::fireVersionChangeEvent):
(WebCore::IDBDatabase::dispatchEvent):
(WebCore::IDBDatabase::didCreateIndexInfo):
(WebCore::IDBDatabase::didDeleteIndexInfo):
- Modules/indexeddb/IDBIndex.cpp:
(WebCore::IDBIndex::IDBIndex):
(WebCore::IDBIndex::~IDBIndex):
(WebCore::IDBIndex::name const):
(WebCore::IDBIndex::setName):
(WebCore::IDBIndex::objectStore):
(WebCore::IDBIndex::keyPath const):
(WebCore::IDBIndex::unique const):
(WebCore::IDBIndex::multiEntry const):
(WebCore::IDBIndex::rollbackInfoForVersionChangeAbort):
(WebCore::IDBIndex::doOpenCursor):
(WebCore::IDBIndex::doOpenKeyCursor):
(WebCore::IDBIndex::doCount):
(WebCore::IDBIndex::doGet):
(WebCore::IDBIndex::doGetKey):
(WebCore::IDBIndex::doGetAll):
(WebCore::IDBIndex::doGetAllKeys):
(WebCore::IDBIndex::markAsDeleted):
- Modules/indexeddb/IDBObjectStore.cpp:
(WebCore::IDBObjectStore::IDBObjectStore):
(WebCore::IDBObjectStore::~IDBObjectStore):
(WebCore::IDBObjectStore::name const):
(WebCore::IDBObjectStore::setName):
(WebCore::IDBObjectStore::keyPath const):
(WebCore::IDBObjectStore::indexNames const):
(WebCore::IDBObjectStore::transaction):
(WebCore::IDBObjectStore::autoIncrement const):
(WebCore::IDBObjectStore::doOpenCursor):
(WebCore::IDBObjectStore::doOpenKeyCursor):
(WebCore::IDBObjectStore::get):
(WebCore::IDBObjectStore::getKey):
(WebCore::IDBObjectStore::putOrAdd):
(WebCore::IDBObjectStore::doDelete):
(WebCore::IDBObjectStore::clear):
(WebCore::IDBObjectStore::createIndex):
(WebCore::IDBObjectStore::index):
(WebCore::IDBObjectStore::deleteIndex):
(WebCore::IDBObjectStore::doCount):
(WebCore::IDBObjectStore::doGetAll):
(WebCore::IDBObjectStore::doGetAllKeys):
(WebCore::IDBObjectStore::markAsDeleted):
(WebCore::IDBObjectStore::rollbackForVersionChangeAbort):
- Modules/indexeddb/IDBOpenDBRequest.cpp:
(WebCore::IDBOpenDBRequest::~IDBOpenDBRequest):
(WebCore::IDBOpenDBRequest::onError):
(WebCore::IDBOpenDBRequest::versionChangeTransactionDidFinish):
(WebCore::IDBOpenDBRequest::fireSuccessAfterVersionChangeCommit):
(WebCore::IDBOpenDBRequest::fireErrorAfterVersionChangeCompletion):
(WebCore::IDBOpenDBRequest::dispatchEvent):
(WebCore::IDBOpenDBRequest::onSuccess):
(WebCore::IDBOpenDBRequest::onUpgradeNeeded):
(WebCore::IDBOpenDBRequest::onDeleteDatabaseSuccess):
(WebCore::IDBOpenDBRequest::requestCompleted):
(WebCore::IDBOpenDBRequest::requestBlocked):
- Modules/indexeddb/IDBRequest.cpp:
(WebCore::IDBRequest::~IDBRequest):
(WebCore:: const):
(WebCore::IDBRequest::setSource):
(WebCore::IDBRequest::setVersionChangeTransaction):
(WebCore::IDBRequest::transaction const):
(WebCore::IDBRequest::sourceObjectStoreIdentifier const):
(WebCore::IDBRequest::sourceIndexIdentifier const):
(WebCore::IDBRequest::requestedObjectStoreRecordType const):
(WebCore::IDBRequest::requestedIndexRecordType const):
(WebCore::IDBRequest::eventTargetInterface const):
(WebCore::IDBRequest::activeDOMObjectName const):
(WebCore::IDBRequest::hasPendingActivity const):
(WebCore::IDBRequest::stop):
(WebCore::IDBRequest::enqueueEvent):
(WebCore::IDBRequest::dispatchEvent):
(WebCore::IDBRequest::uncaughtExceptionInEventHandler):
(WebCore::IDBRequest::setResult):
(WebCore::IDBRequest::setResultToStructuredClone):
(WebCore::IDBRequest::setResultToUndefined):
(WebCore::IDBRequest::resultCursor):
(WebCore::IDBRequest::willIterateCursor):
(WebCore::IDBRequest::didOpenOrIterateCursor):
(WebCore::IDBRequest::completeRequestAndDispatchEvent):
(WebCore::IDBRequest::onError):
(WebCore::IDBRequest::onSuccess):
- Modules/indexeddb/IDBTransaction.cpp:
(WebCore::IDBTransaction::IDBTransaction):
(WebCore::IDBTransaction::~IDBTransaction):
(WebCore::IDBTransaction::objectStoreNames const):
(WebCore::IDBTransaction::db):
(WebCore::IDBTransaction::error const):
(WebCore::IDBTransaction::objectStore):
(WebCore::IDBTransaction::abortDueToFailedRequest):
(WebCore::IDBTransaction::transitionedToFinishing):
(WebCore::IDBTransaction::abort):
(WebCore::IDBTransaction::internalAbort):
(WebCore::IDBTransaction::abortOnServerAndCancelRequests):
(WebCore::IDBTransaction::activeDOMObjectName const):
(WebCore::IDBTransaction::hasPendingActivity const):
(WebCore::IDBTransaction::stop):
(WebCore::IDBTransaction::isActive const):
(WebCore::IDBTransaction::isFinishedOrFinishing const):
(WebCore::IDBTransaction::addRequest):
(WebCore::IDBTransaction::removeRequest):
(WebCore::IDBTransaction::scheduleOperation):
(WebCore::IDBTransaction::trySchedulePendingOperationTimer):
(WebCore::IDBTransaction::pendingOperationTimerFired):
(WebCore::IDBTransaction::operationCompletedOnServer):
(WebCore::IDBTransaction::scheduleCompletedOperationTimer):
(WebCore::IDBTransaction::completedOperationTimerFired):
(WebCore::IDBTransaction::commit):
(WebCore::IDBTransaction::commitOnServer):
(WebCore::IDBTransaction::finishAbortOrCommit):
(WebCore::IDBTransaction::didStart):
(WebCore::IDBTransaction::notifyDidAbort):
(WebCore::IDBTransaction::didAbort):
(WebCore::IDBTransaction::didCommit):
(WebCore::IDBTransaction::fireOnComplete):
(WebCore::IDBTransaction::fireOnAbort):
(WebCore::IDBTransaction::enqueueEvent):
(WebCore::IDBTransaction::dispatchEvent):
(WebCore::IDBTransaction::createObjectStore):
(WebCore::IDBTransaction::createObjectStoreOnServer):
(WebCore::IDBTransaction::didCreateObjectStoreOnServer):
(WebCore::IDBTransaction::renameObjectStore):
(WebCore::IDBTransaction::renameObjectStoreOnServer):
(WebCore::IDBTransaction::didRenameObjectStoreOnServer):
(WebCore::IDBTransaction::createIndex):
(WebCore::IDBTransaction::createIndexOnServer):
(WebCore::IDBTransaction::didCreateIndexOnServer):
(WebCore::IDBTransaction::renameIndex):
(WebCore::IDBTransaction::renameIndexOnServer):
(WebCore::IDBTransaction::didRenameIndexOnServer):
(WebCore::IDBTransaction::requestOpenCursor):
(WebCore::IDBTransaction::doRequestOpenCursor):
(WebCore::IDBTransaction::openCursorOnServer):
(WebCore::IDBTransaction::didOpenCursorOnServer):
(WebCore::IDBTransaction::iterateCursor):
(WebCore::IDBTransaction::iterateCursorOnServer):
(WebCore::IDBTransaction::didIterateCursorOnServer):
(WebCore::IDBTransaction::requestGetAllObjectStoreRecords):
(WebCore::IDBTransaction::requestGetAllIndexRecords):
(WebCore::IDBTransaction::getAllRecordsOnServer):
(WebCore::IDBTransaction::didGetAllRecordsOnServer):
(WebCore::IDBTransaction::requestGetRecord):
(WebCore::IDBTransaction::requestGetValue):
(WebCore::IDBTransaction::requestGetKey):
(WebCore::IDBTransaction::requestIndexRecord):
(WebCore::IDBTransaction::getRecordOnServer):
(WebCore::IDBTransaction::didGetRecordOnServer):
(WebCore::IDBTransaction::requestCount):
(WebCore::IDBTransaction::getCountOnServer):
(WebCore::IDBTransaction::didGetCountOnServer):
(WebCore::IDBTransaction::requestDeleteRecord):
(WebCore::IDBTransaction::deleteRecordOnServer):
(WebCore::IDBTransaction::didDeleteRecordOnServer):
(WebCore::IDBTransaction::requestClearObjectStore):
(WebCore::IDBTransaction::clearObjectStoreOnServer):
(WebCore::IDBTransaction::didClearObjectStoreOnServer):
(WebCore::IDBTransaction::requestPutOrAdd):
(WebCore::IDBTransaction::putOrAddOnServer):
(WebCore::IDBTransaction::didPutOrAddOnServer):
(WebCore::IDBTransaction::deleteObjectStore):
(WebCore::IDBTransaction::deleteObjectStoreOnServer):
(WebCore::IDBTransaction::didDeleteObjectStoreOnServer):
(WebCore::IDBTransaction::deleteIndex):
(WebCore::IDBTransaction::deleteIndexOnServer):
(WebCore::IDBTransaction::didDeleteIndexOnServer):
(WebCore::IDBTransaction::operationCompletedOnClient):
(WebCore::IDBTransaction::establishOnServer):
(WebCore::IDBTransaction::activate):
(WebCore::IDBTransaction::deactivate):
- Modules/indexeddb/client/IDBConnectionProxy.cpp:
(WebCore::IDBClient::removeItemsMatchingCurrentThread):
(WebCore::IDBClient::setMatchingItemsContextSuspended):
- Modules/indexeddb/client/TransactionOperation.h:
(WebCore::IDBClient::TransactionOperation::~TransactionOperation):
(WebCore::IDBClient::TransactionOperation::perform):
(WebCore::IDBClient::TransactionOperation::transitionToCompleteOnThisThread):
(WebCore::IDBClient::TransactionOperation::transitionToComplete):
(WebCore::IDBClient::TransactionOperation::doComplete):
- dom/ActiveDOMObject.cpp:
(WebCore::ActiveDOMObject::~ActiveDOMObject):
- platform/Supplementable.h:
(WebCore::Supplementable::provideSupplement):
(WebCore::Supplementable::removeSupplement):
(WebCore::Supplementable::requireSupplement):
- platform/Timer.cpp:
(WebCore::TimerBase::~TimerBase):
(WebCore::TimerBase::start):
(WebCore::TimerBase::stop):
(WebCore::TimerBase::setNextFireTime):
Source/WTF:
- wtf/MainThread.cpp:
(WTF::canCurrentThreadAccessThreadLocalData):
(WTF::canAccessThreadLocalDataForThread): Deleted.
- wtf/MainThread.h:
- wtf/cocoa/MainThreadCocoa.mm:
(WTF::canCurrentThreadAccessThreadLocalData):
(WTF::canAccessThreadLocalDataForThread): Deleted.
- 12:35 PM Changeset in webkit [252641] by
-
- 18 edits5 copies8 adds in trunk
Resource Load Statistics: Count third-party script loads under top frame
https://bugs.webkit.org/show_bug.cgi?id=204262
<rdar://problem/57244945>
Reviewed by Alex Christensen.
Source/WebCore:
Third-party scripts running in the first-party context are a significant privacy
and security risk. This change captures the number of such script loads which will
allow ITP to take action.
Tests: http/tests/resourceLoadStatistics/count-third-party-script-import-in-worker-database.html
http/tests/resourceLoadStatistics/count-third-party-script-import-in-worker.html
http/tests/resourceLoadStatistics/count-third-party-script-loads-database.html
http/tests/resourceLoadStatistics/count-third-party-script-loads.html
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadResourceSynchronously):
Now sends the ResourceLoadObserver::FetchDestinationIsScriptLike parameter to
ResourceLoadObserver::logSubresourceLoading().
- loader/ResourceLoadObserver.h:
(WebCore::ResourceLoadObserver::logSubresourceLoading):
Now takes a FetchDestinationIsScriptLike parameter.
- loader/ResourceLoadStatistics.cpp:
(WebCore::ResourceLoadStatistics::encode const):
(WebCore::ResourceLoadStatistics::decode):
(WebCore::ResourceLoadStatistics::toString const):
Output of the new topFrameLoadedThirdPartyScripts category.
Removed the lastSeen output since it may differ between test runs.
(WebCore::ResourceLoadStatistics::merge):
Handling of the new topFrameLoadedThirdPartyScripts category.
- loader/ResourceLoadStatistics.h:
Added the new topFrameLoadedThirdPartyScripts category.
- loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::willSendRequestInternal):
Now sends the ResourceLoadObserver::FetchDestinationIsScriptLike parameter to
ResourceLoadObserver::logSubresourceLoading().
Source/WebKit:
Third-party scripts running in the first-party context are a significant privacy
and security risk. This change captures the number of such script loads which will
allow ITP to take action.
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
(WebKit::ResourceLoadStatisticsDatabaseStore::ResourceLoadStatisticsDatabaseStore):
(WebKit::ResourceLoadStatisticsDatabaseStore::createUniqueIndices):
(WebKit::ResourceLoadStatisticsDatabaseStore::createSchema):
(WebKit::ResourceLoadStatisticsDatabaseStore::prepareStatements):
(WebKit::ResourceLoadStatisticsDatabaseStore::insertDomainRelationships):
(WebKit::ResourceLoadStatisticsDatabaseStore::getSubStatisticStatement):
Addition of the new category TopFrameLoadedThirdPartyScripts.
(WebKit::ResourceLoadStatisticsDatabaseStore::resourceToString):
Removed the lastSeen output since it may differ between test runs.
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.h:
- NetworkProcess/Classifier/ResourceLoadStatisticsMemoryStore.cpp:
Bumped statisticsModelVersion to 17.
- Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<ResourceLoadStatistics>::encode):
(IPC::ArgumentCoder<ResourceLoadStatistics>::decode):
Encoding and decoding of the new category topFrameLoadedThirdPartyScripts.
- WebProcess/WebCoreSupport/WebResourceLoadObserver.cpp:
(WebKit::WebResourceLoadObserver::logSubresourceLoading):
Now takes an additional enum parameter FetchDestinationIsScriptLike which
is used to detect third-party script-like loads (script, worker, or
service worker) from third-parties. If one is detected, it is stored
in the new topFrameLoadedThirdPartyScripts category.
- WebProcess/WebCoreSupport/WebResourceLoadObserver.h:
LayoutTests:
- http/tests/resourceLoadStatistics/count-third-party-script-import-in-worker-database-expected.txt: Added.
- http/tests/resourceLoadStatistics/count-third-party-script-import-in-worker-database.html: Added.
- http/tests/resourceLoadStatistics/count-third-party-script-import-in-worker-expected.txt: Added.
- http/tests/resourceLoadStatistics/count-third-party-script-import-in-worker.html: Added.
- http/tests/resourceLoadStatistics/count-third-party-script-loads-database-expected.txt: Added.
- http/tests/resourceLoadStatistics/count-third-party-script-loads-database.html: Added.
- http/tests/resourceLoadStatistics/count-third-party-script-loads-expected.txt: Added.
- http/tests/resourceLoadStatistics/count-third-party-script-loads.html: Added.
- http/tests/resourceLoadStatistics/dont-count-third-party-image-as-third-party-script-database-expected.txt: Added.
- http/tests/resourceLoadStatistics/dont-count-third-party-image-as-third-party-script-database.html: Added.
- http/tests/resourceLoadStatistics/dont-count-third-party-image-as-third-party-script-expected.txt: Added.
- http/tests/resourceLoadStatistics/dont-count-third-party-image-as-third-party-script.html: Added.
- http/tests/resourceLoadStatistics/log-cross-site-load-with-link-decoration-database-expected.txt:
Removed the lastSeen output since it may differ between test runs.
- http/tests/resourceLoadStatistics/log-cross-site-load-with-link-decoration-expected.txt:
Removed the lastSeen output since it may differ between test runs.
- http/tests/resourceLoadStatistics/resources/dummy.js: Added.
- http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration-database-expected.txt:
Removed the lastSeen output since it may differ between test runs.
- http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration-expected.txt:
Removed the lastSeen output since it may differ between test runs.
- 12:00 PM Changeset in webkit [252640] by
-
- 3 edits in trunk/Source/WebCore
[LFC][IFC] Display::Run:TextContext should use StringView
https://bugs.webkit.org/show_bug.cgi?id=204356
<rdar://problem/57323695>
Reviewed by Antti Koivisto.
We could just use StringView instead of String here (though this is all temporary until We figure out the relationship
between the layout and the display trees e.g. how to reference content from the display tree).
- layout/displaytree/DisplayRun.h:
(WebCore::Display::Run::TextContext::TextContext):
(WebCore::Display::Run::TextContext::content const):
(WebCore::Display::Run::TextContext::expand):
- layout/inlineformatting/InlineLine.cpp:
(WebCore::Layout::Line::Run::expand):
(WebCore::Layout::Line::appendTextContent):
- 11:04 AM Changeset in webkit [252639] by
-
- 12 edits4 moves in trunk/Source/WebCore
Rename CSSDefaultStyleSheets to UserAgentStyle
https://bugs.webkit.org/show_bug.cgi?id=204357
Reviewed by Zalan Bujtas.
Also move it to Style namespace and directory, along with InspectorCSSOMWrappers.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- page/ProcessWarming.cpp:
(WebCore::ProcessWarming::prewarmGlobally):
- style/ElementRuleCollector.cpp:
(WebCore::Style::ElementRuleCollector::matchUARules):
- style/InspectorCSSOMWrappers.cpp: Renamed from Source/WebCore/css/InspectorCSSOMWrappers.cpp.
(WebCore::Style::InspectorCSSOMWrappers::collectDocumentWrappers):
(WebCore::Style::InspectorCSSOMWrappers::collectScopeWrappers):
- style/InspectorCSSOMWrappers.h: Renamed from Source/WebCore/css/InspectorCSSOMWrappers.h.
- style/PageRuleCollector.cpp:
(WebCore::Style::PageRuleCollector::matchAllPageRules):
- style/RuleData.h:
- style/RuleSet.h:
- style/StyleResolver.cpp:
(WebCore::Style::Resolver::Resolver):
(WebCore::Style::Resolver::styleForElement):
- style/StyleScopeRuleSets.cpp:
(WebCore::Style::ScopeRuleSets::updateUserAgentMediaQueryStyleIfNeeded const):
(WebCore::Style::ScopeRuleSets::collectFeatures const):
- style/StyleScopeRuleSets.h:
(WebCore::Style::ScopeRuleSets::features const):
(WebCore::Style::ScopeRuleSets::mutableFeatures):
- style/StyleSharingResolver.h:
- style/UserAgentStyle.cpp: Renamed from Source/WebCore/css/CSSDefaultStyleSheets.cpp.
(WebCore::Style::UserAgentStyle::initDefaultStyle):
(WebCore::Style::UserAgentStyle::addToDefaultStyle):
(WebCore::Style::UserAgentStyle::loadFullDefaultStyle):
(WebCore::Style::UserAgentStyle::loadSimpleDefaultStyle):
(WebCore::Style::UserAgentStyle::ensureDefaultStyleSheetsForElement):
- style/UserAgentStyle.h: Renamed from Source/WebCore/css/CSSDefaultStyleSheets.h.
- 10:58 AM Changeset in webkit [252638] by
-
- 8 edits in trunk/Source/WebCore
[LFC][IFC] Assign inlineCapacity to various inline run vectors.
https://bugs.webkit.org/show_bug.cgi?id=204354
<rdar://problem/57322347>
Reviewed by Antti Koivisto.
Inline capacity values are mainly based off of the equivalent simple line layout vectors.
- layout/blockformatting/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::computeHeightAndMargin):
- layout/inlineformatting/InlineFormattingState.h:
- layout/inlineformatting/InlineLine.h:
- rendering/updating/RenderTreeUpdater.cpp:
(WebCore::RenderTreeUpdater::updateRendererStyle): Apparently 'newStyle' is moved out at this point.
- 10:41 AM Changeset in webkit [252637] by
-
- 11 edits1 copy in trunk/Source
[Cocoa] Add _WKInspector SPI to set diagnostic logging delegate for a local Web Inspector
https://bugs.webkit.org/show_bug.cgi?id=204323
Reviewed by Devin Rousso.
Source/WebInspectorUI:
- UserInterface/Protocol/InspectorFrontendAPI.js:
(InspectorFrontendAPI.setDiagnosticLoggingAvailable):
Add a stub FrontendAPI method to be filled in later.
Source/WebKit:
Testing this end-to-end isn't quite possible yet because WebInspectorUI does not
yet send any dummy diagnostic events that we can use for testing purposes.
- WebKit.xcodeproj/project.pbxproj:
- UIProcess/API/Cocoa/_WKInspectorInternal.h: Fix include.
- UIProcess/API/Cocoa/_WKInspectorPrivate.h: Added.
- UIProcess/API/Cocoa/_WKInspector.mm: Fix include.
(-[_WKInspector _setDiagnosticLoggingDelegate:]):
Allow clients to set the diagnosticLoggingDelegate directly on _WKInspector.
The implementation forwards this setter to the Inspector's WKWebView and notifies
the frontend that diagnostic logging availability did change.
- UIProcess/WebInspectorProxy.h:
- UIProcess/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::setDiagnosticLoggingAvailable):
Plumbing.
- WebProcess/WebPage/WebInspectorUI.cpp:
(WebKit::WebInspectorUI::setDiagnosticLoggingAvailable):
- WebProcess/WebPage/WebInspectorUI.h:
- WebProcess/WebPage/WebInspectorUI.messages.in:
More plumbing.
- 10:23 AM Changeset in webkit [252636] by
-
- 9 edits in trunk/Source/WebKit
Make sendWithAsyncReply() safe to call from any thread
https://bugs.webkit.org/show_bug.cgi?id=204355
Reviewed by Alex Christensen.
Make sendWithAsyncReply() safe to call from any thread, similarly to the regular send().
Also start using it in WebProcess::processTaskStateDidChange() now that it is safe.
- Platform/IPC/Connection.cpp:
(IPC::asyncReplyHandlerMapLock):
(IPC::asyncReplyHandlerMap):
(IPC::nextAsyncReplyHandlerID):
(IPC::addAsyncReplyHandler):
(IPC::clearAsyncReplyHandlers):
(IPC::CompletionHandler<void):
- UIProcess/Cocoa/WebProcessProxyCocoa.mm:
(WebKit::WebProcessProxy::processWasResumed):
- UIProcess/WebProcessProxy.h:
(WebKit::WebProcessProxy::hasServiceWorkerPageProxy): Deleted.
(WebKit::WebProcessProxy::setAssertionStateForTesting): Deleted.
(WebKit::WebProcessProxy::WeakOrStrongPtr::WeakOrStrongPtr): Deleted.
(WebKit::WebProcessProxy::WeakOrStrongPtr::setIsWeak): Deleted.
(WebKit::WebProcessProxy::WeakOrStrongPtr::get const): Deleted.
(WebKit::WebProcessProxy::WeakOrStrongPtr::operator-> const): Deleted.
(WebKit::WebProcessProxy::WeakOrStrongPtr::operator* const): Deleted.
(WebKit::WebProcessProxy::WeakOrStrongPtr::operator bool const): Deleted.
(WebKit::WebProcessProxy::WeakOrStrongPtr::updateStrongReference): Deleted.
- WebProcess/WebProcess.h:
- WebProcess/WebProcess.messages.in:
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::processTaskStateDidChange):
(WebKit::WebProcess::parentProcessDidHandleProcessWasResumed): Deleted.
- 10:10 AM Changeset in webkit [252635] by
-
- 2 edits in trunk/Source/WebKit
<rdar://problem/57323799>
Unreviwed build fix for older bots.
- Platform/spi/ios/UIKitSPI.h:
- 9:11 AM Changeset in webkit [252634] by
-
- 8 edits in trunk
[Cocoa] Add WKUIDelegate SPI to inform clients when a _WKInspector attaches to a WKWebView
https://bugs.webkit.org/show_bug.cgi?id=204300
<rdar://problem/57136993>
Reviewed by Devin Rousso.
Source/WebKit:
Add a new UI delegate method to notify clients when local Web Inspector is about to be loaded.
This can be triggered by -[_WKInspector show] in the Cocoa API, or via the WebCore-controlled
Inspect context menu item.
The client can then configure Web Inspector using delegates or by setting _WKInspector properties.
Covered by new API test WebKit.DidNotifyWhenInspectorAttached.
- UIProcess/API/APIUIClient.h:
(API::UIClient::didAttachInspector):
- UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
- UIProcess/Cocoa/UIDelegate.h:
- UIProcess/Cocoa/UIDelegate.mm:
(WebKit::UIDelegate::setDelegate):
(WebKit::UIDelegate::UIClient::didAttachInspector):
- UIProcess/WebInspectorProxy.cpp:
(WebKit::WebInspectorProxy::openLocalInspectorFrontend):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/UIDelegate.mm:
(-[InspectorDelegate _webView:didAttachInspector:]):
(TEST): Add new test to ensure the delegate is called as expected.
- 8:51 AM Changeset in webkit [252633] by
-
- 11 edits in trunk
Update expectations for bufferedAmount-unchanged-by-sync-xhr.any.worker.html
https://bugs.webkit.org/show_bug.cgi?id=204313
Reviewed by Alex Christensen.
LayoutTests/imported/w3c:
- web-platform-tests/websockets/bufferedAmount-unchanged-by-sync-xhr.any.worker-expected.txt:
Source/WebCore:
Add some logging to help debug the flaky timeout of bufferedAmount-unchanged-by-sync-xhr.any.worker.html on
commit-queue bot.
- Modules/websockets/WebSocketChannel.cpp:
(WebCore::WebSocketChannel::fail):
(WebCore::WebSocketChannel::didFailSocketStream):
- platform/network/cf/SocketStreamHandleImplCFNet.cpp:
(WebCore::SocketStreamHandleImpl::scheduleStreams):
(WebCore::SocketStreamHandleImpl::readStreamCallback):
- testing/InternalSettings.cpp:
(WebCore::InternalSettings::Backup::restoreTo):Remove a duplicate setting.
Tools:
- DumpRenderTree/mac/DumpRenderTree.mm:
(resetWebViewToConsistentStateBeforeTesting):
LayoutTests:
- platform/ios-wk2/TestExpectations:
- platform/mac-wk2/TestExpectations:
- 8:50 AM Changeset in webkit [252632] by
-
- 11 edits in trunk
OverConstrainedError is missing 'name' property
https://bugs.webkit.org/show_bug.cgi?id=204069
Reviewed by Youenn Fablet.
LayoutTests/imported/w3c:
- web-platform-tests/mediacapture-streams/GUM-impossible-constraint.https-expected.txt:
- web-platform-tests/mediacapture-streams/GUM-invalid-facing-mode.https-expected.txt:
- web-platform-tests/mediacapture-streams/MediaStreamTrack-applyConstraints.https-expected.txt:
Source/WebCore:
No new tests, existing test and results updated.
- Modules/mediastream/OverconstrainedError.h:
(WebCore::OverconstrainedError::name const):
- Modules/mediastream/OverconstrainedError.idl:
LayoutTests:
- fast/mediastream/MediaDevices-getUserMedia.html:
- fast/mediastream/overconstrainederror-constraint.html:
- 8:30 AM Changeset in webkit [252631] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed iOS build fix.
- style/StyleAdjuster.cpp:
- 8:28 AM Changeset in webkit [252630] by
-
- 4 edits in trunk/LayoutTests
[ Jazz ] http/tests/resourceLoadStatistics/cookie-deletion.html is timing out
https://bugs.webkit.org/show_bug.cgi?id=203813
<rdar://problem/54316765>
Reviewed by Alexey Proskuryakov.
Added console logging to narrow down cause of flaky test which does not
reproduce locally. Changed test expectations to timeout so the bots
actually run the test and the issue can be determined.
- http/tests/resourceLoadStatistics/cookie-deletion-expected.txt:
- http/tests/resourceLoadStatistics/cookie-deletion.html:
- platform/wk2/TestExpectations:
- 8:10 AM Changeset in webkit [252629] by
-
- 5 edits2 adds in trunk/Source/WebCore
Move RuleData to a file of its own
https://bugs.webkit.org/show_bug.cgi?id=204351
Reviewed by Anders Carlsson.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- style/RuleData.cpp: Added.
(WebCore::Style::computeMatchBasedOnRuleHash):
(WebCore::Style::selectorCanMatchPseudoElement):
(WebCore::Style::isCommonAttributeSelectorAttribute):
(WebCore::Style::computeContainsUncommonAttributeSelector):
(WebCore::Style::determinePropertyWhitelistType):
(WebCore::Style::RuleData::RuleData):
- style/RuleData.h: Added.
(WebCore::Style::RuleData::position const):
(WebCore::Style::RuleData::rule const):
(WebCore::Style::RuleData::selector const):
(WebCore::Style::RuleData::selectorIndex const):
(WebCore::Style::RuleData::selectorListIndex const):
(WebCore::Style::RuleData::canMatchPseudoElement const):
(WebCore::Style::RuleData::matchBasedOnRuleHash const):
(WebCore::Style::RuleData::containsUncommonAttributeSelector const):
(WebCore::Style::RuleData::linkMatchType const):
(WebCore::Style::RuleData::propertyWhitelistType const):
(WebCore::Style::RuleData::descendantSelectorIdentifierHashes const):
(WebCore::Style::RuleData::disableSelectorFiltering):
- style/RuleSet.cpp:
(WebCore::Style::computeMatchBasedOnRuleHash): Deleted.
(WebCore::Style::selectorCanMatchPseudoElement): Deleted.
(WebCore::Style::isCommonAttributeSelectorAttribute): Deleted.
(WebCore::Style::computeContainsUncommonAttributeSelector): Deleted.
(WebCore::Style::determinePropertyWhitelistType): Deleted.
(WebCore::Style::RuleData::RuleData): Deleted.
- style/RuleSet.h:
(WebCore::Style::RuleData::position const): Deleted.
(WebCore::Style::RuleData::rule const): Deleted.
(WebCore::Style::RuleData::selector const): Deleted.
(WebCore::Style::RuleData::selectorIndex const): Deleted.
(WebCore::Style::RuleData::selectorListIndex const): Deleted.
(WebCore::Style::RuleData::canMatchPseudoElement const): Deleted.
(WebCore::Style::RuleData::matchBasedOnRuleHash const): Deleted.
(WebCore::Style::RuleData::containsUncommonAttributeSelector const): Deleted.
(WebCore::Style::RuleData::linkMatchType const): Deleted.
(WebCore::Style::RuleData::propertyWhitelistType const): Deleted.
(WebCore::Style::RuleData::descendantSelectorIdentifierHashes const): Deleted.
(WebCore::Style::RuleData::disableSelectorFiltering): Deleted.
- 7:34 AM Changeset in webkit [252628] by
-
- 19 edits4 moves in trunk/Source/WebCore
Move ElementRuleCollector to Style namespace
https://bugs.webkit.org/show_bug.cgi?id=204329
Reviewed by Sam Weinig.
Also move PageRuleCollector.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/CallTracerTypes.h:
- css/DOMCSSRegisterCustomProperty.cpp:
(WebCore::DOMCSSRegisterCustomProperty::registerProperty):
- dom/Document.cpp:
(WebCore::Document::styleForElementIgnoringPendingStylesheets):
- html/canvas/CanvasRenderingContext2D.cpp:
(WebCore::CanvasRenderingContext2D::setFont):
- html/canvas/CanvasRenderingContext2DBase.cpp:
(WebCore::toStyleVariant):
(WebCore::CanvasRenderingContext2DBase::strokeStyle const):
(WebCore::CanvasRenderingContext2DBase::setStrokeStyle):
(WebCore::CanvasRenderingContext2DBase::fillStyle const):
(WebCore::CanvasRenderingContext2DBase::setFillStyle):
Rename CanvasRenderingContext2DBase::Style to StyleVariant to avoid name conflicts.
(WebCore::toStyle): Deleted.
- html/canvas/CanvasRenderingContext2DBase.h:
- inspector/InspectorCanvas.cpp:
(WebCore::InspectorCanvas::buildAction):
- page/FrameView.cpp:
(WebCore::FrameView::styleHidesScrollbarWithOrientation const):
(WebCore::FrameView::updateScrollCorner):
- rendering/RenderElement.cpp:
(WebCore::RenderElement::getCachedPseudoStyle const):
(WebCore::RenderElement::getUncachedPseudoStyle const):
(WebCore::RenderElement::selectionPseudoStyle const):
- rendering/RenderElement.h:
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::calculateClipRects const):
- rendering/RenderObject.h:
- rendering/RenderScrollbar.cpp:
(WebCore::RenderScrollbar::getScrollbarPseudoStyle const):
- rendering/updating/RenderTreeUpdater.cpp:
(WebCore::pseudoStyleCacheIsInvalid):
- style/ElementRuleCollector.cpp: Renamed from Source/WebCore/css/ElementRuleCollector.cpp.
(WebCore::Style::MatchRequest::MatchRequest):
(WebCore::Style::ElementRuleCollector::ElementRuleCollector):
(WebCore::Style::ElementRuleCollector::addMatchedRule):
(WebCore::Style::ElementRuleCollector::collectMatchingRules):
(WebCore::Style::ElementRuleCollector::transferMatchedRules):
(WebCore::Style::ElementRuleCollector::matchAuthorShadowPseudoElementRules):
(WebCore::Style::ElementRuleCollector::matchHostPseudoClassRules):
(WebCore::Style::ElementRuleCollector::matchSlottedPseudoElementRules):
(WebCore::Style::ElementRuleCollector::matchPartPseudoElementRulesForScope):
(WebCore::Style::ElementRuleCollector::collectSlottedPseudoElementRulesForSlot):
(WebCore::Style::ElementRuleCollector::matchUARules):
(WebCore::Style::ElementRuleCollector::ruleMatches):
(WebCore::Style::ElementRuleCollector::collectMatchingRulesForList):
(WebCore::Style::ElementRuleCollector::matchAllRules):
(WebCore::Style::ElementRuleCollector::hasAnyMatchingRules):
(WebCore::Style::ElementRuleCollector::addMatchedProperties):
- style/ElementRuleCollector.h: Renamed from Source/WebCore/css/ElementRuleCollector.h.
(WebCore::Style::PseudoElementRequest::PseudoElementRequest):
(WebCore::Style::ElementRuleCollector::setPseudoElementRequest):
(WebCore::Style::ElementRuleCollector::styleRelations const):
(WebCore::Style::ElementRuleCollector::transferMatchedRules):
- style/PageRuleCollector.cpp: Renamed from Source/WebCore/css/PageRuleCollector.cpp.
(WebCore::Style::PageRuleCollector::matchPageRules):
- style/PageRuleCollector.h: Renamed from Source/WebCore/css/PageRuleCollector.h.
(WebCore::Style::PageRuleCollector::PageRuleCollector):
- style/StyleResolver.cpp:
(WebCore::Style::Resolver::pseudoStyleForElement):
(WebCore::Style::Resolver::pseudoStyleRulesForElement):
- style/StyleResolver.h:
- 7:26 AM Changeset in webkit [252627] by
-
- 12 edits8 adds in trunk
[Clipboard API] Add support for Clipboard.readText()
https://bugs.webkit.org/show_bug.cgi?id=204310
<rdar://problem/57292754>
Reviewed by Ryosuke Niwa.
LayoutTests/imported/w3c:
Rebaseline a couple of imported web platform tests.
- web-platform-tests/clipboard-apis/async-navigator-clipboard-basics.https-expected.txt:
- web-platform-tests/clipboard-apis/async-write-text-read-text-manual.https-expected.txt:
Source/WebCore:
Implements readText; see below for more detail.
Tests: editing/async-clipboard/clipboard-do-not-read-text-from-platform-if-text-changes.html
editing/async-clipboard/clipboard-read-text-from-platform.html
editing/async-clipboard/clipboard-read-text-same-origin.html
editing/async-clipboard/clipboard-read-text.html
- Modules/async-clipboard/Clipboard.cpp:
(WebCore::Clipboard::readText):
Implement the method. This works similarly to Clipboard::read, but immediately reads text data for the first
clipboard item with data for "text/plain", instead of exposing a list of clipboard items.
- dom/DataTransfer.cpp:
(WebCore::DataTransfer::commitToPasteboard):
If the custom pasteboard data object is empty, then don't bother trying to write it to the platform pasteboard.
This avoids hitting an assertion in WebDragClient::beginDrag that checks to make sure there's no data on the
pasteboard right before beginning a drag in the UI process which was getting hit because we'd otherwise end up
writing just the pasteboard data origin; it also has an added bonus of avoiding an unnecessary sync IPC message.
- platform/mac/PlatformPasteboardMac.mm:
(WebCore::PlatformPasteboard::write):
Write the custom data type ("com.apple.WebKit.custom-pasteboard-data") when writing PasteboardCustomData to the
pasteboard on macOS, even when the custom pasteboard data only contains an origin. This allows DOM paste
requests to automatically accept when exchanging text data between the same origin via the async clipboard API.
LayoutTests:
Add several new layout tests.
- editing/async-clipboard/clipboard-do-not-read-text-from-platform-if-text-changes-expected.txt: Added.
- editing/async-clipboard/clipboard-do-not-read-text-from-platform-if-text-changes.html: Added.
Add a test to verify that if the clipboard changes content in the middle of a call to clipboard.readText, we
will reject the readText() promise and avoid exposing any text to the page.
- editing/async-clipboard/clipboard-read-text-expected.txt: Added.
- editing/async-clipboard/clipboard-read-text-from-platform-expected.txt: Added.
- editing/async-clipboard/clipboard-read-text-from-platform.html: Added.
Add a test to verify that we display DOM paste UI when reading text that was written to the pasteboard directly
via platform API.
- editing/async-clipboard/clipboard-read-text-same-origin-expected.txt: Added.
- editing/async-clipboard/clipboard-read-text-same-origin.html: Added.
Add a test to verify that we allow the page to access same origin text data on the pasteboard using readText,
during a user gesture.
- editing/async-clipboard/clipboard-read-text.html: Added.
Add a basic test to verify that readText works when the page writes text to the clipboard using DataTransfer and
document.execCommand.
- platform/gtk/TestExpectations:
- platform/mac-wk1/TestExpectations:
- platform/win/TestExpectations:
- platform/wpe/TestExpectations:
- 6:23 AM Changeset in webkit [252626] by
-
- 2 edits in trunk/Source/WebCore
http/tests/navigation/page-cache-mediastream.html is a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=204321
Reviewed by Eric Carlson.
Make sure the MediaStreamTrack stays alive if there is a pending ended event to dispatch.
No new tests, covered by existing test.
- Modules/mediastream/MediaStreamTrack.cpp:
(WebCore::MediaStreamTrack::hasPendingActivity const):
- 4:45 AM Changeset in webkit [252625] by
-
- 4 edits in trunk/Tools
Setup EWS queues for JSConly 32bits ARMv7 and MIPSel
https://bugs.webkit.org/show_bug.cgi?id=203946
Patch by Paulo Matos <Paulo Matos> on 2019-11-19
Reviewed by Aakash Jain.
Naming of queues follow old EWS: jsc-mips for MIPSel
and jsc-armv7 for ARMv7.
- BuildSlaveSupport/ews-build/config.json:
- BuildSlaveSupport/ews-build/steps.py:
(RunJavaScriptCoreTests.start):
(PrintConfiguration.run):
- BuildSlaveSupport/ews-build/steps_unittest.py:
(TestRunJavaScriptCoreTests.test_remote_success):
- 4:41 AM Changeset in webkit [252624] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION(r249428): [GStreamer] VP9 video rendered green
https://bugs.webkit.org/show_bug.cgi?id=201422
Patch by Thibault Saunier <tsaunier@igalia.com> on 2019-11-19
Reviewed by Philippe Normand.
Avoid forcing a video conversion in software we end up and make
it happen in GL with a sensibly simpler pipeline, this is possible as
glcolorconvert
properly setups the converted GL buffers.
Without that patch we are getting "random" not negotiated issues with
MediaStream sources related to theGLMemory
caps feature during
renegotiation between the softwarevideoconvert
and our sink.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
(WebCore::MediaPlayerPrivateGStreamerBase::createVideoSinkGL):
Nov 18, 2019:
- 10:30 PM Changeset in webkit [252623] by
-
- 13 edits2 adds in trunk
Check if ITP is on before applying third-party cookie blocking
https://bugs.webkit.org/show_bug.cgi?id=204322
<rdar://problem/57120772>
Reviewed by Chris Dumez and Alexey Proskuryakov.
Source/WebCore:
This change makes sure WebCore::NetworkStorageSession knows
whether ITP is on or off and checks that first thing in
WebCore::NetworkStorageSession::shouldBlockCookies().
This check was never needed before since if ITP was off,
there would be no classified domains and thus the function
would always return false. However,
https://trac.webkit.org/changeset/251353/webkit introduced
full third-party cookie blocking for websites without user
interaction and that rule is checked before checking domain
classification. The effect was unconditional third-party
cookie blocking if ITP is off. This changes fixes that bug.
Note that this patch already landed as branch-specific in
https://trac.webkit.org/changeset/252549/webkit
Test: http/tests/resourceLoadStatistics/no-third-party-cookie-blocking-when-itp-is-off.html
- platform/network/NetworkStorageSession.cpp:
(WebCore::NetworkStorageSession::shouldBlockThirdPartyCookies const):
(WebCore::NetworkStorageSession::shouldBlockThirdPartyCookiesButKeepFirstPartyCookiesFor const):
(WebCore::NetworkStorageSession::shouldBlockCookies const):
Now checks whether ITP is on or off.
- platform/network/NetworkStorageSession.h:
(WebCore::NetworkStorageSession::setResourceLoadStatisticsEnabled):
Source/WebKit:
This change makes sure WebCore::NetworkStorageSession knows
whether ITP is on or off and checks that first thing in
WebCore::NetworkStorageSession::shouldBlockCookies().
This check was never needed before since if ITP was off,
there would be no classified domains and thus the function
would always return false. However,
https://trac.webkit.org/changeset/251353/webkit introduced
full third-party cookie blocking for websites without user
interaction and that rule is checked before checking domain
classification. The effect was unconditional third-party
cookie blocking if ITP is off. This changes fixes that bug.
Note that this patch already landed as branch-specific in
https://trac.webkit.org/changeset/252549/webkit
- NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::setResourceLoadStatisticsEnabled):
Now tells WebCore::NetworkStorageSession the status of
ITP.
Tools:
This is test infrastructure to allow a layout test to
disable ITP in the network process.
- WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
- WebKitTestRunner/InjectedBundle/TestRunner.cpp:
(WTR::TestRunner::setStatisticsEnabled):
(WTR::TestRunner::setStatisticsDebugMode):
- WebKitTestRunner/InjectedBundle/TestRunner.h:
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::setStatisticsEnabled):
- WebKitTestRunner/TestController.h:
- WebKitTestRunner/TestInvocation.cpp:
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):
LayoutTests:
- http/tests/resourceLoadStatistics/no-third-party-cookie-blocking-when-itp-is-off-expected.txt: Added.
- http/tests/resourceLoadStatistics/no-third-party-cookie-blocking-when-itp-is-off.html: Added.
- 7:38 PM Changeset in webkit [252622] by
-
- 3 edits2 adds in trunk
-webkit-font-smoothing: none leaves subsequent elements unantialiased
https://bugs.webkit.org/show_bug.cgi?id=204334
Reviewed by Myles C. Maxfield.
Source/WebCore:
FontCascade::drawGlyphs() never called context.setShouldAntialias(true) for the
FontSmoothingMode::AutoSmoothing state, leaving it off for later elements.
Fix this function to save and restore antialiasing and smoothing in similar ways, and rather
than handle FontSmoothingMode::AutoSmoothing as "do nothing and let the platform decide"
(which caused this bug), explicitly treat it as equivalent to
FontSmoothingMode::SubpixelAntialiased. Note that FontSmoothingMode::SubpixelAntialiased
does not render with subpixel antialiasing on macOS Mojave and later.
Test: fast/text/font-antialiasing-save-restore.html
- platform/graphics/cocoa/FontCascadeCocoa.mm:
(WebCore::FontCascade::drawGlyphs):
LayoutTests:
- fast/text/font-antialiasing-save-restore-expected.html: Added.
- fast/text/font-antialiasing-save-restore.html: Added.
- 7:29 PM Changeset in webkit [252621] by
-
- 3 edits in trunk/Source/bmalloc
[bmalloc] Some chunks have unused region in the tail of its memory block.
https://bugs.webkit.org/show_bug.cgi?id=204286
Reviewed by Yusuke Suzuki.
When chunk is initialized, some amount of memory are not used and be kept untouched until its end.
This patch tries to decommit those region at the end of initialization.
For instance, think about the case that the pageClass is 5. Then pageSize is 24k. With this pageSize,
a chunk can hold 42 pages and its size is 24k * 42 = 1008k which is smaller than chunkSize = 1024k.
Here is the complete result:
page page page
class size count remainings
----------------------------------
0 4kB 256 0
1 8kB 128 0
2 12kB 85 4kB
3 16kB 64 0
4 20kB 51 4kB
5 24kB 42 16kB
6 28kB 36 16kB
7 32kB 32 0
8 36kB 28 16kB
9 40kB 25 24kB
10 44kB 23 12kB
11 48kB 21 16kB
12 52kB 19 36kB
13 56kB 18 16kB
14 60kB 17 4kB
15 64kB 16 0
Tested on Mac testmem and result is almost same or in error margin.
Before: After:
end score: 8.5425 MB end score: 8.5127 MB
peak score: 8.7997 MB peak score: 8.7884 MB
total memory score: 8.6702 MB total memory score: 8.6495 MB
time score: 668.19 ms time score: 666.27 ms
- bmalloc/Chunk.h:
(bmalloc::Chunk::metadataSize):
(bmalloc::forEachPage):
- bmalloc/Heap.cpp:
(bmalloc::Heap::allocateSmallChunk):
- 7:16 PM Changeset in webkit [252620] by
-
- 3 edits in trunk/Source/WebCore
Flex layout triggers excessive layout on height percentage descendants
https://bugs.webkit.org/show_bug.cgi?id=204319
<rdar://problem/57236652>
Reviewed by Simon Fraser.
This is very similar to r252562, except in this case the layout is explicitly triggered by the flex layout logic.
The patch ensures that we don't try to lay out percent height descendants with out-of-flow ancestors (see r252562 or webkit.org/b/204255 for more info).
(Unfortunately this is not testable but the subsequent repaint fix will include a test which would fail if we regressed this.)
- rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::hasPercentHeightDescendants const):
(WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
- rendering/RenderFlexibleBox.h:
- 6:50 PM Changeset in webkit [252619] by
-
- 3 edits in trunk/Source/WebKit
IPC::Decoder should use nullptr as invalid value
<https://webkit.org/b/203880>
<rdar://problem/53159906>
Reviewed by Brent Fulgham.
Covered by existing tests.
- Platform/IPC/Decoder.cpp:
(IPC::alignedBufferIsLargeEnoughToContain): Add bufferStart
parameter to add beginning bounds check now that m_bufferPos
uses nullptr for an invalid value.
(IPC::Decoder::alignBufferPosition): Update to pass m_buffer to
IPC::alignedBufferIsLargeEnoughToContain().
(IPC::Decoder::bufferIsLargeEnoughToContain const): Ditto.
- Platform/IPC/Decoder.h:
(IPC::Decoder::isInvalid const): Add beginning bounds check now
that m_bufferPos uses nullptr for an invalid value.
(IPC::Decoder::markInvalid): Make nullptr the invalid value for
m_bufferPos.
- 6:47 PM Changeset in webkit [252618] by
-
- 2 edits in trunk/Source/JavaScriptCore
Always enable Optional<OptionsStorage::Size> parse(const char* string) for OS(DARWIN).
https://bugs.webkit.org/show_bug.cgi?id=204333
<rdar://problem/57303785>
Reviewed by Yusuke Suzuki.
On OS(DARWIN), the compiler does not consider size_t and unsigned to be the same
type, even for 32-bit targets. Hence, we need the size_t version of the function
in addition to the unsigned version.
- runtime/Options.cpp:
(JSC::parse):
- 6:32 PM Changeset in webkit [252617] by
-
- 2 edits in trunk/Tools
[Win] kill-old-processes should kill WebKitWebProcess.exe and WebKitNetworkProcess.exe
https://bugs.webkit.org/show_bug.cgi?id=204337
Reviewed by Ross Kirsling.
- BuildSlaveSupport/kill-old-processes:
(main): Removed WebKit2WebProcess.exe, and added WebKitWebProcess.exe and WebKitNetworkProcess.exe to
tasksToKillWin.
- 5:51 PM Changeset in webkit [252616] by
-
- 7 edits in trunk/Tools
Python 3: Support run-api-tests
https://bugs.webkit.org/show_bug.cgi?id=204252
Rubber-stamped by Aakash Jain.
- Scripts/webkitpy/api_tests/manager.py:
(Manager._collect_tests): Use items over iteritems.
(Manager._print_tests_result_with_status): Use compatible iteritems.
(Manager.run): Use range over xrange, use compatible iteritems.
- Scripts/webkitpy/api_tests/runner.py:
(Runner.run): Use compatible iteritems.
(Runner.result_map_by_status): Ditto.
(_Worker._run_single_test): Server process returns byte arrays, not strings.
(_Worker.handle): Use items over iteritems, use range over xrange.
- Scripts/webkitpy/common/message_pool.py:
(_MessagePool.run): Use range over xrange.
(_MessagePool._start_workers): Ditto.
- Scripts/webkitpy/common/multiprocessing_bootstrap.py: Remove version check.
- Scripts/webkitpy/port/base.py:
(Port.check_api_test_build):Use items over iteritems.
(Port.commits_for_upload): Ditto.
- Scripts/webkitpy/port/server_process.py:
(ServerProcess._reset): Use byte array over string.
(ServerProcess._pop_stdout_line_if_ready): Check for bytes newline.
(ServerProcess._pop_stderr_line_if_ready): Ditto.
- 5:35 PM Changeset in webkit [252615] by
-
- 4 edits in trunk/Source/WebInspectorUI
Web Inspector: Elements: copying multiple DOM nodes should copy more than just the last selected node
https://bugs.webkit.org/show_bug.cgi?id=204266
Reviewed by Brian Burg.
- UserInterface/Views/DOMTreeContentView.js:
(WI.DOMTreeContentView.prototype.async handleCopyEvent): Added.
(WI.DOMTreeContentView.prototype.handleCopyEvent): Deleted.
CallDOM.getOuterHTML
for each selected DOM node and join the results with newlines.
- UserInterface/Models/DOMNode.js:
(WI.DOMNode.prototype.getOuterHTML):
(WI.DOMNode.prototype.copyNode): Deleted.
(WI.DOMNode.prototype.copyNode.copy): Deleted.
- UserInterface/Views/DOMTreeElement.js:
(WI.DOMTreeElement.prototype.populateDOMNodeContextMenu):
(WI.DOMTreeElement.prototype._copyHTML): Deleted.
Simplify API surface.
- 5:30 PM Changeset in webkit [252614] by
-
- 16 edits in trunk
Web Inspector: Local Resource Overrides: allow substitution based on a url pattern
https://bugs.webkit.org/show_bug.cgi?id=202375
Reviewed by Brian Burg.
Source/JavaScriptCore:
Often, websites will load content with a timestamp-based URL query parameter for
cache-busting or logging purposes. If a developer is trying to override these resources (or
is trying to have an existing override also match these resources), they'd need to edit the
local override's URL to match in addition to editing the resource that loads it (e.g. change
the <script> in an HTML file), which can sometimes be tricky of the content is dynamically
loaded (e.g. an XHR with a non-hardcoded URL).
Allowing for local overrides to be set using a regular expression pattern would help resolve
this limitation.
- inspector/protocol/Network.json:
Add
isRegex
parameter toNetwork.addInterception
andNetwork.removeInterception
.
Source/WebCore:
Test: http/tests/inspector/network/local-resource-override-isRegex.html
Often, websites will load content with a timestamp-based URL query parameter for
cache-busting or logging purposes. If a developer is trying to override these resources (or
is trying to have an existing override also match these resources), they'd need to edit the
local override's URL to match in addition to editing the resource that loads it (e.g. change
the <script> in an HTML file), which can sometimes be tricky of the content is dynamically
loaded (e.g. an XHR with a non-hardcoded URL).
Allowing for local overrides to be set using a regular expression pattern would help resolve
this limitation.
- inspector/agents/InspectorNetworkAgent.h:
(WebCore::InspectorNetworkAgent::Intercept): Added.
(WebCore::InspectorNetworkAgent::Intercept::operator== const): Added.
- inspector/agents/InspectorNetworkAgent.cpp:
(WebCore::InspectorNetworkAgent::disable):
(WebCore::InspectorNetworkAgent::shouldIntercept): Added.
(WebCore::InspectorNetworkAgent::addInterception):
(WebCore::InspectorNetworkAgent::removeInterception):
(WebCore::InspectorNetworkAgent::willInterceptRequest):
(WebCore::InspectorNetworkAgent::shouldInterceptResponse):
Source/WebInspectorUI:
Often, websites will load content with a timestamp-based URL query parameter for
cache-busting or logging purposes. If a developer is trying to override these resources (or
is trying to have an existing override also match these resources), they'd need to edit the
local override's URL to match in addition to editing the resource that loads it (e.g. change
the <script> in an HTML file), which can sometimes be tricky of the content is dynamically
loaded (e.g. an XHR with a non-hardcoded URL).
Allowing for local overrides to be set using a regular expression pattern would help resolve
this limitation.
- UserInterface/Models/LocalResourceOverride.js:
(WI.LocalResourceOverride):
(WI.LocalResourceOverride.create):
(WI.LocalResourceOverride.fromJSON):
(WI.LocalResourceOverride.prototype.toJSON):
(WI.LocalResourceOverride.prototype.get isCaseSensitive): Added.
(WI.LocalResourceOverride.prototype.get isRegex): Added.
(WI.LocalResourceOverride.prototype.matches): Added.
(WI.LocalResourceOverride.prototype.saveIdentityToCookie):
- UserInterface/Controllers/NetworkManager.js:
(WI.NetworkManager):
(WI.NetworkManager.prototype.initializeTarget):
(WI.NetworkManager.prototype.get localResourceOverrides):
(WI.NetworkManager.prototype.addLocalResourceOverride):
(WI.NetworkManager.prototype.removeLocalResourceOverride):
(WI.NetworkManager.prototype.localResourceOverrideForURL):
(WI.NetworkManager.prototype.responseIntercepted):
- UserInterface/Views/LocalResourceOverridePopover.js:
(WI.LocalResourceOverridePopover):
(WI.LocalResourceOverridePopover.prototype.get serializedData):
(WI.LocalResourceOverridePopover.prototype.show):
(WI.LocalResourceOverridePopover.prototype._createEditor):
- UserInterface/Views/LocalResourceOverrideTreeElement.js:
(WI.LocalResourceOverrideTreeElement.prototype.get mainTitleText): Added.
(WI.LocalResourceOverrideTreeElement.prototype.onattach):
(WI.LocalResourceOverrideTreeElement.prototype.ondetach):
(WI.LocalResourceOverrideTreeElement.prototype.populateContextMenu):
(WI.LocalResourceOverrideTreeElement.prototype.willDismissPopover):
- UserInterface/Views/SourcesNavigationSidebarPanel.js:
(WI.SourcesNavigationSidebarPanel.prototype._willDismissLocalOverridePopover):
LayoutTests:
- http/tests/inspector/network/local-resource-override-basic.html:
- http/tests/inspector/network/local-resource-override-basic-expected.txt:
- 5:12 PM Changeset in webkit [252613] by
-
- 18 edits7 adds in branches/safari-608-branch
Apply patch. rdar://problem/57283569
- 5:12 PM Changeset in webkit [252612] by
-
- 13 edits2 adds in branches/safari-608-branch
Apply patch. rdar://problem/57257755
- 5:12 PM Changeset in webkit [252611] by
-
- 2 edits in branches/safari-608-branch/Source/WebKit
Apply patch. rdar://problem/57123571
- 5:12 PM Changeset in webkit [252610] by
-
- 3 edits2 adds in branches/safari-608-branch
Cherry-pick r251680. rdar://problem/57283563
Hidden framesets should provide default edgeInfo value
https://bugs.webkit.org/show_bug.cgi?id=203506
<rdar://problem/56233726>
Reviewed by Simon Fraser.
Source/WebCore:
The grid information (and certain associated structures e.g. edegeInfo) for a frameset is updated through the layout() call.
When the used height/width computes to zero on a frameset child (frame or nested frameset), we don't run layout on the renderer thus
hidden nested framesets can only provide the default edge info.
This patch changes this behaviour and we now call layout on those hidden renderers the same way we do it on iOS.
Test: fast/frames/hidden-frameset.html
- rendering/RenderFrameSet.cpp: (WebCore::RenderFrameSet::edgeInfo const):
LayoutTests:
- fast/frames/hidden-frameset-expected.txt: Added.
- fast/frames/hidden-frameset.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@251680 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:12 PM Changeset in webkit [252609] by
-
- 10 edits in trunk
Run AccessibilityController::rootElement on secondary thread to simulate HIServices during LayoutTests.
https://bugs.webkit.org/show_bug.cgi?id=204226
Reviewed by Chris Fleizach.
Source/WebCore:
No new tests, no new functionality.
Added AXObjectCahce::canUseSecondaryAXThread to support
WTR::AccessibilityController spawning of a secondary thread to simulate
execution of isolated tree code.
- accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::canUseSecondaryAXThread):
- accessibility/AXObjectCache.h:
Source/WebKit:
Added WKAccessibilityCanUseSecondaryAXThread to support
WTR::AccessibilityController spawning of a secondary thread to simulate
execution of isolated tree code.
- WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKAccessibilityCanUseSecondaryAXThread):
- WebProcess/InjectedBundle/API/c/WKBundlePagePrivate.h:
Tools:
HIServices _AXUIElementUseSecondaryAXThread and _AXUIElementRequestServicedBySecondaryAXThread
do not work for WebKitTestRunner since this is calling directly into
WebCore/accessibility via JavaScript without going through HIServices.
Thus to simulate the behavior of HIServices, AccessibilityController is
spawning a secondary thread to service the JavaScript requests.
The very first request needs to be serviced in the main thread,
and all subsequent requests in the secondary thread. this is what
the behavior would be if using HIServices.
Once the IsolatedTree would be enabled, the first request has to be
served in the main thread in order to build the AXIsolatedTree.
- WebKitTestRunner/InjectedBundle/AccessibilityController.cpp:
(WTR::AccessibilityController::rootElement):
(WTR::AXThread::AXThread):
(WTR::AXThread::isCurrentThread):
(WTR::AXThread::dispatch):
(WTR::AXThread::dispatchBarrier):
(WTR::AXThread::singleton):
(WTR::AXThread::createThreadIfNeeded):
(WTR::AXThread::dispatchFunctionsFromAXThread):
(WTR::AXThread::initializeRunLoop):
(WTR::AXThread::wakeUpRunLoop):
(WTR::AXThread::threadRunLoopSourceCallback):
- WebKitTestRunner/InjectedBundle/AccessibilityController.h:
- WebKitTestRunner/InjectedBundle/mac/AccessibilityControllerMac.mm:
(WTR::AXThread::initializeRunLoop):
(WTR::AXThread::wakeUpRunLoop):
(WTR::AXThread::threadRunLoopSourceCallback):
- 5:05 PM Changeset in webkit [252608] by
-
- 3 edits in trunk/LayoutTests
Update dismiss-picker-using-keyboard.html test to work on iPad correctly
https://bugs.webkit.org/show_bug.cgi?id=204257
<rdar://problem/57239690>
Reviewed by Wenson Hsieh.
The iPad does not use the keyboard to show the options for these form controls,
and instead uses a popover. This expands the test infrastructure to allow for
either iPhone or iPad functionality.
- fast/forms/ios/dismiss-picker-using-keyboard.html:
- resources/ui-helper.js:
(window.UIHelper.activateAndWaitForInputSessionAt.return.new.Promise.):
(window.UIHelper.waitForInputSessionToDismiss.return.new.Promise.):
(window.UIHelper.waitForInputSessionToDismiss.return.new.Promise):
(window.UIHelper.waitForInputSessionToDismiss):
- 4:54 PM Changeset in webkit [252607] by
-
- 29 edits in trunk/Source/WebCore
Share more code between WindowEventLoop and WorkerEventLoop by introducing EventLoopTaskGroup
https://bugs.webkit.org/show_bug.cgi?id=204263
Reviewed by Antti Koivisto.
This patch abstracts the logic in WindowEventLoop to deal with a set of tasks associated with
a particular documents all suspending, resuming, or stopping at the same time using a new abstraction
called EventLoopTaskGroup in order to group tasks for media code and elsewhere.
Each task is now represented as an instance of a concrete subclass of EventLoopTask, which has
a pure virtual execute() member function. Its primary purpose is to know EventLoopTaskGroup to which
each task belongs. One of subclasss, EventLoopFunctionDispatchTask, is used to store a callback function
and another subclass, ActiveDOMObjectEventDispatchTask, is used to dispatch an async event.
ScriptExecutionContext's eventLoop() method now returns EventLoopTaskGroup. Because this group is
specific to a given ScriptExecutionContext, we no longer have to pass the ScriptExecutionContext
in each call to queueTask everywhere in our codebase.
For now, I kept all the code in WindowEventLoop.cpp to make the patch reviewable. My plan is to create
a new cpp file (e.g. AbstractEventLoop.cpp) and move most of code there instead as a follow up.
No new tests since there should be no observable behavior change.
- Modules/encryptedmedia/MediaKeys.cpp:
(WebCore::MediaKeys::setServerCertificate):
- Modules/entriesapi/FileSystemDirectoryEntry.cpp:
(WebCore::FileSystemDirectoryEntry::getEntry):
- Modules/entriesapi/FileSystemDirectoryReader.cpp:
(WebCore::FileSystemDirectoryReader::readEntries):
- Modules/entriesapi/FileSystemEntry.cpp:
(WebCore::FileSystemEntry::getParent):
- Modules/entriesapi/FileSystemFileEntry.cpp:
(WebCore::FileSystemFileEntry::file):
- Modules/mediarecorder/MediaRecorder.cpp:
(WebCore::MediaRecorder::scheduleDeferredTask):
- Modules/notifications/Notification.cpp:
(WebCore::Notification::queueTask):
- Modules/webdatabase/Database.cpp:
(WebCore::Database::runTransaction):
- Modules/webdatabase/DatabaseManager.cpp:
(WebCore::DatabaseManager::openDatabase):
- Modules/webdatabase/SQLTransaction.cpp:
(WebCore::SQLTransaction::callErrorCallbackDueToInterruption):
(WebCore::SQLTransaction::deliverTransactionErrorCallback):
(WebCore::SQLTransaction::deliverSuccessCallback):
- bindings/js/JSDOMPromiseDeferred.cpp:
(WebCore::DeferredPromise::callFunction):
(WebCore::DeferredPromise::whenSettled):
- dom/AbstractEventLoop.h:
(WebCore::EventLoopTask): Added.
(WebCore::EventLoopTask::taskSource): Added.
(WebCore::EventLoopTask::group const): Added.
(WebCore::EventLoopTask::EventLoopTask): Added.
(WebCore::EventLoopTaskGroup): Added. This class represents a group of tasks. For now, each group is
a distinct ScriptExecutionContext.
(WebCore::EventLoopTaskGroup::matchesTask const): Added.
(WebCore::EventLoopTaskGroup::startRunning): Added.
(WebCore::EventLoopTaskGroup::stopAndDiscardAllTasks): Added.
(WebCore::EventLoopTaskGroup::suspend): Added.
(WebCore::EventLoopTaskGroup::resume): Added.
(WebCore::EventLoopTaskGroup::isStoppedPermanently): Added.
(WebCore::EventLoopTaskGroup::isSuspended): Added.
(WebCore::EventLoopTaskGroup::hasScheduledTasks const): Added.
(WebCore::EventLoopTaskGroup::queueTask): Added.
- dom/ActiveDOMObject.cpp:
(WebCore::ActiveDOMObject::queueTaskInEventLoop):
(WebCore::ActiveDOMObjectEventDispatchTask): Added; A subclass of EventLoopTask to dispatch an async event.
(WebCore::ActiveDOMObjectEventDispatchTask::ActiveDOMObjectEventDispatchTask): Added.
(WebCore::ActiveDOMObjectEventDispatchTask::~ActiveDOMObjectEventDispatchTask): Added.
(WebCore::ActiveDOMObject::queueTaskToDispatchEventInternal): Added.
- dom/ActiveDOMObject.h:
- dom/Document.cpp:
(WebCore::Document::suspendActiveDOMObjects):
(WebCore::Document::resumeActiveDOMObjects):
(WebCore::Document::stopActiveDOMObjects):
(WebCore::Document::eventLoop): Creates EventLoopTaskGroup for this document.
- dom/Document.h:
- dom/IdleCallbackController.cpp:
(WebCore::IdleCallbackController::queueTaskToStartIdlePeriod):
(WebCore::IdleCallbackController::queueTaskToInvokeIdleCallbacks):
- dom/ScriptExecutionContext.h:
- dom/WindowEventLoop.cpp:
(WebCore::AbstractEventLoop::queueTask): The implementation moved from WindowEventLoop to AbstractEventLoop.
(WebCore::AbstractEventLoop::suspend): Removed.
(WebCore::AbstractEventLoop::resumeGroup): Ditto.
(WebCore::AbstractEventLoop::stopGroup): Ditto.
(WebCore::WindowEventLoop::scheduleToRun): Renamed from WindowEventLoop::scheduleToRunIfNeeded.
(WebCore::AbstractEventLoop::scheduleToRunIfNeeded): Extracted from WindowEventLoop::scheduleToRunIfNeeded.
(WebCore::WindowEventLoop::isContextThread const): Added.
(WebCore::AbstractEventLoop::run): The implementation moved from WindowEventLoop to AbstractEventLoop.
(WebCore::AbstractEventLoop::clearAllTasks): Added.
(WebCore::EventLoopFunctionDispatchTask): Added; A subclass of EventLoopTask to call a function.
(WebCore::EventLoopFunctionDispatchTask::EventLoopFunctionDispatchTask): Added.
(WebCore::EventLoopTaskGroup::queueTask): Added.
- dom/WindowEventLoop.h:
- fileapi/FileReader.cpp:
(WebCore::FileReader::enqueueTask):
- testing/Internals.cpp:
(WebCore::Internals::queueTask):
- workers/WorkerEventLoop.cpp:
(WebCore::WorkerEventLoop::WorkerEventLoop):
(WebCore::WorkerEventLoop::queueTask): Deleted.
(WebCore::WorkerEventLoop::activeDOMObjectName const): Deleted.
(WebCore::WorkerEventLoop::suspend): Deleted.
(WebCore::WorkerEventLoop::resume): Deleted.
(WebCore::WorkerEventLoop::stop): Deleted.
(WebCore::WorkerEventLoop::scheduleToRun): Extracted from scheduleToRunIfNeeded.
(WebCore::WorkerEventLoop::scheduleToRunIfNeeded): Deleted.
(WebCore::WorkerEventLoop::run): Deleted.
(WebCore::WorkerEventLoop::isContextThread const): Added.
- workers/WorkerEventLoop.h:
(WebCore::WorkerEventLoop): This class is no longer an active DOM object. WorkerGlobalScope and WorkerGlobalScope
manually stop the task group associated with it.
- workers/WorkerGlobalScope.cpp:
(WebCore::WorkerGlobalScope::eventLoop): Create the default task group for this script execution context.
(WebCore::WorkerGlobalScope::prepareForTermination): Stop the default task group.
- workers/WorkerGlobalScope.h:
- worklets/WorkletGlobalScope.cpp:
(WebCore::WorkletGlobalScope::prepareForDestruction): Similar to WorkerGlobalScope::prepareForTermination.
(WebCore::WorkletGlobalScope::eventLoop): Similar to WorkerGlobalScope::eventLoop.
- worklets/WorkletGlobalScope.h:
- 4:53 PM Changeset in webkit [252606] by
-
- 3 edits in trunk/Tools
results.webkit.org: Uncollapsed failures shouldn't include runs with no failures
https://bugs.webkit.org/show_bug.cgi?id=204315
Rubber-stamped by Aakash Jain.
- resultsdbpy/resultsdbpy/model/failure_context.py:
(FailureContext): Do not include test runs which have no failed tests.
- resultsdbpy/resultsdbpy/model/failure_context_unittest.py:
(FailureContextTest):
(FailureContextTest.test_no_failures):
- 3:59 PM Changeset in webkit [252605] by
-
- 2 edits in trunk/Source/WebKit
Promote main thread assertions related to sendWithAsyncReply() to be release assertions
https://bugs.webkit.org/show_bug.cgi?id=204298
Reviewed by Wenson Hsieh.
Promote main thread assertions related to sendWithAsyncReply() to be release assertions, to help identify
threading bugs such as <rdar://problem/57231170>.
- Platform/IPC/Connection.cpp:
(IPC::addAsyncReplyHandler):
(IPC::clearAsyncReplyHandlers):
(IPC::CompletionHandler<void):
- 3:44 PM Changeset in webkit [252604] by
-
- 7 edits in tags/Safari-609.1.9.6/Source
Versioning.
- 3:42 PM Changeset in webkit [252603] by
-
- 2 edits in trunk/Tools
Dedicate ews116 to macOS-High-Sierra-Debug-Build-EWS queue
https://bugs.webkit.org/show_bug.cgi?id=204256
Reviewed by Jonathan Bedard.
- BuildSlaveSupport/ews-build/config.json:
- 3:37 PM Changeset in webkit [252602] by
-
- 1 copy in tags/Safari-609.1.9.6
New tag.
- 3:31 PM Changeset in webkit [252601] by
-
- 5 edits in trunk/Source/WebKit
Fix assertion in layout test after r252492.
https://bugs.webkit.org/show_bug.cgi?id=204199
There is still a case in a test where there is no frame identifier, so keep the status quo.
This is a partial revert of r252492.
This fixes layout test http/tests/navigation/window-open-redirect-and-remove-opener.html
- Shared/FrameInfoData.cpp:
(WebKit::FrameInfoData::decode):
- Shared/FrameInfoData.h:
- UIProcess/API/APIFrameInfo.cpp:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::createNewPage):
- 3:25 PM Changeset in webkit [252600] by
-
- 2 edits in trunk/Tools
TestWebKitAPI.ProcessSwap.QuickBackForwardNavigationWithPSON is a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=199645
<rdar://problem/52856112>
Reviewed by Alex Christensen.
Make sure the test waits for the history navigations to complete before checking the
back/forward list.
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
- 3:21 PM Changeset in webkit [252599] by
-
- 15 edits4 moves in trunk/Source/WebCore
Move RuleSet to Style namespace
https://bugs.webkit.org/show_bug.cgi?id=204307
Reviewed by Zalan Bujtas.
Also move RuleFeature.
Move to style/ directory.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- css/CSSDefaultStyleSheets.cpp:
(WebCore::CSSDefaultStyleSheets::loadFullDefaultStyle):
(WebCore::CSSDefaultStyleSheets::loadSimpleDefaultStyle):
- css/CSSDefaultStyleSheets.h:
- css/CSSStyleRule.cpp:
(WebCore::CSSStyleRule::setSelectorText):
- css/ElementRuleCollector.cpp:
(WebCore::MatchRequest::MatchRequest):
(WebCore::ElementRuleCollector::ElementRuleCollector):
(WebCore::ElementRuleCollector::addMatchedRule):
(WebCore::ElementRuleCollector::collectSlottedPseudoElementRulesForSlot):
(WebCore::ElementRuleCollector::matchUARules):
(WebCore::ElementRuleCollector::ruleMatches):
(WebCore::ElementRuleCollector::collectMatchingRulesForList):
(WebCore::ElementRuleCollector::hasAnyMatchingRules):
- css/ElementRuleCollector.h:
- css/PageRuleCollector.cpp:
(WebCore::PageRuleCollector::matchPageRules):
- css/PageRuleCollector.h:
- css/StyleSheetContents.cpp:
(WebCore::StyleSheetContents::parserAppendRule):
(WebCore::StyleSheetContents::wrapperInsertRule):
- style/RuleFeature.cpp: Renamed from Source/WebCore/css/RuleFeature.cpp.
- style/RuleFeature.h: Renamed from Source/WebCore/css/RuleFeature.h.
- style/RuleSet.cpp: Renamed from Source/WebCore/css/RuleSet.cpp.
(WebCore::Style::computeContainsUncommonAttributeSelector):
(WebCore::Style::RuleData::RuleData):
(WebCore::Style::RuleSet::addChildRules):
(WebCore::Style::RuleSet::addRulesFromSheet):
- style/RuleSet.h: Renamed from Source/WebCore/css/RuleSet.h.
- style/StyleInvalidator.h:
- 3:13 PM Changeset in webkit [252598] by
-
- 295 edits in trunk
LayoutTests/imported/w3c:
Fix alpha value rounding to match the CSS Color spec
https://bugs.webkit.org/show_bug.cgi?id=203597
<rdar://problem/56728546>
Reviewed by Tim Horton.
More passing results.
- web-platform-tests/css/css-color/color-resolving-expected.txt:
- web-platform-tests/css/css-color/parsing/color-computed-expected.txt:
- web-platform-tests/css/css-color/parsing/color-valid-expected.txt:
- web-platform-tests/css/css-multicol/inheritance-expected.txt:
- web-platform-tests/css/css-text-decor/inheritance-expected.txt:
- web-platform-tests/css/css-ui/caret-color-021-expected.txt:
- web-platform-tests/css/css-ui/outline-017-expected.txt:
- web-platform-tests/css/cssom/serialize-values-expected.txt:
- web-platform-tests/imagebitmap-renderingcontext/context-creation-with-alpha-expected.txt: failure mode now matches Firefox and Chrome (webkit.org/b/204311)
- web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt:
Source/WebCore:
Fix alpha value rounding to match the CSS Color spec
https://bugs.webkit.org/show_bug.cgi?id=203597
<rdar://problem/56728546>
Reviewed by Tim Horton.
The serialization of CSS color alpha values is described at https://drafts.csswg.org/cssom/#serializing-css-values,
so implement that. Use 255 as the multiplication factor for float alpha values in the fast and slow
parser code paths.
Based on Chromium commit 13a86c2faeebcbc12dd4a7e8dea54318da635c19.
Tested by WPT and fast/css tests.
- css/parser/CSSParserFastPaths.cpp:
(WebCore::parseColorIntOrPercentage):
(WebCore::parseAlphaValue):
- css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::parseRGBParameters):
- platform/graphics/Color.cpp:
(WebCore::Color::cssText const):
- rendering/shapes/Shape.cpp:
(WebCore::Shape::createRasterShape): Alpha rounding for shapes has to match alpha rounding for colors.
Tools:
Fix alpha value rounding to match the CSS Color spec
https://bugs.webkit.org/show_bug.cgi?id=203597
<rdar://problem/56728546>
Reviewed by Tim Horton.
Fix the test for rounding.
- TestWebKitAPI/Tests/mac/FontManagerTests.mm:
(TestWebKitAPI::TEST):
LayoutTests:
Fix color component rounding to match the CSS Color spec
https://bugs.webkit.org/show_bug.cgi?id=203597
<rdar://problem/56728546>
Reviewed by Tim Horton.
New results.
- TestExpectations:
- css3/calc/color-hsl-expected.txt:
- css3/calc/color-rgb-expected.txt:
- css3/filters/backdrop/backdrop-filter-with-clip-path-expected.txt:
- displaylists/canvas-display-list-expected.txt:
- editing/execCommand/query-command-value-background-color-expected.txt:
- editing/execCommand/query-command-value-background-color.html:
- fast/block/basic/fieldset-stretch-to-legend-expected.txt:
- fast/block/float/relative-painted-twice-expected.txt:
- fast/borders/border-image-trumps-radius-expected.txt:
- fast/borders/border-left-right-same-bottom-different-color-expected.txt:
- fast/borders/border-radius-groove-03-expected.txt:
- fast/borders/border-radius-wide-border-03-expected.txt:
- fast/borders/border-radius-wide-border-04-expected.txt:
- fast/borders/borderRadiusDashed05-expected.txt:
- fast/borders/borderRadiusDotted05-expected.txt:
- fast/borders/borderRadiusDotted06-expected.txt:
- fast/borders/borderRadiusDouble05-expected.txt:
- fast/borders/borderRadiusDouble09-expected.txt:
- fast/borders/fieldsetBorderRadius-expected.txt:
- fast/canvas/rgba-parsing-expected.txt:
- fast/canvas/rgba-parsing.html:
- fast/css/apple-system-control-colors-expected.txt:
- fast/css/paint-order-shadow-expected.html:
- fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-color-expected.txt:
- fast/css3-text/css3-text-decoration/getComputedStyle/getComputedStyle-text-decoration-color.html:
- fast/frames/content-opacity-1-expected.txt:
- fast/table/border-collapsing/collapsed-borders-adjoining-sections-vertical-rl-expected.txt:
- fast/table/border-collapsing/collapsed-borders-painted-once-on-inner-cells-expected.txt:
- media/modern-media-controls/background-tint/background-tint-expected.txt:
- media/modern-media-controls/background-tint/background-tint.html:
- media/modern-media-controls/button/button-focus-state-expected.txt:
- media/modern-media-controls/button/button-focus-state.html:
- platform/ios-simulator/imported/w3c/web-platform-tests/svg/import/color-prop-02-f-manual-expected.txt:
- platform/ios-simulator/imported/w3c/web-platform-tests/svg/import/color-prop-03-t-manual-expected.txt:
- platform/ios-wk2/editing/pasteboard/4641033-expected.txt:
- platform/ios-wk2/editing/pasteboard/4944770-1-expected.txt:
- platform/ios-wk2/editing/selection/caret-before-select-expected.txt:
- platform/ios-wk2/fast/block/basic/011-expected.txt:
- platform/ios-wk2/fast/block/margin-collapse/103-expected.txt:
- platform/ios-wk2/fast/dom/HTMLTextAreaElement/reset-textarea-expected.txt:
- platform/ios-wk2/fast/overflow/float-in-relpositioned-expected.txt:
- platform/ios-wk2/fast/overflow/scroll-nested-positioned-layer-in-overflow-expected.txt:
- platform/ios-wk2/fast/overflow/scrollRevealButton-expected.txt:
- platform/ios-wk2/fast/spatial-navigation/snav-multiple-select-focusring-expected.txt:
- platform/ios-wk2/fast/text/shadow-no-blur-expected.txt:
- platform/ios-wk2/fast/text/shadow-translucent-fill-expected.txt:
- platform/ios/TestExpectations:
- platform/ios/compositing/images/direct-image-background-color-expected.txt:
- platform/ios/compositing/overflow/theme-affects-visual-overflow-expected.txt:
- platform/ios/compositing/webgl/webgl-background-color-expected.txt:
- platform/ios/css1/box_properties/acid_test-expected.txt:
- platform/ios/css2.1/t09-c5526c-display-00-e-expected.txt:
- platform/ios/css3/flexbox/button-expected.txt:
- platform/ios/css3/selectors3/html/css3-modsel-19b-expected.txt:
- platform/ios/css3/selectors3/html/css3-modsel-64-expected.txt:
- platform/ios/css3/selectors3/xhtml/css3-modsel-19b-expected.txt:
- platform/ios/css3/selectors3/xhtml/css3-modsel-64-expected.txt:
- platform/ios/css3/selectors3/xml/css3-modsel-19b-expected.txt:
- platform/ios/css3/selectors3/xml/css3-modsel-64-expected.txt:
- platform/ios/editing/selection/3690703-2-expected.txt:
- platform/ios/editing/selection/3690703-expected.txt:
- platform/ios/editing/selection/3690719-expected.txt:
- platform/ios/editing/selection/4397952-expected.txt:
- platform/ios/editing/selection/5240265-expected.txt:
- platform/ios/editing/selection/replaced-boundaries-3-expected.txt:
- platform/ios/editing/selection/select-box-expected.txt:
- platform/ios/editing/selection/select-element-paragraph-boundary-expected.txt:
- platform/ios/editing/selection/selection-button-text-expected.txt:
- platform/ios/fast/backgrounds/background-leakage-expected.txt:
- platform/ios/fast/backgrounds/background-leakage-transforms-expected.txt:
- platform/ios/fast/block/float/float-avoidance-expected.txt:
- platform/ios/fast/block/float/intruding-painted-twice-expected.txt:
- platform/ios/fast/block/positioning/inline-block-relposition-expected.txt:
- platform/ios/fast/borders/mixed-border-styles-expected.txt:
- platform/ios/fast/borders/mixed-border-styles-radius-expected.txt:
- platform/ios/fast/borders/mixed-border-styles-radius2-expected.txt:
- platform/ios/fast/box-shadow/inset-box-shadow-radius-expected.txt:
- platform/ios/fast/css/continuationCrash-expected.txt:
- platform/ios/fast/css/margin-top-bottom-dynamic-expected.txt:
- platform/ios/fast/css/non-standard-checkbox-size-expected.txt:
- platform/ios/fast/css/percentage-non-integer-expected.txt:
- platform/ios/fast/css/rtl-ordering-expected.txt:
- platform/ios/fast/css/shadow-multiple-expected.txt:
- platform/ios/fast/css/text-transform-select-expected.txt:
- platform/ios/fast/css/viewport-units-dynamic-expected.txt:
- platform/ios/fast/dom/HTMLTableColElement/resize-table-using-col-width-expected.txt:
- platform/ios/fast/dynamic/positioned-movement-with-positioned-children-expected.txt:
- platform/ios/fast/forms/001-expected.txt:
- platform/ios/fast/forms/003-expected.txt:
- platform/ios/fast/forms/004-expected.txt:
- platform/ios/fast/forms/basic-inputs-expected.txt:
- platform/ios/fast/forms/basic-selects-expected.txt:
- platform/ios/fast/forms/blankbuttons-expected.txt:
- platform/ios/fast/forms/box-shadow-override-expected.txt:
- platform/ios/fast/forms/button-align-expected.txt:
- platform/ios/fast/forms/button-cannot-be-nested-expected.txt:
- platform/ios/fast/forms/button-generated-content-expected.txt:
- platform/ios/fast/forms/button-positioned-expected.txt:
- platform/ios/fast/forms/button-sizes-expected.txt:
- platform/ios/fast/forms/button-style-color-expected.txt:
- platform/ios/fast/forms/button-table-styles-expected.txt:
- platform/ios/fast/forms/button-text-transform-expected.txt:
- platform/ios/fast/forms/button-white-space-expected.txt:
- platform/ios/fast/forms/control-clip-expected.txt:
- platform/ios/fast/forms/control-clip-overflow-expected.txt:
- platform/ios/fast/forms/control-restrict-line-height-expected.txt:
- platform/ios/fast/forms/disabled-select-change-index-expected.txt:
- platform/ios/fast/forms/file/file-input-direction-expected.txt:
- platform/ios/fast/forms/file/file-input-disabled-expected.txt:
- platform/ios/fast/forms/form-element-geometry-expected.txt:
- platform/ios/fast/forms/formmove-expected.txt:
- platform/ios/fast/forms/formmove2-expected.txt:
- platform/ios/fast/forms/formmove3-expected.txt:
- platform/ios/fast/forms/hidden-listbox-expected.txt:
- platform/ios/fast/forms/input-appearance-height-expected.txt:
- platform/ios/fast/forms/input-button-sizes-expected.txt:
- platform/ios/fast/forms/input-value-expected.txt:
- platform/ios/fast/forms/listbox-bidi-align-expected.txt:
- platform/ios/fast/forms/listbox-hit-test-zoomed-expected.txt:
- platform/ios/fast/forms/listbox-scrollbar-incremental-load-expected.txt:
- platform/ios/fast/forms/listbox-width-change-expected.txt:
- platform/ios/fast/forms/menulist-clip-expected.txt:
- platform/ios/fast/forms/menulist-deselect-update-expected.txt:
- platform/ios/fast/forms/menulist-narrow-width-expected.txt:
- platform/ios/fast/forms/menulist-no-overflow-expected.txt:
- platform/ios/fast/forms/menulist-option-wrap-expected.txt:
- platform/ios/fast/forms/menulist-separator-painting-expected.txt:
- platform/ios/fast/forms/menulist-style-color-expected.txt:
- platform/ios/fast/forms/menulist-width-change-expected.txt:
- platform/ios/fast/forms/option-script-expected.txt:
- platform/ios/fast/forms/option-strip-whitespace-expected.txt:
- platform/ios/fast/forms/option-text-clip-expected.txt:
- platform/ios/fast/forms/select-align-expected.txt:
- platform/ios/fast/forms/select-baseline-expected.txt:
- platform/ios/fast/forms/select-block-background-expected.txt:
- platform/ios/fast/forms/select-change-listbox-size-expected.txt:
- platform/ios/fast/forms/select-change-listbox-to-popup-expected.txt:
- platform/ios/fast/forms/select-change-popup-to-listbox-expected.txt:
- platform/ios/fast/forms/select-dirty-parent-pref-widths-expected.txt:
- platform/ios/fast/forms/select-disabled-appearance-expected.txt:
- platform/ios/fast/forms/select-empty-option-height-expected.txt:
- platform/ios/fast/forms/select-initial-position-expected.txt:
- platform/ios/fast/forms/select-item-background-clip-expected.txt:
- platform/ios/fast/forms/select-list-box-with-height-expected.txt:
- platform/ios/fast/forms/select-non-native-rendering-direction-expected.txt:
- platform/ios/fast/forms/select-selected-expected.txt:
- platform/ios/fast/forms/select-style-expected.txt:
- platform/ios/fast/forms/select-visual-hebrew-expected.txt:
- platform/ios/fast/forms/select-writing-direction-natural-expected.txt:
- platform/ios/fast/forms/select/optgroup-rendering-expected.txt:
- platform/ios/fast/forms/selectlist-minsize-expected.txt:
- platform/ios/fast/forms/stuff-on-my-optgroup-expected.txt:
- platform/ios/fast/html/details-replace-summary-child-expected.txt:
- platform/ios/fast/html/details-replace-text-expected.txt:
- platform/ios/fast/html/keygen-expected.txt:
- platform/ios/fast/inline/positionedLifetime-expected.txt:
- platform/ios/fast/invalid/014-expected.txt:
- platform/ios/fast/multicol/client-rects-expected.txt:
- platform/ios/fast/multicol/client-rects-spanners-complex-expected.txt:
- platform/ios/fast/multicol/client-rects-spanners-expected.txt:
- platform/ios/fast/multicol/newmulticol/client-rects-expected.txt:
- platform/ios/fast/parser/bad-xml-slash-expected.txt:
- platform/ios/fast/replaced/replaced-breaking-expected.txt:
- platform/ios/fast/replaced/replaced-breaking-mixture-expected.txt:
- platform/ios/fast/replaced/three-selects-break-expected.txt:
- platform/ios/fast/replaced/width100percent-button-expected.txt:
- platform/ios/fast/replaced/width100percent-checkbox-expected.txt:
- platform/ios/fast/replaced/width100percent-menulist-expected.txt:
- platform/ios/fast/replaced/width100percent-radio-expected.txt:
- platform/ios/fast/ruby/select-ruby-expected.txt:
- platform/ios/fast/selectors/064-expected.txt:
- platform/ios/fast/table/append-cells2-expected.txt:
- platform/ios/fast/table/border-collapsing/equal-precedence-resolution-expected.txt:
- platform/ios/fast/table/border-collapsing/equal-precedence-resolution-vertical-expected.txt:
- platform/ios/fast/table/remove-td-display-none-expected.txt:
- platform/ios/fast/text/international/bidi-listbox-atsui-expected.txt:
- platform/ios/fast/text/international/bidi-listbox-expected.txt:
- platform/ios/fast/text/international/bidi-menulist-expected.txt:
- platform/ios/fast/text/international/hindi-spacing-expected.txt:
- platform/ios/fast/text/international/pop-up-button-text-alignment-and-direction-expected.txt:
- platform/ios/fast/text/whitespace/normal-after-nowrap-breaking-expected.txt:
- platform/ios/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt:
- platform/ios/ios/fast/borders/thin-lozenge-expected.txt:
- platform/ios/svg/W3C-SVG-1.1/color-prop-02-f-expected.txt:
- platform/ios/svg/W3C-SVG-1.1/color-prop-03-t-expected.txt:
- platform/ios/svg/custom/foreign-object-skew-expected.txt:
- platform/ios/svg/custom/inline-svg-in-xhtml-expected.txt:
- platform/ios/tables/mozilla/bugs/bug1188-expected.txt:
- platform/ios/tables/mozilla/bugs/bug1318-expected.txt:
- platform/ios/tables/mozilla/bugs/bug138725-expected.txt:
- platform/ios/tables/mozilla/bugs/bug18359-expected.txt:
- platform/ios/tables/mozilla/bugs/bug2479-2-expected.txt:
- platform/ios/tables/mozilla/bugs/bug2479-3-expected.txt:
- platform/ios/tables/mozilla/bugs/bug2479-4-expected.txt:
- platform/ios/tables/mozilla/bugs/bug26178-expected.txt:
- platform/ios/tables/mozilla/bugs/bug28928-expected.txt:
- platform/ios/tables/mozilla/bugs/bug29326-expected.txt:
- platform/ios/tables/mozilla/bugs/bug33855-expected.txt:
- platform/ios/tables/mozilla/bugs/bug39209-expected.txt:
- platform/ios/tables/mozilla/bugs/bug4382-expected.txt:
- platform/ios/tables/mozilla/bugs/bug4429-expected.txt:
- platform/ios/tables/mozilla/bugs/bug44505-expected.txt:
- platform/ios/tables/mozilla/bugs/bug4527-expected.txt:
- platform/ios/tables/mozilla/bugs/bug46368-1-expected.txt:
- platform/ios/tables/mozilla/bugs/bug46368-2-expected.txt:
- platform/ios/tables/mozilla/bugs/bug51037-expected.txt:
- platform/ios/tables/mozilla/bugs/bug51727-expected.txt:
- platform/ios/tables/mozilla/bugs/bug52505-expected.txt:
- platform/ios/tables/mozilla/bugs/bug52506-expected.txt:
- platform/ios/tables/mozilla/bugs/bug60749-expected.txt:
- platform/ios/tables/mozilla/bugs/bug68912-expected.txt:
- platform/ios/tables/mozilla/bugs/bug7342-expected.txt:
- platform/ios/tables/mozilla/bugs/bug92647-2-expected.txt:
- platform/ios/tables/mozilla/bugs/bug96334-expected.txt:
- platform/ios/tables/mozilla/collapsing_borders/bug41262-4-expected.txt:
- platform/ios/tables/mozilla/core/margins-expected.txt:
- platform/ios/tables/mozilla/dom/tableDom-expected.txt:
- platform/ios/tables/mozilla/other/move_row-expected.txt:
- platform/ios/tables/mozilla_expected_failures/bugs/bug1725-expected.txt:
- platform/ios/tables/mozilla_expected_failures/bugs/bug2479-5-expected.txt:
- platform/ios/tables/mozilla_expected_failures/bugs/bug58402-2-expected.txt:
- platform/ios/tables/mozilla_expected_failures/collapsing_borders/bug41262-5-expected.txt:
- platform/ios/tables/mozilla_expected_failures/collapsing_borders/bug41262-6-expected.txt:
- platform/ios/tables/mozilla_expected_failures/core/captions1-expected.txt:
- platform/ios/tables/mozilla_expected_failures/core/captions2-expected.txt:
- platform/ios/transforms/3d/point-mapping/3d-point-mapping-overlapping-expected.txt:
- platform/mac-highsierra/fast/css/apple-system-control-colors-expected.txt:
- platform/mac-mojave/fast/css/apple-system-control-colors-expected.txt:
- platform/mac/compositing/images/direct-image-background-color-expected.txt:
- platform/mac/compositing/webgl/webgl-background-color-expected.txt:
- platform/mac/fast/backgrounds/background-leakage-expected.txt:
- platform/mac/fast/backgrounds/background-leakage-transforms-expected.txt:
- platform/mac/fast/block/basic/fieldset-stretch-to-legend-expected.txt:
- platform/mac/fast/block/float/intruding-painted-twice-expected.txt:
- platform/mac/fast/borders/fieldsetBorderRadius-expected.txt:
- platform/mac/fast/borders/mixed-border-styles-expected.txt:
- platform/mac/fast/borders/mixed-border-styles-radius-expected.txt:
- platform/mac/fast/borders/mixed-border-styles-radius2-expected.txt:
- platform/mac/fast/box-shadow/inset-box-shadow-radius-expected.txt:
- platform/mac/fast/css/apple-system-control-colors-expected.txt:
- platform/mac/fast/css/percentage-non-integer-expected.txt:
- platform/mac/fast/css/shadow-multiple-expected.txt:
- platform/mac/fast/css/viewport-units-dynamic-expected.txt:
- platform/mac/fast/multicol/client-rects-expected.txt:
- platform/mac/fast/multicol/client-rects-spanners-complex-expected.txt:
- platform/mac/fast/multicol/client-rects-spanners-expected.txt:
- platform/mac/fast/multicol/newmulticol/client-rects-expected.txt:
- platform/mac/fast/overflow/float-in-relpositioned-expected.txt:
- platform/mac/fast/ruby/select-ruby-expected.txt:
- platform/mac/fast/table/border-collapsing/collapsed-borders-adjoining-sections-vertical-rl-expected.txt:
- platform/mac/fast/table/border-collapsing/collapsed-borders-painted-once-on-inner-cells-expected.txt:
- platform/mac/fast/table/border-collapsing/equal-precedence-resolution-expected.txt:
- platform/mac/fast/table/border-collapsing/equal-precedence-resolution-vertical-expected.txt:
- platform/mac/fast/text/shadow-no-blur-expected.txt:
- platform/mac/fast/text/shadow-translucent-fill-expected.txt:
- platform/mac/imported/w3c/web-platform-tests/svg/import/color-prop-02-f-manual-expected.txt:
- platform/mac/imported/w3c/web-platform-tests/svg/import/color-prop-03-t-manual-expected.txt:
- platform/mac/svg/W3C-SVG-1.1/color-prop-02-f-expected.txt:
- platform/mac/svg/W3C-SVG-1.1/color-prop-03-t-expected.txt:
- platform/mac/transforms/3d/point-mapping/3d-point-mapping-overlapping-expected.txt:
- platform/win/TestExpectations:
- svg/custom/fill-opacity-rgba-expected.txt:
- svg/custom/mask-colorspace-expected.txt:
- 3:07 PM Changeset in webkit [252597] by
-
- 8 edits in tags/Safari-609.1.10.2/Source/WebCore
Cherry-pick r252315. rdar://problem/57087756
[Clipboard API] Add some infrastructure to resolve ClipboardItems into pasteboard data for writing
https://bugs.webkit.org/show_bug.cgi?id=203707
Reviewed by Ryosuke Niwa.
Implements a new method that will be used in a future patch to aggregate data vended by ClipboardItems when
writing items to the platform pasteboard. See below for more details; no new tests, since there is no change in
behavior yet.
- Modules/async-clipboard/ClipboardItem.cpp: (WebCore::ClipboardItem::collectDataForWriting):
Add a new virtual
collectDataForWriting
method, which is used when writing ClipboardItem data to the
pasteboard. This allows ClipboardItems to asynchronously convert data to a PasteboardCustomData after resolving
promises to strings or blobs; or alternately, cancel all data loading if a promise is rejected.
In order to convert items into a list of PasteboardCustomData, we do the following:
set up a PasteboardCustomData corresponding to each clipboard item
for each clipboard item:
for each type in the clipboard item:
try to resolve the promise
if the promise resolved to a string:
write the string to custom data under the type
if the promise resolved to a blob:
load the blob data as either text or an ArrayBuffer (depending on the type)
write either the loaded string or buffer to custom data under the type
if the promise rejected or resolved to an unsupported value, bail from these steps
- Modules/async-clipboard/ClipboardItem.h:
- Modules/async-clipboard/ClipboardItemBindingsDataSource.cpp: (WebCore::documentFromClipboard): (WebCore::readTypeForMIMEType): (WebCore::ClipboardItemBindingsDataSource::collectDataForWriting): (WebCore::ClipboardItemBindingsDataSource::invokeCompletionHandler): (WebCore::ClipboardItemBindingsDataSource::ClipboardItemTypeLoader::ClipboardItemTypeLoader): (WebCore::ClipboardItemBindingsDataSource::ClipboardItemTypeLoader::~ClipboardItemTypeLoader):
Add a helper class to hold state associated with loading each clipboard type. This includes the final data
itself (a variant that holds either a String or Blob), as well as a FileReaderLoader which may be present in the
case where the clipboard item type resolves to a blob.
(WebCore::ClipboardItemBindingsDataSource::ClipboardItemTypeLoader::didFinishLoading):
(WebCore::ClipboardItemBindingsDataSource::ClipboardItemTypeLoader::didFail):
Each ClipboardItemType is also the client for its FileReaderLoader, if present; when the FileReaderLoader
finishes loading or fails, we then extract data from the loader and invoke the completion handler.
(WebCore::ClipboardItemBindingsDataSource::ClipboardItemTypeLoader::invokeCompletionHandler):
(WebCore::ClipboardItemBindingsDataSource::ClipboardItemTypeLoader::didResolveToBlob):
(WebCore::ClipboardItemBindingsDataSource::ClipboardItemTypeLoader::didFailToResolve):
(WebCore::ClipboardItemBindingsDataSource::ClipboardItemTypeLoader::didResolveToString):
One of these three methods is called when the promise corresponding to a clipboard type is either resolved or
rejected. If rejected or resolved to an incompatible type, we call the completion handler immediately with no
data; if we resolve to a string, we simply store the string inm_data
and invoke the completion handler;
otherwise, if we resolve to a blob, we create a new loader to fetch either the string or data buffer for the
blob, and wait until either didFinishLoading or didFail is called.
- Modules/async-clipboard/ClipboardItemBindingsDataSource.h: (WebCore::ClipboardItemBindingsDataSource::ClipboardItemTypeLoader::create): (WebCore::ClipboardItemBindingsDataSource::ClipboardItemTypeLoader::type): (WebCore::ClipboardItemBindingsDataSource::ClipboardItemTypeLoader::data):
- Modules/async-clipboard/ClipboardItemDataSource.h:
- Modules/async-clipboard/ClipboardItemPasteboardDataSource.cpp: (WebCore::ClipboardItemPasteboardDataSource::collectDataForWriting):
For the time being, leave this unimplemented; a future patch will add support for writing ClipboardItems that
came from the platform pasteboard, as opposed to those created by the page.
- Modules/async-clipboard/ClipboardItemPasteboardDataSource.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252315 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:48 PM Changeset in webkit [252596] by
-
- 2 edits in trunk/Source/WTF
Remove self-defined C++14 features in StdLibExtras.h
https://bugs.webkit.org/show_bug.cgi?id=204220
Reviewed by Ross Kirsling.
Remove std::conjunction, std::in_place_t and std::make_unique definitions.
Remove unsued std::clz.
- wtf/StdLibExtras.h:
(std::make_unique): Deleted.
(std::exchange): Deleted.
(std::clz): Deleted.
- 2:41 PM Changeset in webkit [252595] by
-
- 6 edits in trunk/Source
Use SecTrustEvaluateWithError instead of SecTrustEvaluate where available
https://bugs.webkit.org/show_bug.cgi?id=204159
Source/WebCore:
<rdar://problem/45894288>
Patch by Alex Christensen <achristensen@webkit.org> on 2019-11-18
Reviewed by Darin Adler.
- platform/network/cocoa/ResourceResponseCocoa.mm:
(WebCore::ResourceResponse::platformCertificateInfo const):
Source/WebKit:
Patch by Alex Christensen <achristensen@webkit.org> on 2019-11-18
Reviewed by Darin Adler.
- UIProcess/ios/fullscreen/WKFullScreenWindowControllerIOS.mm:
(-[WKFullScreenWindowController _EVOrganizationName]):
Source/WTF:
<rdar://problem/45894288>
Patch by Alex Christensen <achristensen@webkit.org> on 2019-11-18
Reviewed by Darin Adler.
- wtf/Platform.h:
- 2:34 PM Changeset in webkit [252594] by
-
- 1 copy in tags/Safari-608.4.9.0.6
Tag Safari-608.4.9.0.6.
- 2:27 PM Changeset in webkit [252593] by
-
- 7 edits in tags/Safari-609.1.10.1.1/Source
Versioning.
- 2:24 PM Changeset in webkit [252592] by
-
- 1 copy in tags/Safari-609.1.10.1.1
New tag.
- 2:23 PM Changeset in webkit [252591] by
-
- 7 edits in tags/Safari-609.1.10.1/Source
Revert "Versioning."
This reverts commit r252590.
- 2:21 PM Changeset in webkit [252590] by
-
- 7 edits in tags/Safari-609.1.10.1/Source
Versioning.
- 1:58 PM Changeset in webkit [252589] by
-
- 3 edits2 adds in tags/Safari-609.1.10.2
Cherry-pick r252478. rdar://problem/57045830
Crash when setting HTMLInputElement.checked for a disconnected radio button in a shadow root
https://bugs.webkit.org/show_bug.cgi?id=204208
<rdar://problem/57045830>
Reviewed by Tim Horton.
Source/WebCore:
r251110 refactored logic in RadioButtonGroup::updateCheckedState, such that it assumes that m_nameToGroupMap
always contains an entry for the given input element's name. Prior to r251110, it would bail if m_nameToGroupMap
didn't exist. In this particular case, a named input element is added to a shadow root that is disconnected from
the document. This means that in HTMLInputElement::didFinishInsertingNode(), we will avoid adding the element to
the radio button group, even though it has a tree scope due to theisConnected()
check.
Later, when we try to set the
checked
attribute, we invoke updateCheckedState which sees that we have a tree
scope and assumes that we must have previously added the input element to the radio button map; this leads to a
nullptr deref, as the map is empty. Thus, to fix this, we change theisConnected()
check toisInTreeScope()
.
Test: fast/forms/radio-input-in-shadow-root-crash.html
- html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::didFinishInsertingNode):
LayoutTests:
Adds a new layout test to verify that we don't crash in this scenario.
- fast/forms/radio-input-in-shadow-root-crash-expected.txt: Added.
- fast/forms/radio-input-in-shadow-root-crash.html: Added.
2019-11-07 Youenn Fablet <youenn@apple.com>
Update libwebrtc to M78
https://bugs.webkit.org/show_bug.cgi?id=203897
Reviewed by Eric Carlson.
- webrtc/simulcast-h264.html: Update test to remove rid information from answer.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252478 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:58 PM Changeset in webkit [252588] by
-
- 9 edits in tags/Safari-609.1.10.2/Source/WebCore
Cherry-pick r252470. rdar://problem/57005820
[iOS] Audio capture fails when a track is unmuted
https://bugs.webkit.org/show_bug.cgi?id=204202
<rdar://problem/57005820>
Reviewed by Youenn Fablet.
Tested manually.
- platform/audio/PlatformMediaSession.cpp: (WebCore::PlatformMediaSession::canProduceAudioChanged): Remove unused "client" parameter.
- platform/audio/PlatformMediaSessionManager.cpp: (WebCore::PlatformMediaSessionManager::sessionCanProduceAudioChanged): Ditto.
- platform/audio/PlatformMediaSessionManager.h:
- platform/audio/cocoa/MediaSessionManagerCocoa.h:
- platform/audio/cocoa/MediaSessionManagerCocoa.mm: (MediaSessionManagerCocoa::sessionCanProduceAudioChanged): Ditto.
- platform/mediastream/RealtimeMediaSource.cpp: (WebCore::RealtimeMediaSource::setMuted): Change m_muted before calling start/stop so the muted method will return the correct value.
- platform/mediastream/mac/CoreAudioCaptureSource.cpp: (WebCore::CoreAudioSharedUnit::startInternal): Call sessionCanProduceAudioChanged before starting the audio unit so the audio session category is set correctly. ASSERT if the audio session category is incorrect.
- platform/mock/MockRealtimeAudioSource.cpp: (WebCore::MockRealtimeAudioSource::startProducingData): Ditto.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252470 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:58 PM Changeset in webkit [252587] by
-
- 11 edits6 adds in tags/Safari-609.1.10.2
Cherry-pick r252450. rdar://problem/57087756
[Clipboard API] Add support for Clipboard.write()
https://bugs.webkit.org/show_bug.cgi?id=204078
<rdar://problem/57087756>
Reviewed by Ryosuke Niwa.
Source/WebCore:
This patch adds support for the write() method on Clipboard, forgoing sanitization for now (this will be added
in the next patch). See below for more details.
Tests: editing/async-clipboard/clipboard-change-data-while-writing.html
editing/async-clipboard/clipboard-write-basic.html
editing/async-clipboard/clipboard-write-items-twice.html
- Modules/async-clipboard/Clipboard.cpp: (WebCore::Clipboard::~Clipboard): (WebCore::shouldProceedWithClipboardWrite): (WebCore::Clipboard::write):
Implement this method by creating a new ItemWriter and loading data from all the ClipboardItems that are being
written. If the previous writer is still in progress, make sure that we invalidate it first (rejecting the
promise) before proceeding.
(WebCore::Clipboard::didResolveOrReject):
(WebCore::Clipboard::ItemWriter::ItemWriter):
(WebCore::Clipboard::ItemWriter::write):
(WebCore::Clipboard::ItemWriter::invalidate):
(WebCore::Clipboard::ItemWriter::setData):
(WebCore::Clipboard::ItemWriter::didSetAllData):
(WebCore::Clipboard::ItemWriter::reject):
Introduce a private helper class to collect clipboard data for writing from a list of ClipboardItems, and
resolve or reject the given promise when finished.
- Modules/async-clipboard/Clipboard.h:
- platform/ios/PlatformPasteboardIOS.mm: (WebCore::createItemProviderRegistrationList):
Fix a stray bug where the empty string could not be read back as plain text or URLs from the platform pasteboard
on iOS. This is exercised by the new layout test clipboard-write-basic.html.
- platform/mac/PlatformPasteboardMac.mm: (WebCore::PlatformPasteboard::write):
Address another issue where we would sometimes try and declare the empty string as a pasteboard type when
writing to the platform pasteboard. While benign in a real NSPasteboard, there's no reason to include it in this
list of declared pasteboard types.
Tools:
Make the LocalPasteboard in WebKitTestRunner compatible with calls to -writeObjects: with a list of pasteboard
items. Currently, attempts to -writeObjects: result in a crash, since NSPasteboard code will attempt to
communicate with pasted and fail. We fix this by implementing -writeObjects: and storing the array of
NSPasteboardItems in LocalPasteboard, the same way we do in DumpRenderTree's LocalPasteboard implementation.
- DumpRenderTree/mac/DumpRenderTreePasteboard.mm: (-[LocalPasteboard declareTypes:owner:]): (-[LocalPasteboard _clearContentsWithoutUpdatingChangeCount]):
Factor out logic to clear the pasteboard's content into a separate helper, and clear out the list of saved
pasteboard items here as well.
(-[LocalPasteboard clearContents]):
Implement -clearContents in DumpRenderTree's LocalPasteboard, so that we can test Clipboard.write() in WebKit1.
(-[LocalPasteboard writeObjects:]):
Also make it so that we save any NSPasteboardItems we write to the local pasteboard, so that we can return them
later in -pasteboardItems.
(-[LocalPasteboard pasteboardItems]):
- WebKitTestRunner/mac/WebKitTestRunnerPasteboard.mm: (-[LocalPasteboard initWithName:]):
Clean up this code a bit by replacing manual reference counting for
typesArray
and its neighboring data
structures withRetainPtr
. Additionally, underscore-prefix the instance variables on LocalPasteboard to match
most of the other Objective-C objects in WebKit.
(-[LocalPasteboard name]):
(-[LocalPasteboard _clearContentsWithoutUpdatingChangeCount]):
Clear out the NSPasteboardItem list here too.
(-[LocalPasteboard clearContents]):
(-[LocalPasteboard declareTypes:owner:]):
(-[LocalPasteboard addTypes:owner:]):
(-[LocalPasteboard _addTypesWithoutUpdatingChangeCount:owner:]):
(-[LocalPasteboard changeCount]):
(-[LocalPasteboard types]):
(-[LocalPasteboard availableTypeFromArray:]):
(-[LocalPasteboard setData:forType:]):
(-[LocalPasteboard dataForType:]):
(-[LocalPasteboard pasteboardItems]):
(-[LocalPasteboard writeObjects:]):
Implement this by porting over the implementation that currently exists in DumpRenderTree. Like in
DumpRenderTree, we want to also save the NSPasteboardItem array we're given here, so that we can return it in
-pasteboardItems.
(-[LocalPasteboard dealloc]): Deleted.
LayoutTests:
Adds several new layout tests to exercise the write method on Clipboard.
- editing/async-clipboard/clipboard-change-data-while-writing-expected.txt: Added.
- editing/async-clipboard/clipboard-change-data-while-writing.html: Added.
Verify that if the platform pasteboard contents change while the page attempts to write to the clipboard, we
will reject the promise for writing.
- editing/async-clipboard/clipboard-write-basic-expected.txt: Added.
- editing/async-clipboard/clipboard-write-basic.html: Added.
Verify that writing multiple ClipboardItems to the clipboard using write() works. Among these items, one of them
contains no types, and another only contains types that resolve to empty strings. The page should be able to
read all four items back using Clipboard.read().
- editing/async-clipboard/clipboard-write-items-twice-expected.txt: Added.
- editing/async-clipboard/clipboard-write-items-twice.html: Added.
Verify that attempting to write a clipboard item that resolves on a long delay, and then attempting to write
another item that resolves on a short delay before the previous clipboard item has finished writing does not
cause the latter call to Clipboard.write() to fail. Additionally, the clipboard should contain the contents of
the second set of clipboard items, rather than the first.
- editing/async-clipboard/resources/async-clipboard-helpers.js: (async.checkClipboardItemString):
Add a helper method to read a string for the given type, out of the given clipboard item, and compare it against
an expected result.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252450 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:57 PM Changeset in webkit [252586] by
-
- 2 edits in tags/Safari-609.1.10.2/Source/WebInspectorUI
Cherry-pick r252448. rdar://problem/57178710
Web Inspector: "aqua" and "fuchsia" aren't detected as colors
https://bugs.webkit.org/show_bug.cgi?id=204085
Reviewed by Devin Rousso.
- UserInterface/Models/Color.js:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252448 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:57 PM Changeset in webkit [252585] by
-
- 4 edits in tags/Safari-609.1.10.2/Source/WebInspectorUI
Cherry-pick r252447. rdar://problem/57178290
Web Inspector: Uncaught Exception: Invalid type of argument 'eventName' for command 'DOMDebugger.setEventBreakpoint' call. It must be 'string' but it is 'object'.
https://bugs.webkit.org/show_bug.cgi?id=204176
Reviewed by Timothy Hatcher.
- UserInterface/Views/EventBreakpointPopover.js:
(WI.EventBreakpointPopover.prototype.dismiss):
Only create the
WI.EventBreakpoint
if the <input> has a value.
- UserInterface/Controllers/DOMDebuggerManager.js: (WI.DOMDebuggerManager.prototype.addEventBreakpoint): (WI.DOMDebuggerManager.prototype.addURLBreakpoint):
- UserInterface/Views/SourcesNavigationSidebarPanel.js: (WI.SourcesNavigationSidebarPanel.prototype._willDismissEventBreakpointPopover): (WI.SourcesNavigationSidebarPanel.prototype._willDismissURLBreakpointPopover): Drive-by: if the configuration isn't valid (e.g. no breakpoint) or the breakpoint already
exists, beep.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252447 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:57 PM Changeset in webkit [252584] by
-
- 9 edits in tags/Safari-609.1.10.2
Cherry-pick r252442. rdar://problem/56973112
REGRESSION: WKWebView navigation fails when navigating from about:blank
https://bugs.webkit.org/show_bug.cgi?id=203852
Source/WebKit:
<rdar://problem/56973112>
Reviewed by Brent Fulgham.
Previously, WebPageProxy::loadFile would unconditionally create a sandbox extension for the resource directory URL. Currently,
this method is calling WebPageProxy::maybeInitializeSandboxExtension to create a sandbox extension if needed. The sandbox
extension for the resource URL is not created if the WebContent process already has assumed access to the resource URL, which
is the case when loading the same file for the second time. The sandbox extension still needs to be issued in this case, since
the WebContent process is revoking its extension when the load is done. This patch restore the original behaviour by adding a
flag to WebPageProxy::maybeInitializeSandboxExtension to indicate whether the method should check if the process already has
assumed access.
API test: WKWebView.LoadRelativeFileURL
- UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle): (WebKit::WebPageProxy::loadRequestWithNavigationShared): (WebKit::WebPageProxy::loadFile):
- UIProcess/WebPageProxy.h:
- UIProcess/WebProcessProxy.cpp: (WebKit::WebProcessProxy::shouldSendPendingMessage):
- WebProcess/WebPage/WebPage.cpp: (WebKit::WebPage::loadRequestWaitingForProcessLaunch): (WebKit::WebPage::loadRequestWaitingForPID): Deleted.
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
Tools:
Reviewed by Brent Fulgham.
- TestWebKitAPI/Tests/WebKitCocoa/LoadFileURL.mm: (TEST):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252442 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:57 PM Changeset in webkit [252583] by
-
- 5 edits2 adds in tags/Safari-609.1.10.2
Cherry-pick r252439. rdar://problem/56654512
REGRESSION (r249434): flashy menus on wellsfargo.com
https://bugs.webkit.org/show_bug.cgi?id=204175
<rdar://problem/56654512>
Reviewed by Zalan Bujtas.
Source/WebCore:
Test: compositing/backing/backing-for-clipping.html
r249434 made overflow an "indirect compositing reason" (i.e. we composite for overflow:hidden
when necessary to clip a composited descendant). However this made a clause in RenderLayerCompositor::requiresOwnBackingStore()
return early when this reason is set, skipping the bounds check, so we need to do the bound check first.
This is similar to the fix in r252070.
The change to the perspective test relates to the "FIXME"; we don't use the correct ancestor for the
bounds check, so sometimes layers can have backing store when they don't need it until that's fixed.
- rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::requiresOwnBackingStore const):
LayoutTests:
- compositing/backing/backing-for-clipping-expected.html: Added.
- compositing/backing/backing-for-clipping.html: Added.
- compositing/backing/no-backing-for-perspective-expected.txt:
- platform/ios-wk2/compositing/backing/no-backing-for-perspective-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252439 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:57 PM Changeset in webkit [252582] by
-
- 2 edits in tags/Safari-609.1.10.2/Source/WebKit
Cherry-pick r252434. rdar://problem/57169789
Cleanup old UIKit Staging
https://bugs.webkit.org/show_bug.cgi?id=204130
Reviewed by Wenson Hsieh.
Not new tests - linking only.
- Platform/spi/ios/UIKitSPI.h:
Removing old staging code that should be unnecessary now.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252434 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:57 PM Changeset in webkit [252581] by
-
- 2 edits in tags/Safari-609.1.10.2/Source/WebKit
Cherry-pick r252432. rdar://problem/57138788
[iOS] Cannot open camera from websites
https://bugs.webkit.org/show_bug.cgi?id=204168
<rdar://problem/57138788>
Reviewed by Jer Noble.
The sandbox is blocking a required service.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252432 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:57 PM Changeset in webkit [252580] by
-
- 2 edits in tags/Safari-609.1.10.2/LayoutTests
Cherry-pick r252420. rdar://problem/57161698
Web Inspector: inspector/model/remote-object-weak-collection.html is failing
https://bugs.webkit.org/show_bug.cgi?id=202932
Reviewed by Brian Burg.
- inspector/model/remote-object-weak-collection.html:
Don't
generatePreview
when evaluating each expression, as that can create additional references to the object. UseHeapAgent.gc()
as that's guaranteed to be synchronous.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252420 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:57 PM Changeset in webkit [252579] by
-
- 3 edits2 adds in tags/Safari-609.1.10.2
Cherry-pick r252419. rdar://problem/57073401
Google Docs spreadsheet tiles render very slowly (because of event region painting)
https://bugs.webkit.org/show_bug.cgi?id=204160
<rdar://problem/57073401>
Reviewed by Simon Fraser.
Source/WebCore:
Content of a overflow:scroll area on this page doesn't cover the entire scrollable area and we end
up generating a complex shape for the event region. This is unnecessary as touches within scrollers
always scroll the content.
Test: fast/scrolling/ios/event-region-scrolled-contents-layer.html
- rendering/RenderLayerBacking.cpp: (WebCore::RenderLayerBacking::updateEventRegion):
Initialize event region for scrolled contents layer with layer-sized event region. This optimizes away
event region mutations. We still need to to do the event region paint to capture touch-action regions.
In future we should also improve Region type to not have pathological worst-case performance with complex
shapes.
LayoutTests:
- fast/scrolling/ios/event-region-scrolled-contents-layer-expected.txt: Added.
- fast/scrolling/ios/event-region-scrolled-contents-layer.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252419 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:57 PM Changeset in webkit [252578] by
-
- 2 edits in tags/Safari-609.1.10.2/Source/JavaScriptCore
Cherry-pick r252247. rdar://problem/56973531
Remove invalid assertion in DFG's compileNewArray().
https://bugs.webkit.org/show_bug.cgi?id=204002
<rdar://problem/56973531>
Reviewed by Robin Morisset.
The assertion is in an if clause conditional on !globalObject->isHavingABadTime().
The assertion tests the IndexingType of a structure returned by
arrayStructureForIndexingTypeDuringAllocation().
However, the structures returned by arrayStructureForIndexingTypeDuringAllocation()
may have started transitioning to their SlowPut variant because the mutator will
be imminently firing the HavingABadTime watchpoint, but haven't done so yet.
In a race, the DFG may see the SlowPut variants of the structures before
isHavingABadTime() returns true. Hence, the assertion is invalid.
Note that the FTL does not have this assertion.
This issue is already tested by stress/racy-slow-put-cloned-arguments-when-having-a-bad-time.js.
- dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::compileNewArray):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252247 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:57 PM Changeset in webkit [252577] by
-
- 4 edits1 add in tags/Safari-609.1.10.2
Cherry-pick r252160. rdar://problem/56973531
JSGlobalObject::fireWatchpointAndMakeAllArrayStructuresSlowPut() should fire its watchpoint as the last step.
https://bugs.webkit.org/show_bug.cgi?id=203867
<rdar://problem/56813514>
Reviewed by Saam Barati.
JSTests:
- stress/racy-slow-put-cloned-arguments-when-having-a-bad-time.js: Added.
Source/JavaScriptCore:
JSGlobalObject::fireWatchpointAndMakeAllArrayStructuresSlowPut() should make all
the array structures SlowPut before firing the watchpoint. Otherwise, the
concurrent JIT may think it's grabbing the slow put version of the structure, but
is actually grabbing the non-SlowPut version because it happened to beat the
mutator in a race to read the structure before the mutator makes it SlowPut.
Also removed some assertions in DFGSpeculativeJIT.cpp that are vulnerable to races
between when the mutator makes all array structures SlowPut and when it fires the
HavingABadTime watchpoint. The FTL equivalent did not have these assertions.
- dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::compileCreateRest): (JSC::DFG::SpeculativeJIT::compileNewArray): (JSC::DFG::SpeculativeJIT::compileNewArrayWithSpread):
- runtime/JSGlobalObject.cpp: (JSC::JSGlobalObject::fireWatchpointAndMakeAllArrayStructuresSlowPut):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252160 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:57 PM Changeset in webkit [252576] by
-
- 6 edits in tags/Safari-609.1.10.2
Cherry-pick r252412. rdar://problem/56516249
[ iOS ]: Layout Test http/tests/IndexedDB/storage-limit-1.https.html is a Flaky Failure
https://bugs.webkit.org/show_bug.cgi?id=203275
<rdar://problem/56516249>
Reviewed by Alex Christensen.
Source/WebKit:
Fix flakiness by clearing the storage of each cache when the cache is being cleared.
This ensures that the storage salt gets recreated if needed.
To further improve repeatability, make sure that initialize based tasks happen after clear tasks are complete.
For that purpose, add a clear task counter and append initialize callbacks to a Vector if counter is not zero.
Increment counter at clear task creation and decrement counter at completion time.
If counter is back to 0, we can safely process the pending clear tasks.
Covered by unflaked test.
- NetworkProcess/cache/CacheStorageEngine.cpp: (WebKit::CacheStorage::Engine::~Engine): (WebKit::CacheStorage::Engine::initialize): (WebKit::CacheStorage::CompletionHandler<void): (WebKit::CacheStorage::Engine::clearAllCaches): (WebKit::CacheStorage::Engine::clearCachesForOrigin):
- NetworkProcess/cache/CacheStorageEngine.h:
- NetworkProcess/cache/CacheStorageEngineCaches.cpp: (WebKit::CacheStorage::Caches::clearMemoryRepresentation):
LayoutTests:
- platform/ios-wk2/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252412 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:57 PM Changeset in webkit [252575] by
-
- 26 edits2 copies3 adds in tags/Safari-609.1.10.2
Cherry-pick r252377. rdar://problem/56653808
[iOS] WKWebView does not respect system spellchecking preference
https://bugs.webkit.org/show_bug.cgi?id=204100
<rdar://problem/56653808>
Reviewed by Tim Horton.
Source/WebKit:
Implements a platform hook on iOS (-setContinuousSpellCheckingEnabled:) to allow UIKit to inform us when the
system spellchecking preference changes, and adds logic to propagate these changes to the web process. See below
for more details.
Test: editing/spelling/toggle-spellchecking.html
- UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _setContinuousSpellCheckingEnabledForTesting:]):
- UIProcess/API/Cocoa/WKWebViewPrivate.h:
Add testing SPI to enable or disable continuous spellchecking, for both iOS and macOS.
- UIProcess/Cocoa/WebViewImpl.h:
- UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::setContinuousSpellCheckingEnabled):
- UIProcess/TextChecker.h:
- UIProcess/gtk/TextCheckerGtk.cpp: (WebKit::TextChecker::setContinuousSpellCheckingEnabled):
- UIProcess/ios/TextCheckerIOS.mm: (WebKit::TextChecker::setContinuousSpellCheckingEnabled):
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView setupInteraction]): (-[WKContentView setContinuousSpellCheckingEnabled:]):
Implement this method to handle changes to the system spellchecking preference. This hook is also used by legacy
WebKit on iOS to turn spellchecking on or off. If the value of the preference changed, we additionally notify
the web process. In the future, we should consider refactoring TextCheckerState to be per-web view and per-page,
since Cocoa platform APIs would allow for different WKWebViews to have different spell checking preferences.
- UIProcess/mac/TextCheckerMac.mm: (WebKit::TextChecker::setContinuousSpellCheckingEnabled):
- UIProcess/win/TextCheckerWin.cpp: (WebKit::TextChecker::setContinuousSpellCheckingEnabled):
- UIProcess/wpe/TextCheckerWPE.cpp: (WebKit::TextChecker::setContinuousSpellCheckingEnabled):
Adjusted setContinuousSpellCheckingEnabled to return whether or not the continuous spellchecking state changed.
Tools:
- DumpRenderTree/DumpRenderTree.xcodeproj/project.pbxproj:
- DumpRenderTree/cocoa/UIScriptControllerCocoa.h:
- DumpRenderTree/cocoa/UIScriptControllerCocoa.mm: (WTR::UIScriptControllerCocoa::UIScriptControllerCocoa): (WTR::UIScriptControllerCocoa::setContinuousSpellCheckingEnabled):
Add a new UIScriptControllerCocoa subclass for DumpRenderTree. For now, this will just contain the cross-
platform implementation of setContinuousSpellCheckingEnabled.
- DumpRenderTree/ios/UIScriptControllerIOS.h: (WTR::UIScriptControllerIOS::UIScriptControllerIOS):
- DumpRenderTree/mac/UIScriptControllerMac.h: (WTR::UIScriptControllerMac::UIScriptControllerMac):
Make both -IOS and -Mac subclasses inherit from UIScriptControllerCocoa.
- TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
- TestRunnerShared/UIScriptContext/UIScriptController.h: (WTR::UIScriptController::setContinuousSpellCheckingEnabled):
Add a new script controller method to change the platform spell checking preference during a layout test.
- WebKitTestRunner/TestController.cpp:
- WebKitTestRunner/cocoa/TestControllerCocoa.mm: (WTR::TestController::cocoaResetStateToConsistentValues):
Adjust this to explicitly turn continuous spellchecking on or off based on the
shouldShowSpellCheckingDots
test option flag, instead of toggling it on and then off when resetting state before and after the layout test.
- WebKitTestRunner/cocoa/UIScriptControllerCocoa.h:
- WebKitTestRunner/cocoa/UIScriptControllerCocoa.mm: (WTR::UIScriptControllerCocoa::setContinuousSpellCheckingEnabled):
LayoutTests:
Add a new layout test to verify that the changes to platform spellchecking preferences are reflected in editable
content. See other changelogs for more information.
- editing/spelling/toggle-spellchecking-expected.txt: Added.
- editing/spelling/toggle-spellchecking.html: Added.
- platform/win/TestExpectations:
- platform/wincairo/TestExpectations:
- resources/ui-helper.js: (window.UIHelper.async.setContinuousSpellCheckingEnabled):
Also, add a new UIHelper method to enable or disable continuous spellchecking during a layout test.
(window.UIHelper):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252377 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:57 PM Changeset in webkit [252574] by
-
- 4 edits in tags/Safari-609.1.10.2/Source/WebKit
Cherry-pick r252367. rdar://problem/57117605
Rename _textSelectionAssistant to _textInteractionAssistant to reflect the only class it can now represent
https://bugs.webkit.org/show_bug.cgi?id=204103
Reviewed by Wenson Hsieh.
No new tests - rename only.
Now that UIWKSelectionAssistant is no longer, the _textSelectionAssistant can only be a
UIWKTextInteractionAssistant. There is enough confusion around all the selection and
interaction assistants, renaming this should alleviate some of that confusion.
- UIProcess/ios/WKContentView.mm: (-[WKContentView _didExitStableState]):
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView cleanupInteraction]): (-[WKContentView becomeFirstResponderForWebView]): (-[WKContentView endEditingAndUpdateFocusAppearanceWithReason:]): (-[WKContentView _scrollingNodeScrollingWillBegin]): (-[WKContentView _scrollingNodeScrollingDidEnd]): (-[WKContentView gestureRecognizer:canBePreventedByGestureRecognizer:]): (-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]): (-[WKContentView _uiTextSelectionRects]): (-[WKContentView textInteractionGesture:shouldBeginAtPoint:]): (-[WKContentView setUpTextSelectionAssistant]): (-[WKContentView _willStartScrollingOrZooming]): (-[WKContentView _didEndScrollingOrZooming]): (-[WKContentView _lookupForWebView:]): (-[WKContentView _shareForWebView:]): (-[WKContentView _addShortcutForWebView:]): (-[WKContentView _promptForReplaceForWebView:]): (-[WKContentView _transliterateChineseForWebView:]): (-[WKContentView tintColorDidChange]): (-[WKContentView _didHideMenu:]): (-[WKContentView selectForWebView:]): (-[WKContentView selectAllForWebView:]): (-[WKContentView _showTextStyleOptionsForWebView:]): (-[WKContentView _showDictionary:]): (-[WKContentView interactionAssistant]): (-[WKContentView _showKeyboard]): (-[WKContentView _hideKeyboard]): (-[WKContentView _updateChangedSelection:]): (-[WKContentView _startSuppressingSelectionAssistantForReason:]): (-[WKContentView _stopSuppressingSelectionAssistantForReason:]): (-[WKContentView _restoreCalloutBarIfNeeded]): (-[WKContentView dragInteraction:willAnimateLiftWithAnimator:session:]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252367 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:57 PM Changeset in webkit [252573] by
-
- 8 edits6 adds in tags/Safari-609.1.10.2
Cherry-pick r252353. rdar://problem/50095458
Captcha images render as blank white space
https://bugs.webkit.org/show_bug.cgi?id=204013
rdar://problem/50095458
Reviewed by Zalan Bujtas.
Source/WebCore:
If updating z-order lists adds layers to the paint-order lists that have
dirty bits, we need to propagate those dirty bits up the tree so that
later dirty bit propagation doesn't stop prematurely. This could happen
when content triggered visibility, and the missing dirty bits caused
subframe layers to not get parented, resulting in missing layers with reCaptcha.
We do this by accumulating dirty bits inside of collectLayers().
Test: compositing/visibility/visibility-change-in-subframe.html
- rendering/RenderLayer.cpp: (WebCore::RenderLayer::rebuildZOrderLists): (WebCore::RenderLayer::collectLayers): (WebCore::RenderLayer::calculateClipRects const):
- rendering/RenderLayer.h:
- rendering/RenderLayerCompositor.cpp: (WebCore::RenderLayerCompositor::computeCompositingRequirements): (WebCore::RenderLayerCompositor::traverseUnchangedSubtree): (WebCore::RenderLayerCompositor::layerTreeAsText): Log so that debugging test failures is easier.
LayoutTests:
New test. Fails in WK1 because of compositing timing differences in iframes in DRT which
has a non auto-displaying window.
- compositing/scrolling/async-overflow-scrolling/layer-for-negative-z-in-scroller-expected.txt: Progression.
- compositing/visibility/resources/become-composited.html: Added.
- compositing/visibility/resources/frame-with-visibility-change.html: Added.
- compositing/visibility/visibility-change-in-subframe-expected.txt: Added.
- compositing/visibility/visibility-change-in-subframe.html: Added.
- platform/ios-wk2/compositing/scrolling/async-overflow-scrolling/layer-for-negative-z-in-scroller-expected.txt:
- platform/ios-wk2/compositing/visibility/visibility-change-in-subframe-expected.txt: Added.
- platform/mac-wk1/TestExpectations:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252353 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:57 PM Changeset in webkit [252572] by
-
- 7 edits2 adds in tags/Safari-609.1.10.2/Source/WebCore
Cherry-pick r252346. rdar://problem/56640423
ASSERT at PlatformCALayerCocoa::avPlayerLayer(): [platformLayer() sublayers].count == 1
https://bugs.webkit.org/show_bug.cgi?id=204077
<rdar://problem/56640423>
Reviewed by Simon Fraser.
Make PlatformCALayerCocoa::avPlayer() more robust against underlying layer changes.
Promote WebVideoContainerLayer to its own header file and give the class a "playerLayer" property. In
PlatformCALayerCocoa::avPlayer(), use that new property to retrieve the AVPlayerLayer.
Drive-by fix: Make PlatformCALayerCocoa::create() return a Ref<PlatformCALayerCocoa> rather than its parent class type.
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/avfoundation/objc/VideoFullscreenLayerManagerObjC.h:
- platform/graphics/avfoundation/objc/VideoFullscreenLayerManagerObjC.mm: (WebCore::VideoFullscreenLayerManagerObjC::setVideoLayer): (-[WebVideoContainerLayer setBounds:]): Deleted. (-[WebVideoContainerLayer setPosition:]): Deleted.
- platform/graphics/ca/cocoa/PlatformCALayerCocoa.h:
- platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm: (WebCore::PlatformCALayerCocoa::create): (WebCore::PlatformCALayerCocoa::layerTypeForPlatformLayer): (WebCore::PlatformCALayerCocoa::clone const): (WebCore::PlatformCALayerCocoa::avPlayerLayer const):
- platform/graphics/ca/cocoa/WebVideoContainerLayer.h: Added.
- platform/graphics/ca/cocoa/WebVideoContainerLayer.mm: Added. (-[WebVideoContainerLayer initWithPlayerLayer:]): (-[WebVideoContainerLayer playerLayer]): (-[WebVideoContainerLayer setBounds:]): (-[WebVideoContainerLayer setPosition:]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252346 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:57 PM Changeset in webkit [252571] by
-
- 2 edits in tags/Safari-609.1.10.2/Source/WebCore
Cherry-pick r252331. rdar://problem/56301651
Ensure MediaRemote callback always called.
https://bugs.webkit.org/show_bug.cgi?id=204072
<rdar://problem/56301651>
Reviewed by Eric Carlson.
MediaRemote.framework will complain if the callback passed in via MRMediaRemoteAddAsyncCommandHandlerBlock()
is not called for each invocation of the handler. Make sure we always call the completion handler, even in
the case of unsupported commands, or if the listener object has already been destroyed.
- platform/mac/RemoteCommandListenerMac.mm: (WebCore::RemoteCommandListenerMac::RemoteCommandListenerMac):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252331 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:57 PM Changeset in webkit [252570] by
-
- 7 edits in tags/Safari-609.1.10.2
Cherry-pick r252325. rdar://problem/56965402
Unreviewed, rolling out r251460.
https://bugs.webkit.org/show_bug.cgi?id=204070
This patch caused a crash due to synchronous event firing
(Requested by jernoble on #webkit).
Reverted changeset:
"media/W3C/video/networkState/networkState_during_progress.html
is flaky"
https://bugs.webkit.org/show_bug.cgi?id=76280
https://trac.webkit.org/changeset/251460
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252325 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:57 PM Changeset in webkit [252569] by
-
- 4 edits in tags/Safari-609.1.10.2/Source/WebKit
Cherry-pick r252314. rdar://problem/55342744
StorageManagerSet.m_storageAreas should use weak pointers to StorageArea
<https://webkit.org/b/204048>
<rdar://problem/55342744>
Reviewed by Geoffrey Garen.
- NetworkProcess/WebStorage/StorageArea.h: (class WebKit::StorageArea):
- Inherit from CanMakeWeakPtr<StorageArea>.
- NetworkProcess/WebStorage/StorageManagerSet.cpp:
(WebKit::StorageManagerSet::removeConnection):
(WebKit::StorageManagerSet::waitUntilSyncingLocalStorageFinished):
(WebKit::StorageManagerSet::connectToLocalStorageArea):
(WebKit::StorageManagerSet::connectToTransientLocalStorageArea):
(WebKit::StorageManagerSet::connectToSessionStorageArea):
(WebKit::StorageManagerSet::disconnectFromStorageArea):
(WebKit::StorageManagerSet::getValues): Initialize
quotaError
stack value since it is not guaranteed to be set. (WebKit::StorageManagerSet::setItem): (WebKit::StorageManagerSet::removeItem): (WebKit::StorageManagerSet::clear): - Use makeWeakPtr() to add StorageArea pointers to m_storageAreas.
- Use
const auto&
to store WeakPtr<StorageArea> values from m_storageAreas. - Add nullptr checks before using WeakPtr<StorageArea> values.
- NetworkProcess/WebStorage/StorageManagerSet.h: (WebKit::StorageManagerSet::m_storageAreas):
- Use WeakPtr<StorageArea>.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252314 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:56 PM Changeset in webkit [252568] by
-
- 7 edits2 adds in tags/Safari-609.1.10.2
Cherry-pick r252309. rdar://problem/55614939
Clicky Orbing support.apple.com categories shows a PNG instead of the web page preview, tapping loads image asset only instead of web page
https://bugs.webkit.org/show_bug.cgi?id=204037
<rdar://55614939>
Reviewed by Simon Fraser.
Source/WebKit:
When Safari adopted the ContextMenu API they began providing a PreviewViewController that
showed the image rather than the link, for the case of <a><img></a>.
This could be fixed in Safari, but I noticed that we actually tell the delegate that the
type of the activated element is an image, which is why they treat it as such. It's not
clear that because the image also has a link attached, a client should defer to the link.
Instead, I think it makes more sense to identify this as a link, because that is the more
important information in this API.
While here I also changed the logic to make sure we call the API if both the API and SPI
are available.
New ContextMenus and WKRequestActivatedElementInfo API tests.
- UIProcess/API/Cocoa/_WKActivatedElementInfo.mm: Identify as a link if you have a link. (-[_WKActivatedElementInfo _initWithInteractionInformationAtPosition:userInfo:]):
- UIProcess/ios/WKContentViewInteraction.mm: Look for the API before the SPI. (-[WKContentView continueContextMenuInteraction:]):
Tools:
New tests for a link wrapping an image, and the ordering of API and SPI.
Rename these tests so that they are much easier to filter on the command line.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/ContextMenus.mm: (TEST): (-[TestContextMenuAPIBeforeSPIUIDelegate webView:contextMenuConfigurationForElement:completionHandler:]): (-[TestContextMenuAPIBeforeSPIUIDelegate _webView:contextMenuConfigurationForElement:completionHandler:]): (-[TestContextMenuAPIBeforeSPIUIDelegate webView:contextMenuWillPresentForElement:]):
- TestWebKitAPI/Tests/WebKitCocoa/WKRequestActivatedElementInfo.mm: (TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKitCocoa/image.html: Added.
- TestWebKitAPI/Tests/WebKitCocoa/link-with-image.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252309 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:56 PM Changeset in webkit [252567] by
-
- 6 edits in tags/Safari-609.1.10.2/Source/WebCore
Cherry-pick r252301. rdar://problem/56996057
Add back/forward cache quirk for Vimeo.com
https://bugs.webkit.org/show_bug.cgi?id=204025
<rdar://problem/56996057>
Reviewed by Antti Koivisto.
Vimeo.com used to bypass the back/forward cache by serving "Cache-Control: no-store" over HTTPS.
We started caching such content in r250437 but the vimeo.com content unfortunately is not currently compatible
because it changes the opacity of its body to 0 when navigating away and fails to restore the original opacity
when coming back from the back/forward cache (e.g. in 'pageshow' event handler).
To address the issue, this patch introduces a quirk to restore pre-r250437 on Vimeo.com, until they get
a chance to fix their content.
- history/BackForwardCache.cpp: (WebCore::canCacheFrame):
- page/DiagnosticLoggingKeys.cpp: (WebCore::DiagnosticLoggingKeys::siteSpecificQuirkKey):
- page/DiagnosticLoggingKeys.h:
- page/Quirks.cpp: (WebCore::Quirks::shouldBypassBackForwardCache const):
- page/Quirks.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252301 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:56 PM Changeset in webkit [252566] by
-
- 5 edits in tags/Safari-609.1.10.2/Source/WebCore
Cherry-pick r252300. rdar://problem/56524235
SWServerWorker in redundant state do not need to process messages from the context process
https://bugs.webkit.org/show_bug.cgi?id=204019
Reviewed by Chris Dumez.
When a service worker is marked as redundant in network process, it might still receive some messages like didFinishActivation or didFinishInstall.
In that state, we do not need to process these messages.
Did some refactoring to directly pass the service worker to the job queue.
This makes it clear the registration and service worker are the correct ones.
- workers/service/server/SWServer.cpp: (WebCore::SWServer::didFinishInstall): Pass the worker instead of its identifier.
- workers/service/server/SWServerJobQueue.cpp: (WebCore::SWServerJobQueue::didFinishInstall): Now that we are given the service worker, get its registration directly.
- workers/service/server/SWServerJobQueue.h:
- workers/service/server/SWServerWorker.cpp: (WebCore::SWServerWorker::didFinishInstall): Exit early in redundant state. (WebCore::SWServerWorker::didFinishActivation): Exit early in redundant state.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252300 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:56 PM Changeset in webkit [252565] by
-
- 2 edits in tags/Safari-609.1.10.2/Source/WebCore
Cherry-pick r252207. rdar://problem/56908013
UserMediaController::from(document) can return nullptr
https://bugs.webkit.org/show_bug.cgi?id=203977
<rdar://problem/56908013>
Reviewed by Jer Noble.
- Modules/mediastream/MediaDevices.cpp: (WebCore::MediaDevices::stop): NULL-check the UserMediaController.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252207 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:47 PM Changeset in webkit [252564] by
-
- 11 edits in trunk
Move jsc from Resources to Helpers
https://bugs.webkit.org/show_bug.cgi?id=203970
<rdar://problem/55917748>
Reviewed by Keith Miller.
'jsc' is a supporting application or tool, not a resource. As such, it
should go into Helpers, per
<https://developer.apple.com/library/archive/technotes/tn2206/_index.html#//apple_ref/doc/uid/DTS40007919-CH1-TNTAG201>
Source/JavaScriptCore:
- Configurations/Base.xcconfig:
- Configurations/JSC.xcconfig:
- Configurations/ToolExecutable.xcconfig:
- JavaScriptCore.xcodeproj/project.pbxproj:
Tools:
- Scripts/run-jsc-stress-tests:
- Scripts/run-layout-jsc:
- Scripts/sunspider-compare-results:
(pathToSystemJSC):
- Scripts/test262/Runner.pm:
(getBuildPath):
- Scripts/webkitdirs.pm:
(jscPath):
- 1:45 PM Changeset in webkit [252563] by
-
- 22 edits in trunk
Fix getTotalLength() and getPointAtLength() for optimized rect and ellipse renderers
https://bugs.webkit.org/show_bug.cgi?id=204213
Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2019-11-18
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
- web-platform-tests/svg/types/elements/SVGGeometryElement-rect-expected.txt:
Source/WebCore:
If the renderer does not create a Path to draw the shape, we need to create
a temporary Path from the SVGElement then use it to answer the questions
of these functions and finally delete it.
- platform/graphics/Path.cpp:
(WebCore::Path::traversalStateAtLength const):
(WebCore::Path::pointAtLength const):
No need for the 'success'. It is never used.
(WebCore::Path::normalAngleAtLength const): Deleted.
This function is not used.
- platform/graphics/Path.h:
- rendering/svg/RenderSVGShape.cpp:
(WebCore::RenderSVGShape::updateShapeFromElement):
Creating the Path from the SVGELement is moved to createPath().
(WebCore::RenderSVGShape::getTotalLength const):
(WebCore::RenderSVGShape::getPointAtLength const):
Create a temporary Path if the renderer draws the shape without creating
the Path.
(WebCore::RenderSVGShape::createPath const):
- rendering/svg/RenderSVGShape.h:
- rendering/svg/SVGTextLayoutEngine.cpp:
(WebCore::SVGTextLayoutEngine::layoutTextOnLineOrPath):
- svg/SVGAnimateMotionElement.cpp:
(WebCore::SVGAnimateMotionElement::buildTransformForProgress):
Use PathTraversalState.success() to check instead of getting the same
value through an argument to traversalStateAtLength().
LayoutTests:
The following tests were added in r231955. The SVGElements in these were
defined such that a path has to be created to render any of them. Change
all the tests, except the polygon and the polyline, such that no path is
needed to render them. This will exercise the code path where we need to
create a temporary Path to answer the questions of getTotalLength() and
getPointAtLength().
- svg/dom/SVGGeometry-circle-expected.txt:
- svg/dom/SVGGeometry-circle.xhtml:
- svg/dom/SVGGeometry-ellipse-expected.txt:
- svg/dom/SVGGeometry-ellipse.xhtml:
- svg/dom/SVGGeometry-line-expected.txt:
- svg/dom/SVGGeometry-line.xhtml:
- svg/dom/SVGGeometry-polygon-expected.txt:
- svg/dom/SVGGeometry-polygon.xhtml:
- svg/dom/SVGGeometry-polyline-expected.txt:
- svg/dom/SVGGeometry-polyline.xhtml:
- svg/dom/SVGGeometry-rect-expected.txt:
- svg/dom/SVGGeometry-rect.xhtml:
- 1:30 PM Changeset in webkit [252562] by
-
- 3 edits2 adds in trunk
Block layout invalidation logic triggers excessive layout on height percentage descendants
https://bugs.webkit.org/show_bug.cgi?id=204255
Source/WebCore:
rdar://problem/57236490
Reviewed by Simon Fraser.
This patch attempts to optimize the height percentage invalidation logic by skipping boxes with out-of-flow ancestors.
The normal box invalidation logic works at the parent-child level (a.k.a when the parent is dirty it walks its direct
children list and marks them dirty if needed). However percent height values require containing block-child type of invalidation
which atm we manage using RenderBlock's percentHeightDescendantsMap (this map contains all the height percentage descendants).
As part of this extra invalidation logic, the block container always marks all of these height descendants dirty.
In certain cases, this leads to excessive and unnecessary layouts, since the
"walk the ancestor chain and mark boxes dirty all the way to the RenderView" code ends up descending back to these height percentage boxes
marking entire subtrees dirty.
We could optimize it slightly by checking if there's a height percentage containing block in the ancestor chain.
In such cases, we know that the descendant's height used value computation will eventually stop at this out-of-flow containing block.
Test: fast/block/height-percentage-descendants-with-absolute-pos-containingblock.html
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::dirtyForLayoutFromPercentageHeightDescendants):
LayoutTests:
Reviewed by Simon Fraser.
- fast/block/height-percentage-descendants-with-absolute-pos-containingblock-expected.txt: Added.
- fast/block/height-percentage-descendants-with-absolute-pos-containingblock.html: Added.
- 1:22 PM Changeset in webkit [252561] by
-
- 7 edits4 adds in trunk
[Clipboard API] Add support for Clipboard.writeText()
https://bugs.webkit.org/show_bug.cgi?id=204287
<rdar://problem/57270440>
Reviewed by Tim Horton.
LayoutTests/imported/w3c:
Rebaseline a couple of web platform tests.
- web-platform-tests/clipboard-apis/async-navigator-clipboard-basics.https-expected.txt:
- web-platform-tests/clipboard-apis/async-write-text-read-dttext-manual.https-expected.txt:
Source/WebCore:
Implements the
writeText
method on Clipboard.
Tests: editing/async-clipboard/clipboard-write-text-requires-user-gesture.html
editing/async-clipboard/clipboard-write-text.html
- Modules/async-clipboard/Clipboard.cpp:
(WebCore::shouldProceedWithClipboardWrite):
Move this helper function further up the file.
(WebCore::Clipboard::writeText):
Implement the API, by populating a single PasteboardCustomData and writing it to the system clipboard.
LayoutTests:
- editing/async-clipboard/clipboard-write-text-expected.txt: Added.
- editing/async-clipboard/clipboard-write-text-requires-user-gesture-expected.txt: Added.
- editing/async-clipboard/clipboard-write-text-requires-user-gesture.html: Added.
Add a layout test to verify that
navigator.clipboard.writeText
is gated on user gesture, if the
javaScriptCanAccessClipboard preference is disabled.
- editing/async-clipboard/clipboard-write-text.html: Added.
Add a layout test to verify that writing text to the clipboard puts a single item on the system clipboard with
the type "text/plain", which can be read back usingnavigator.clipboard.read
.
- platform/win/TestExpectations:
Skip clipboard-write-text.html on Windows, since custom pasteboard data is not implemented there yet.
- 12:54 PM Changeset in webkit [252560] by
-
- 7 edits in trunk/Tools
Python 3: Add support in webkitpy.layout_tests.views
https://bugs.webkit.org/show_bug.cgi?id=204227
Reviewed by Aakash Jain.
- Scripts/test-webkitpy-python3: Add webkitpy.layout_tests.views.
- Scripts/webkitpy/layout_tests/views/buildbot_results.py:
(BuildBotPrinter.print_unexpected_results): Use compatible iteritems.
- Scripts/webkitpy/layout_tests/views/buildbot_results_unittest.py:
(BuildBotPrinterTests.get_printer): Use compatible StringIO object.
- Scripts/webkitpy/layout_tests/views/metered_stream.py:
(MeteredStream.init): Use maxsize instead of maxint.
- Scripts/webkitpy/layout_tests/views/metered_stream_unittest.py:
(RegularTest.setUp): Use compatible StringIO, remove buflist.
(RegularTest.test_logging_not_included): Ditto.
(RegularTest._basic): Remove buflist.
(RegularTest.test_basic): Compare against stream value instead of buflist.
(RegularTest._log_after_update): Remove buflist.
(RegularTest.test_log_after_update): Compare against stream value
instead of buflist.
(RegularTest.test_log_args): Ditto.
(RegularTest.test_unicode): We can't join unicode strings and standard strings
in Python 2.
(RegularTest.test_stream_with_encoding): Use compatible StringIO, Python 3 uses
unicode strings.
(TtyTest.test_basic): Compare against stream value instead of buflist.
(TtyTest.test_log_after_update): Ditto.
(VerboseTest.test_basic): Ditto.
(VerboseTest.test_log_after_update): Ditto.
(VerboseTest.test_log_args): Ditto.
(VerboseWithOutTimestamp.test_basic): Ditto.
- Scripts/webkitpy/layout_tests/views/printing_unittest.py:
(Testprinter.assertWritten): Use stream value instead of buflist.
(Testprinter.reset): Use Python 3 compatible steam reset.
(Testprinter.get_printer): Use compatible StringIO.
(Testprinter.test_print_one_line_summary): Compare against stream value instead
of buflist.
(Testprinter.test_test_status_line): Ditto.
(Testprinter.test_print_found): Ditto.
- 12:53 PM Changeset in webkit [252559] by
-
- 5 edits in trunk
Enable Nullish operators by default
https://bugs.webkit.org/show_bug.cgi?id=204308
Reviewed by Yusuke Suzuki.
JSTests:
Remove feature -> option map.
- test262/config.yaml:
Source/JavaScriptCore:
The nullish operators
??
and?.
are likely going to stage 4 at
the December TC-39 meeting so we should probably just enable them
by default.
- parser/Lexer.cpp:
(JSC::Lexer<T>::lexWithoutClearingLineTerminator):
- runtime/OptionsList.h:
- 12:35 PM Changeset in webkit [252558] by
-
- 2 edits in trunk/Source/JavaScriptCore
Clarify that OptionRange::operator=() is only used for initializing to 0 (i.e. state Uninitialized).
https://bugs.webkit.org/show_bug.cgi?id=204309
Reviewed by Saam Barati.
Added a RELEASE_ASSERT in OptionRange::operator=() to enforce that it should
never be called with any value other than 0.
- runtime/OptionsList.h:
(JSC::OptionRange::operator= ):
- 12:06 PM Changeset in webkit [252557] by
-
- 9 edits in trunk/Source/JavaScriptCore
Reduce the amount of memory needed to store Options.
https://bugs.webkit.org/show_bug.cgi?id=202105
<rdar://problem/55641041>
Reviewed by Robin Morisset.
Options used to be stored as an array of unions of all option types, where the
size of the array is around 349 elements. We also needed a second array for the
default option value. We now store each option (and its default value) as a type
specific field in an OptionsStorage struct. This reduces the size of storage for
Options from 16752 to 2192 bytes. This, in turn, allows JSC::Config to fit in a
single page.
The reason we previously stored options in an array of unions is to allow us to
randomly access each option by its id. We now store the offset of the option
field in the Options::s_constMetaData array (previously called s_optionsInfo).
With this offset, we can compute the address of the option value field in
the OptionsStorage struct in the JSC::Config.
In this patch, we also:
- Renamed Options::s_optionsInfo to Options::s_constMetaData.
- Refactor the Option class into the OptionReader::Option class.
Previously, the Option class provided another way to access option values,
specifically when we need to access them by id. It also provided a means to
change that option value. However, it practice, we can do without this, and
remove a lot of the code. This class now exists as OptionReader::Option which
only provides a means to read information about options, but not change them
The only client for this class is the dumpOption() function.
- Removed the OptionEntry class. It previously served 2 purpose:
- Define the option types. The types are now defined in OptionsStorage.
- Define a union abstract type large enough to store any option value. This is now expressed as a union member in OptionReader::Option.
OptionEntry.h also defines the OptionRange class. OptionRange is now moved
to OptionsList.h.
- Changed the implementation of the option value parse functions to return Optional values instead of taking a reference to the value. This makes the code cleaner and easier to read on the client side.
- Fixed scaleJITPolicy() to not rely on the Option class (see 2 above), and use the canonical way to read and write option values instead i.e. via the Options::<optionName>() accessors.
- Fixed recomputeDependentOptions() to rely on the Option class (see 2 above). We can compare the option against its default value using the canonical accessors.
- Fixed Options::initialize() to only compute the default option value once. The "default" value may actually be a function call. Though current uses does not have side effects if called more than once, it is best to not assume this.
- Moved the definition of MAXIMUM_NUMBER_OF_FTL_COMPILER_THREADS and enableWebAssemblyStreamingApi from Options.h to OptionsList.h because they are used there first.
- Reduced the size of the JSC::Config to 1 PageSize.
- API/glib/JSCOptions.cpp:
(jscOptionsSetValue):
(jscOptionsGetValue):
(jsc_options_foreach):
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- runtime/JSCConfig.h:
- runtime/OptionEntry.h: Removed.
- runtime/Options.cpp:
(JSC::parse):
(JSC::scaleJITPolicy):
(JSC::recomputeDependentOptions):
(JSC::Options::addressOfOption):
(JSC::Options::addressOfOptionDefault):
(JSC::Options::initialize):
(JSC::Options::setOptionWithoutAlias):
(JSC::invertBoolOptionValue):
(JSC::Options::setAliasedOption):
(JSC::Options::dumpAllOptions):
(JSC::OptionReader::Option::operator!= const):
(JSC::OptionReader::Option::name const):
(JSC::OptionReader::Option::description const):
(JSC::OptionReader::Option::type const):
(JSC::OptionReader::Option::availability const):
(JSC::OptionReader::Option::isOverridden const):
(JSC::OptionReader::Option::Option):
(JSC::Options::dumpOption):
(JSC::OptionReader::optionFor):
(JSC::OptionReader::defaultFor):
(JSC::OptionReader::Option::initValue):
(JSC::OptionReader::Option::dump const):
(JSC::OptionReader::Option::operator== const):
(JSC::Option::dump const): Deleted.
(JSC::Option::operator== const): Deleted.
- runtime/Options.h:
(JSC::Option::Option): Deleted.
(JSC::Option::operator!= const): Deleted.
(JSC::Option::id const): Deleted.
(JSC::Option::name const): Deleted.
(JSC::Option::description const): Deleted.
(JSC::Option::type const): Deleted.
(JSC::Option::availability const): Deleted.
(JSC::Option::isOverridden const): Deleted.
(JSC::Option::defaultOption const): Deleted.
(JSC::Option::boolVal): Deleted.
(JSC::Option::unsignedVal): Deleted.
(JSC::Option::doubleVal): Deleted.
(JSC::Option::int32Val): Deleted.
(JSC::Option::optionRangeVal): Deleted.
(JSC::Option::optionStringVal): Deleted.
(JSC::Option::gcLogLevelVal): Deleted.
- runtime/OptionsList.h:
(JSC::OptionRange::operator= ):
(JSC::OptionRange::rangeString const):
- 11:34 AM Changeset in webkit [252556] by
-
- 4 edits in branches/safari-608-branch/Source
Cherry-pick r252297. rdar://problem/57058406
[WebAuthn] Add quirk needed to support legacy Google NFC Titan security keys
https://bugs.webkit.org/show_bug.cgi?id=204024
<rdar://problem/56962320>
Reviewed by Brent Fulgham.
Source/WebCore:
Covered by manual tests.
- Modules/webauthn/fido/FidoConstants.h:
Source/WebKit:
Some legacy U2F keys such as Google T1 Titan don't understand the FIDO applet command. Instead,
they are configured to only have the FIDO applet. Therefore, when the above command fails, we
use U2F_VERSION command to double check if the connected tag can actually speak U2F, indicating
we are interacting with one of these legacy keys.
- UIProcess/WebAuthentication/Cocoa/NfcConnection.mm: (WebKit::fido::compareVersion): (WebKit::fido::trySelectFidoApplet): (WebKit::NfcConnection::transact const): (WebKit::NfcConnection::didDetectTags):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252297 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:34 AM Changeset in webkit [252555] by
-
- 5 edits in branches/safari-608-branch
Cherry-pick r252248. rdar://problem/57058392
[WebAuthn] Return NotAllowedError immediately for UI cancellations
https://bugs.webkit.org/show_bug.cgi?id=203937
<rdar://problem/56962420>
Reviewed by Brent Fulgham.
Source/WebKit:
NotAllowedError representing UI cancellations should be returned to sites
immediately such that sites could show appropriate error page immediately.
Covered by existing tests.
- UIProcess/WebAuthentication/AuthenticatorManager.cpp: (WebKit::AuthenticatorManager::cancelRequest): (WebKit::AuthenticatorManager::clearState): (WebKit::AuthenticatorManager::resetState): Deleted.
- UIProcess/WebAuthentication/AuthenticatorManager.h:
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm: (TestWebKitAPI::TEST):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@252248 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:32 AM Changeset in webkit [252554] by
-
- 6 edits in trunk/Source/WebCore
Return value of CSSPropertyAnimation::blendProperties() isn't used anywhere
https://bugs.webkit.org/show_bug.cgi?id=204299
Patch by Antoine Quint <Antoine Quint> on 2019-11-18
Reviewed by Dean Jackson.
There is no code calling CSSPropertyAnimation::blendProperties() that uses its returen value, so we change
that function to return void. Also, since this function contains the only call site to
CSSPropertyBlendingClient::isAccelerated(), we delete that function too.
- animation/CSSPropertyBlendingClient.h:
- animation/KeyframeEffect.h:
(WebCore::KeyframeEffect::isAccelerated const):
- page/animation/AnimationBase.h:
(WebCore::AnimationBase::isAccelerated const):
- page/animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimation::blendProperties):
- page/animation/CSSPropertyAnimation.h:
- 11:13 AM Changeset in webkit [252553] by
-
- 12 edits2 moves in trunk/Source/WebCore
Rename DocumentRuleSets to Style::ScopeRuleSets
https://bugs.webkit.org/show_bug.cgi?id=204301
Reviewed by Zalan Bujtas.
The current name is misleading, these objects are per style scope, not per document.
Also switch to Style namespace and directory.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- css/ElementRuleCollector.cpp:
(WebCore::ElementRuleCollector::ElementRuleCollector):
- css/ElementRuleCollector.h:
- css/PageRuleCollector.h:
(WebCore::PageRuleCollector::PageRuleCollector):
- style/AttributeChangeInvalidation.h:
- style/ClassChangeInvalidation.h:
- style/StyleInvalidationFunctions.h:
- style/StyleResolver.h:
(WebCore::Style::Resolver::ruleSets):
(WebCore::Style::Resolver::ruleSets const):
- style/StyleScopeRuleSets.cpp: Renamed from Source/WebCore/css/DocumentRuleSets.cpp.
(WebCore::Style::ScopeRuleSets::ScopeRuleSets):
(WebCore::Style::ScopeRuleSets::~ScopeRuleSets):
(WebCore::Style::ScopeRuleSets::userAgentMediaQueryStyle const):
(WebCore::Style::ScopeRuleSets::updateUserAgentMediaQueryStyleIfNeeded const):
(WebCore::Style::ScopeRuleSets::userStyle const):
(WebCore::Style::ScopeRuleSets::initializeUserStyle):
(WebCore::Style::ScopeRuleSets::collectRulesFromUserStyleSheets):
(WebCore::Style::ScopeRuleSets::resetAuthorStyle):
(WebCore::Style::ScopeRuleSets::resetUserAgentMediaQueryStyle):
(WebCore::Style::ScopeRuleSets::appendAuthorStyleSheets):
(WebCore::Style::ScopeRuleSets::collectFeatures const):
(WebCore::Style::ScopeRuleSets::classInvalidationRuleSets const):
(WebCore::Style::ScopeRuleSets::attributeInvalidationRuleSets const):
(WebCore::Style::ScopeRuleSets::hasComplexSelectorsForStyleAttribute const):
- style/StyleScopeRuleSets.h: Renamed from Source/WebCore/css/DocumentRuleSets.h.
(WebCore::Style::ScopeRuleSets::features const):
(WebCore::Style::ScopeRuleSets::mutableFeatures):
- style/StyleSharingResolver.cpp:
(WebCore::Style::SharingResolver::SharingResolver):
- style/StyleSharingResolver.h:
- 11:09 AM Changeset in webkit [252552] by
-
- 2 edits in trunk/Source/WebCore
Delete unused visually non-empty methods from FrameView
https://bugs.webkit.org/show_bug.cgi?id=204303
Patch by Benjamin Nham <Ben Nham> on 2019-11-18
Reviewed by Zalan Bujtas.
FrameView's updateIsVisuallyNonEmpty and updateSignificantRenderedTextMilestoneIfNeeded
methods are in its header, but aren't implemented or used. Remove them.
- page/FrameView.h:
- 10:55 AM Changeset in webkit [252551] by
-
- 2 edits in trunk/Source/JavaScriptCore
Publish JavaScriptCore as Clang module
https://bugs.webkit.org/show_bug.cgi?id=204207
Patch by Chris Polcyn <cpolcyn@apple.com> on 2019-11-18
Reviewed by Keith Miller.
- Configurations/JavaScriptCore.xcconfig:
- 10:46 AM Changeset in webkit [252550] by
-
- 2 edits in trunk/Source/WebKit
WKWebView.mediaType is nullable, not null_resettable
https://bugs.webkit.org/show_bug.cgi?id=204297
Reviewed by Anders Carlsson.
- UIProcess/API/Cocoa/WKWebView.h: Use nullable for mediaType since this
property returns a null value when the media type is not being overridden.
- 10:15 AM Changeset in webkit [252549] by
-
- 13 edits2 adds in branches/safari-608.4.9.0-branch
Apply patch. rdar://problem/57283187
- 10:13 AM Changeset in webkit [252548] by
-
- 7 edits in branches/safari-608.4.9.0-branch/Source
Versioning.
- 10:01 AM Changeset in webkit [252547] by
-
- 3 edits in trunk/Source/JavaScriptCore
Unreviewed, address Darin's feedback on r252520.
- runtime/FunctionRareData.h:
- runtime/JSFunctionInlines.h:
(JSC::JSFunction::hasReifiedLength const):
(JSC::JSFunction::hasReifiedName const):
- 9:37 AM Changeset in webkit [252546] by
-
- 37 edits2 moves in trunk/Source/WebCore
Move StyleResolver to Style namespace
https://bugs.webkit.org/show_bug.cgi?id=204294
Reviewed by Zalan Bujtas.
Most subparts are already in Style namespace.
Also rename it to Style::Resolver and move files to WebCore/style subdirectory.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::updateBlendingKeyframes):
- css/DOMCSSRegisterCustomProperty.cpp:
(WebCore::DOMCSSRegisterCustomProperty::registerProperty):
- css/DocumentRuleSets.cpp:
(WebCore::DocumentRuleSets::DocumentRuleSets):
(WebCore::DocumentRuleSets::collectRulesFromUserStyleSheets):
(WebCore::DocumentRuleSets::appendAuthorStyleSheets):
- css/DocumentRuleSets.h:
- css/MediaQueryEvaluator.cpp:
(WebCore::MediaQueryEvaluator::evaluate const):
- css/MediaQueryEvaluator.h:
- css/PageRuleCollector.h:
(WebCore::PageRuleCollector::PageRuleCollector):
- css/RuleSet.cpp:
(WebCore::RuleSet::addChildRules):
(WebCore::RuleSet::addRulesFromSheet):
- css/RuleSet.h:
- dom/Document.cpp:
(WebCore::Document::userAgentShadowTreeStyleResolver):
- dom/Document.h:
- dom/Element.cpp:
(WebCore::Element::styleResolver):
(WebCore::Element::resolveStyle):
(WebCore::Element::resolveCustomStyle):
- dom/Element.h:
- editing/EditingStyle.cpp:
(WebCore::EditingStyle::mergeStyleFromRules):
(WebCore::EditingStyle::removeStyleFromRulesAndContext):
(WebCore::EditingStyle::removePropertiesInElementDefaultStyle):
- editing/FrameSelection.cpp:
(WebCore::FrameSelection::focusedOrActiveStateChanged):
- html/shadow/SliderThumbElement.cpp:
(WebCore::SliderThumbElement::resolveCustomStyle):
(WebCore::SliderContainerElement::resolveCustomStyle):
- html/shadow/SliderThumbElement.h:
- html/shadow/TextControlInnerElements.cpp:
(WebCore::TextControlInnerContainer::resolveCustomStyle):
(WebCore::TextControlInnerElement::resolveCustomStyle):
(WebCore::TextControlInnerTextElement::resolveCustomStyle):
(WebCore::TextControlPlaceholderElement::resolveCustomStyle):
- html/shadow/TextControlInnerElements.h:
- inspector/agents/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::getMatchedStylesForNode):
(WebCore::InspectorCSSAgent::buildObjectForRule):
(WebCore::InspectorCSSAgent::buildArrayForMatchedRuleList):
- inspector/agents/InspectorCSSAgent.h:
- page/DOMWindow.cpp:
(WebCore::DOMWindow::getMatchedCSSRules const):
- page/Page.cpp:
(WebCore::Page::updateStyleAfterChangeInEnvironment):
- page/animation/CompositeAnimation.cpp:
(WebCore::CompositeAnimation::animate):
- rendering/RenderTheme.h:
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::changeRequiresLayerRepaint const):
- rendering/style/RenderStyle.h:
- style/StyleResolver.cpp: Renamed from Source/WebCore/css/StyleResolver.cpp.
(WebCore::Style::Resolver::Resolver):
(WebCore::Style::Resolver::addCurrentSVGFontFaceRules):
(WebCore::Style::Resolver::appendAuthorStyleSheets):
(WebCore::Style::Resolver::addKeyframeStyle):
(WebCore::Style::Resolver::~Resolver):
(WebCore::Style::Resolver::State::State):
(WebCore::Style::Resolver::State::setStyle):
(WebCore::Style::Resolver::State::setParentStyle):
(WebCore::Style::Resolver::builderContext):
(WebCore::Style::Resolver::styleForElement):
(WebCore::Style::Resolver::styleForKeyframe):
(WebCore::Style::Resolver::isAnimationNameValid):
(WebCore::Style::Resolver::keyframeStylesForAnimation):
(WebCore::Style::Resolver::pseudoStyleForElement):
(WebCore::Style::Resolver::styleForPage):
(WebCore::Style::Resolver::defaultStyleForElement):
(WebCore::Style::Resolver::styleRulesForElement):
(WebCore::Style::Resolver::pseudoStyleRulesForElement):
(WebCore::Style::Resolver::invalidateMatchedDeclarationsCache):
(WebCore::Style::Resolver::clearCachedDeclarationsAffectedByViewportUnits):
(WebCore::Style::Resolver::applyMatchedProperties):
(WebCore::Style::Resolver::addViewportDependentMediaQueryResult):
(WebCore::Style::Resolver::hasMediaQueriesAffectedByViewportChange const):
(WebCore::Style::Resolver::addAccessibilitySettingsDependentMediaQueryResult):
(WebCore::Style::Resolver::hasMediaQueriesAffectedByAccessibilitySettingsChange const):
(WebCore::Style::Resolver::addAppearanceDependentMediaQueryResult):
(WebCore::Style::Resolver::hasMediaQueriesAffectedByAppearanceChange const):
- style/StyleResolver.h: Renamed from Source/WebCore/css/StyleResolver.h.
(WebCore::Style::ElementStyle::ElementStyle):
(WebCore::Style::Resolver::hasSelectorForAttribute const):
(WebCore::Style::Resolver::hasSelectorForId const):
- style/StyleScope.cpp:
(WebCore::Style::Scope::resolver):
(WebCore::Style::Scope::resolverIfExists):
(WebCore::Style::Scope::analyzeStyleSheetChange):
(WebCore::Style::invalidateHostAndSlottedStyleIfNeeded):
(WebCore::Style::Scope::updateActiveStyleSheets):
(WebCore::Style::Scope::updateResolver):
(WebCore::Style::Scope::scheduleUpdate):
(WebCore::Style::Scope::evaluateMediaQueriesForViewportChange):
(WebCore::Style::Scope::evaluateMediaQueriesForAccessibilitySettingsChange):
(WebCore::Style::Scope::evaluateMediaQueriesForAppearanceChange):
(WebCore::Style::Scope::updateStyleResolver): Deleted.
- style/StyleScope.h:
- style/StyleSharingResolver.cpp:
(WebCore::Style::elementHasDirectionAuto):
- style/StyleTreeResolver.cpp:
(WebCore::Style::TreeResolver::Scope::Scope):
(WebCore::Style::TreeResolver::Scope::~Scope):
(WebCore::Style::TreeResolver::styleForElement):
(WebCore::Style::TreeResolver::resolveElement):
(WebCore::Style::TreeResolver::resolvePseudoStyle):
(WebCore::Style::TreeResolver::resolve):
- style/StyleTreeResolver.h:
- svg/SVGElement.cpp:
(WebCore::SVGElement::resolveCustomStyle):
- svg/SVGElement.h:
- 9:34 AM Changeset in webkit [252545] by
-
- 5 edits in trunk/Source/WebCore
REGRESSION (r252497): Multiple mediacapturefromelement tests are crashing on mac debug
https://bugs.webkit.org/show_bug.cgi?id=204267
<rdar://problem/57248130>
Reviewed by Eric Carlson.
No new tests, covered by fast/mediacapturefromelement/CanvasCaptureMediaStream-creation.html.
- Modules/mediastream/CanvasCaptureMediaStreamTrack.cpp:
(WebCore::CanvasCaptureMediaStreamTrack::activeDOMObjectName const):
(WebCore::CanvasCaptureMediaStreamTrack::clone):
We were failing to call suspendIfNeeded() on the track after constructing it.
- Modules/mediastream/CanvasCaptureMediaStreamTrack.h:
- Modules/mediastream/MediaStreamTrack.h:
- dom/ActiveDOMObject.cpp:
(WebCore::ActiveDOMObject::assertSuspendIfNeededWasCalled const):
Add logging when the suspendIfNeeded assertion fails to facilitate debugging such issues
in the future.
- 9:14 AM Changeset in webkit [252544] by
-
- 3 edits in trunk/Source/WebCore
[LFC][Invalidation] Force rebuild layout tree on tree mutation
https://bugs.webkit.org/show_bug.cgi?id=204295
<rdar://problem/57283650>
Reviewed by Antti Koivisto.
This should evolve into a fine grained tree invalidation.
- rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::attachToRenderElementInternal):
(WebCore::RenderTreeBuilder::detachFromRenderElement):
- rendering/updating/RenderTreeUpdater.cpp:
(WebCore::RenderTreeUpdater::updateRendererStyle):
- 9:13 AM Changeset in webkit [252543] by
-
- 3 edits in trunk/Source/WebCore
[LFC][Invalidation] Do not collect inline items multiple times
https://bugs.webkit.org/show_bug.cgi?id=204296
<rdar://problem/57283761>
Reviewed by Antti Koivisto.
When inline layout is preceded by preferred width computation, we don't need to re-collect the inline items again.
- layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::layoutInFlowContent):
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthConstraints):
(WebCore::Layout::InlineFormattingContext::collectInlineContentIfNeeded):
(WebCore::Layout::InlineFormattingContext::collectInlineContent): Deleted.
- layout/inlineformatting/InlineFormattingContext.h:
- 7:31 AM Changeset in webkit [252542] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, fix build (again) for a11y disabled, after r252417.
- accessibility/AXObjectCache.h:
(WebCore::AXObjectCache::rootObject):
- 5:51 AM Changeset in webkit [252541] by
-
- 3 edits in trunk/JSTests
Skipping wasm-error-message-cross-threads.js on architectures without WASM support
https://bugs.webkit.org/show_bug.cgi?id=204293
Unreviewed gardening.
- stress/ensure-code-block-is-not-precise-allocation.js:
Skipping this test until we fix OSR to LLInt on MIPS.
- stress/wasm-error-message-cross-threads.js:
- 2:51 AM Changeset in webkit [252540] by
-
- 1 edit1 add in trunk/LayoutTests
[Web Animations] Retargeted transitions targeting accelerated properties do not stop the original transition
https://bugs.webkit.org/show_bug.cgi?id=204116
Reviewed by Dean Jackson.
Rebaseline iOS test output.
- platform/ios/imported/w3c/web-platform-tests/dom/events/Event-dispatch-on-disabled-elements-expected.txt: Added.
- 12:40 AM Changeset in webkit [252539] by
-
- 2 edits in trunk/Source/WebKit
Automation: scrollIntoView should do nothing if element is visible
https://bugs.webkit.org/show_bug.cgi?id=204194
Reviewed by Carlos Alberto Lopez Perez.
"To scroll into view an element perform the following steps only if the element is not already in view"
https://w3c.github.io/webdriver/#dfn-scrolls-into-view
Fixes: imported/w3c/webdriver/tests/element_click/scroll_into_view.py::test_partially_visible_does_not_scroll[9]
imported/w3c/webdriver/tests/element_click/scroll_into_view.py::test_partially_visible_does_not_scroll[8]
imported/w3c/webdriver/tests/element_click/scroll_into_view.py::test_partially_visible_does_not_scroll[7]
imported/w3c/webdriver/tests/element_click/scroll_into_view.py::test_partially_visible_does_not_scroll[6]
imported/w3c/webdriver/tests/element_click/scroll_into_view.py::test_partially_visible_does_not_scroll[5]
imported/w3c/webdriver/tests/element_click/scroll_into_view.py::test_partially_visible_does_not_scroll[4]
imported/w3c/webdriver/tests/element_click/scroll_into_view.py::test_partially_visible_does_not_scroll[3]
imported/w3c/webdriver/tests/element_click/scroll_into_view.py::test_partially_visible_does_not_scroll[2]
imported/w3c/webdriver/tests/element_click/scroll_into_view.py::test_partially_visible_does_not_scroll[1]
- WebProcess/Automation/WebAutomationSessionProxy.cpp:
(WebKit::WebAutomationSessionProxy::computeElementLayout): Use scrollIntoViewIfNotVisible instead of
scrollIntoViewIfNeeded.
- 12:24 AM Changeset in webkit [252538] by
-
- 6 edits in trunk/Source/JavaScriptCore
BigInt should store its data in the primitive gigacage.
https://bugs.webkit.org/show_bug.cgi?id=194888
Reviewed by Mark Lam.
We should put these bits in the primitive gigacage to reduce the
value of type confusing a BigInt as a different cell and using the
digits as a way to create an arbitrary pointer. I didn't worry
about length/sign as they are not possible to forge a pointer with.
We also put JSBigInt in IsoSubspace.
- runtime/CellSize.h:
(JSC::isDynamicallySizedType):
(JSC::cellSize):
- runtime/JSBigInt.cpp:
(JSC::JSBigInt::JSBigInt):
(JSC::JSBigInt::destroy):
(JSC::JSBigInt::createWithLengthUnchecked):
- runtime/JSBigInt.h:
(JSC::JSBigInt::allocationSize): Deleted.
- runtime/VM.cpp:
(JSC::VM::VM):
- runtime/VM.h: