Cursor is not visible after exiting full screen video
[WebKit-https.git] / Source / WebCore / ChangeLog
index edc17fb..a650b4b 100644 (file)
@@ -1,3 +1,753 @@
+2017-12-04  Antoine Quint  <graouts@apple.com>
+
+        Cursor is not visible after exiting full screen video
+        https://bugs.webkit.org/show_bug.cgi?id=180247
+        <rdar://problem/33885922>
+
+        Reviewed by Dean Jackson.
+
+        There is a dedicated NSCursor method to temporarily hide the mouse cursor while the mouse is idle,
+        so we use this platform functionality, already exposed through the page chrome, instead which
+        implements the expected behavior. Now, the mouse cursor is hidden while the mouse is stationary
+        when a <video> is fullscreen, as before, but as soon as the user exits fullscreen, the mouse cursor
+        reappears.
+
+        No test provided as I don't believe this platform behavior can be tested, there is no API to query
+        whether the cursor is visible.
+
+        * page/EventHandler.cpp:
+        (WebCore::EventHandler::cancelAutoHideCursorTimer):
+        (WebCore::EventHandler::autoHideCursorTimerFired):
+
+2017-12-04  Chris Dumez  <cdumez@apple.com>
+
+        ServiceWorkerGlobalScope::skipWaiting(Ref<DeferredPromise>&&) is unsafe
+        https://bugs.webkit.org/show_bug.cgi?id=180372
+
+        Reviewed by Youenn Fablet.
+
+        Ref the WorkerThread and capture it in the lambda. Keep the pending promises in
+        a HashMap on the ServiceWorkerGlobalScope so that they stay on the worker thread.
+
+        * workers/service/ServiceWorkerGlobalScope.cpp:
+        (WebCore::ServiceWorkerGlobalScope::skipWaiting):
+        * workers/service/ServiceWorkerGlobalScope.h:
+
+2017-12-04  Brady Eidson  <beidson@apple.com>
+
+        Get a directory path to SWServers for storing ServiceWorker registrations.
+        https://bugs.webkit.org/show_bug.cgi?id=180362
+
+        Reviewed by Chris Dumez.
+
+        No new tests (No observable behavior change yet).
+
+        * workers/service/server/SWServer.cpp:
+        (WebCore::SWServer::SWServer):
+        * workers/service/server/SWServer.h:
+
+2017-12-04  Devin Rousso  <webkit@devinrousso.com>
+
+        Web Inspector: provide method for recording CanvasRenderingContext2D from JavaScript
+        https://bugs.webkit.org/show_bug.cgi?id=175166
+        <rdar://problem/34040740>
+
+        Reviewed by Joseph Pecoraro.
+
+        No new tests, updated existing tests.
+
+        * inspector/InspectorCanvas.h:
+        * inspector/InspectorCanvas.cpp:
+        (WebCore::InspectorCanvas::resetRecordingData):
+
+        * inspector/InspectorCanvasAgent.h:
+        * inspector/InspectorCanvasAgent.cpp:
+        (WebCore::InspectorCanvasAgent::didFinishRecordingCanvasFrame):
+        (WebCore::InspectorCanvasAgent::consoleStartRecordingCanvas):
+
+        * inspector/InspectorInstrumentation.h:
+        * inspector/InspectorInstrumentation.cpp:
+        (WebCore::InspectorInstrumentation::consoleStartRecordingCanvas):
+        (WebCore::InspectorInstrumentation::consoleStartRecordingCanvasImpl):
+
+        * page/PageConsoleClient.h:
+        * page/PageConsoleClient.cpp:
+        (WebCore::PageConsoleClient::record):
+        (WebCore::PageConsoleClient::recordEnd):
+
+        * workers/WorkerConsoleClient.h:
+        * workers/WorkerConsoleClient.cpp:
+        (WebCore::WorkerConsoleClient::record):
+        (WebCore::WorkerConsoleClient::recordEnd):
+
+2017-12-04  Youenn Fablet  <youenn@apple.com>
+
+        Call "Terminate Service Worker" on all workers when all their clients are gone
+        https://bugs.webkit.org/show_bug.cgi?id=179552
+
+        Reviewed by Chris Dumez.
+
+        Tested manually.
+
+        When SWServer detects that there is no longer any client for a given client origin,
+        it iterates through the running workers to terminate them if they have the given client origin.
+        A timer of 60 seconds is used in case a user closes a tab or a window, and reopens one with the same origin shortly after.
+
+        * workers/service/server/SWServer.cpp:
+        (WebCore::SWServer::findClientByIdentifier):
+        (WebCore::SWServer::matchAll):
+        (WebCore::SWServer::registerServiceWorkerClient):
+        (WebCore::SWServer::unregisterServiceWorkerClient):
+        * workers/service/server/SWServer.h:
+
+2017-12-04  Antti Koivisto  <antti@apple.com>
+
+        Enable selector filtering for ::before and ::after pseudo element resolution
+        https://bugs.webkit.org/show_bug.cgi?id=180364
+
+        Reviewed by Ryosuke Niwa.
+
+        Since these pseudo elements are now resolved by TreeResolver we can use selector filter for them.
+
+        This is 10%+ progression in StyleBench pseudo element subtest.
+
+        * css/StyleResolver.cpp:
+        (WebCore::StyleResolver::pseudoStyleForElement):
+        * css/StyleResolver.h:
+        * style/StyleTreeResolver.cpp:
+        (WebCore::Style::TreeResolver::resolvePseudoStyle):
+
+2017-12-04  Youenn Fablet  <youenn@apple.com>
+
+        Add support https://w3c.github.io/ServiceWorker/#on-client-unload-algorithm
+        https://bugs.webkit.org/show_bug.cgi?id=180359
+
+        Reviewed by Chris Dumez.
+
+        This algorithm is needed for implementation of claim.
+        As per specification, it is run for every client unload, hence why this is put in removeClientUsingRegistration.
+
+        * workers/service/server/SWServerRegistration.cpp:
+        (WebCore::SWServerRegistration::removeClientUsingRegistration):
+        (WebCore::SWServerRegistration::handleClientUnload):
+        * workers/service/server/SWServerRegistration.h:
+
+2017-12-04  Antti Koivisto  <antti@apple.com>
+
+        Remove duplicates from selector filter hashes
+        https://bugs.webkit.org/show_bug.cgi?id=180354
+
+        Reviewed by Simon Fraser.
+
+        We have only four slots for hashes in RuleSet and adding more regresses performance. To use the limited slots
+        better we should eliminate duplicates.
+
+        This patch also switches to using std::array instead of a C array for the hashes.
+
+        The patch reduces the number of selectors passing through the selector filter in StyleBench by ~0.4%.
+
+        * css/ElementRuleCollector.cpp:
+        (WebCore::ElementRuleCollector::collectMatchingRulesForList):
+        * css/RuleSet.cpp:
+        (WebCore::RuleData::RuleData):
+        * css/RuleSet.h:
+        (WebCore::RuleData::descendantSelectorIdentifierHashes const):
+        * css/SelectorFilter.cpp:
+        (WebCore::collectDescendantSelectorIdentifierHashes):
+        (WebCore::SelectorFilter::collectIdentifierHashes):
+        * css/SelectorFilter.h:
+        (WebCore::SelectorFilter::fastRejectSelector const):
+
+2017-12-04  Youenn Fablet  <youenn@apple.com>
+
+        WorkerCacheStorageConnection should handle the case of terminated workers
+        https://bugs.webkit.org/show_bug.cgi?id=180304
+
+        Reviewed by Chris Dumez.
+
+        No web page observable change of behavior.
+
+        Reworked WorkerCacheStorageConnection hopping.
+        Instead of refing/unrefing itself, it refs the worker thread and the main thread connection.
+        This worker thread is then used on the way back from the main thread.
+
+        * Modules/cache/WorkerCacheStorageConnection.cpp:
+        (WebCore::WorkerCacheStorageConnection::create):
+        (WebCore::WorkerCacheStorageConnection::WorkerCacheStorageConnection):
+        (WebCore::WorkerCacheStorageConnection::doOpen):
+        (WebCore::WorkerCacheStorageConnection::doRemove):
+        (WebCore::WorkerCacheStorageConnection::doRetrieveCaches):
+        (WebCore::WorkerCacheStorageConnection::reference):
+        (WebCore::WorkerCacheStorageConnection::dereference):
+        (WebCore::WorkerCacheStorageConnection::doRetrieveRecords):
+        (WebCore::WorkerCacheStorageConnection::doBatchDeleteOperation):
+        (WebCore::WorkerCacheStorageConnection::doBatchPutOperation):
+        * Modules/cache/WorkerCacheStorageConnection.h:
+        * workers/WorkerGlobalScope.cpp:
+        (WebCore::WorkerGlobalScope::cacheStorageConnection):
+        * workers/WorkerGlobalScope.h:
+
+2017-12-04  Frederic Wang  <fwang@igalia.com>
+
+        Make ScrollingTreeNode::enclosingFrameNode return the node itself for frame nodes
+        https://bugs.webkit.org/show_bug.cgi?id=180353
+
+        Reviewed by Antonio Gomes.
+
+        This function was introduced in bug 175135 to solve a rendering bug with fixed positioned
+        nodes in overflow nodes. For a frame node, the reference frame to use for fixed nodes is
+        actually the frame node itself or otherwise we will get the same rendering bug. This patch
+        makes enclosingFrameNode return the node itself when it is a frame node and renames it to
+        clarify this behavior. Currently, enclosingFrameNode is not used for frame nodes so the
+        behavior is unchanged.
+
+        No new tests, behavior is unchanged.
+
+        * page/scrolling/ScrollingTreeNode.cpp:
+        (WebCore::ScrollingTreeNode::enclosingFrameNodeIncludingSelf): Start the search from a frame
+        scrolling node from the node itself. Renamed to make explicit that this function may include
+        the node itself.
+        * page/scrolling/ScrollingTreeNode.h: Renamed.
+
+2017-12-04  Michael Catanzaro  <mcatanzaro@igalia.com>
+
+        [WPE][GTK] Implement PAL::SleepDisabler
+        https://bugs.webkit.org/show_bug.cgi?id=178485
+
+        Reviewed by Carlos Garcia Campos.
+
+        Add a comment to warn about some odd use of SleepDisabler in HTMLMediaElement.
+
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::shouldDisableSleep const):
+
+2017-12-04  Frederic Wang  <fwang@igalia.com>
+
+        Bug 161300 - Move RenderMathMLRoot:RootType and RenderMathMLScripts:ScriptsType to element classes
+        https://bugs.webkit.org/show_bug.cgi?id=161300
+
+        Reviewed by Darin Adler.
+
+        RenderMathMLRoot::m_kind and RenderMathMLScripts::m_scriptType are initialized in the
+        constructors of the renderer classes from the tag name of the corresponding elements.
+        This patch moves them into the corresponding element classes and makes them const members
+        parsed in the constructors. It also introduces a MathMLRootElement class deriving from
+        MathMLRowElement to store the new member. Finally, the types are redefined as enum classes.
+
+        No new tests, behavior unchanged and already covered by existing tests.
+
+        * Sources.txt: Add MathMLRootElement files.
+        * WebCore.xcodeproj/project.pbxproj: Ditto.
+        * mathml/MathMLAllInOne.cpp: Ditto.
+        * mathml/MathMLRootElement.cpp:
+        (WebCore::element): Override this function to downcast to MathMLRootElement.
+        (WebCore::rootTypeOf): Helper function to parse the root type, moved from RenderMathMLRoot.
+        (WebCore::MathMLRootElement::MathMLRootElement): Initialize the root type.
+        (WebCore::MathMLRootElement::create):
+        (WebCore::MathMLRootElement::createElementRenderer): Moved from MathMLRowElement.
+        * mathml/MathMLRootElement.h: New class deriving from MathMLRowElement, with a RootType
+        member exposed to the renderer class.
+        * mathml/MathMLRowElement.cpp: Remove header for RenderMathMLRoot.h.
+        (WebCore::MathMLRowElement::createElementRenderer): Moved to MathMLRootElement.
+        * mathml/MathMLScriptsElement.cpp: Introduce a script type.
+        (WebCore::scriptTypeOf): Helper function to parse the script type, moved from
+        RenerMathMLScripts.
+        (WebCore::MathMLScriptsElement::MathMLScriptsElement): Initialize the script type.
+        * mathml/MathMLScriptsElement.h: Add new script type member.
+        (WebCore::MathMLScriptsElement::scriptType const): Expose the script type to the renderer
+        class.
+        * mathml/mathtags.in: Map <msqrt> and <mroot> to MathMLRootElement.
+        * rendering/mathml/RenderMathMLRoot.cpp:
+        (WebCore::RenderMathMLRoot::RenderMathMLRoot): Use MathMLRootElement and remove parsing of
+        the root type.
+        (WebCore::RenderMathMLRoot::rootType const): Helper function to access the root type from
+        the element class.
+        (WebCore::RenderMathMLRoot::isValid const): Use rootType() and add prefix for enum class
+        values.
+        (WebCore::RenderMathMLRoot::getBase const): Ditto.
+        (WebCore::RenderMathMLRoot::getIndex const): Ditto.
+        (WebCore::RenderMathMLRoot::horizontalParameters): Ditto.
+        (WebCore::RenderMathMLRoot::verticalParameters): Ditto.
+        (WebCore::RenderMathMLRoot::computePreferredLogicalWidths): Ditto.
+        (WebCore::RenderMathMLRoot::layoutBlock): Ditto.
+        (WebCore::RenderMathMLRoot::paint): Ditto.
+        * rendering/mathml/RenderMathMLRoot.h: Define root type as an enum class, replace
+        MathMLRowElement with MathMLRootElement, declare and use new rootType() function and remove
+        the m_kind member.
+        * rendering/mathml/RenderMathMLScripts.cpp:
+        (WebCore::RenderMathMLScripts::RenderMathMLScripts): Remove parsing of script type.
+        (WebCore::RenderMathMLScripts::scriptType const): Helper function to access the script type
+        from the element class.
+        (WebCore::RenderMathMLScripts::validateAndGetReferenceChildren): Use scriptType() and add
+        prefix for enum class values.
+        (WebCore::RenderMathMLScripts::computePreferredLogicalWidths): Ditto.
+        (WebCore::RenderMathMLScripts::verticalMetrics): Ditto.
+        (WebCore::RenderMathMLScripts::layoutBlock): Ditto.
+        * rendering/mathml/RenderMathMLScripts.h: Define root type as an enum class, declare the
+        scriptType() function and remove the m_scriptType member.
+        * rendering/mathml/RenderMathMLUnderOver.cpp:
+        (WebCore::RenderMathMLUnderOver::isValid const): Use scriptType() and add prefix for enum
+        class values.
+        (WebCore::RenderMathMLUnderOver::under const): Ditto.
+        (WebCore::RenderMathMLUnderOver::over const): Ditto.
+        (WebCore::RenderMathMLUnderOver::computePreferredLogicalWidths): Ditto.
+        (WebCore::RenderMathMLUnderOver::hasAccent const): Ditto.
+        (WebCore::RenderMathMLUnderOver::layoutBlock): Ditto.
+
+2017-12-04  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        [GStreamer] More leaks in TextCombinerGStreamer
+        https://bugs.webkit.org/show_bug.cgi?id=180331
+
+        Reviewed by Michael Catanzaro.
+
+        I've noticed more leaks reading the code, but I couldn't check them with valgrind, because I don't know how to
+        trigger that code path. This patch cleans up the file using smart pointer everywhere.
+
+        * platform/graphics/gstreamer/TextCombinerGStreamer.cpp:
+        (webkit_text_combiner_pad_init):
+        (webkitTextCombinerPadEvent):
+        (webkitTextCombinerReleasePad):
+
+2017-12-04  Jer Noble  <jer.noble@apple.com>
+
+        Include 'video/*' in image request Accept header if browser supports video media in image contexts.
+        https://bugs.webkit.org/show_bug.cgi?id=179178
+
+        Reviewed by Alex Christensen.
+
+        Test: http/tests/images/image-supports-video.html
+
+        Ensure that 'video/*' is included in the Accept header by asking the ImageDecoder whether "Video"
+        media is supported. The ImageDecoder will ask all it's constituent decoders, which aside from
+        ImageDecoderAVFObjC will say only support the "Image" media type.
+
+        Drive-by fix: Make sure the MIMETypeRegistry includes all the types supported by AVFoundation when
+        ImageDecoderAVFObjC is enabled. Also, now that Image reports it can support video mime types, check
+        whether MediaDocument can support a given mime type before asking ImageDocument.
+
+        * html/HTMLImageElement.cpp:
+        (WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
+        * loader/LinkLoader.cpp:
+        (WebCore::LinkLoader::isSupportedType):
+        * loader/cache/CachedResourceRequest.cpp:
+        (WebCore::acceptHeaderValueFromType):
+        * platform/MIMETypeRegistry.cpp:
+        (WebCore::MIMETypeRegistry::isSupportedImageVideoOrSVGMIMEType):
+        (WebCore::MIMETypeRegistry::isSupportedImageOrSVGMIMEType): Deleted.
+        * platform/MIMETypeRegistry.h:
+        * platform/graphics/ImageDecoder.cpp:
+        (WebCore::ImageDecoder::supportsMediaType):
+        * platform/graphics/ImageDecoder.h:
+        * platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.h:
+        (WebCore::ImageDecoderAVFObjC::supportsMediaType):
+        * platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.mm:
+        (WebCore::ImageDecoderAVFObjC::supportsContentType):
+        * platform/graphics/cg/ImageDecoderCG.h:
+        * platform/graphics/win/ImageDecoderDirect2D.h:
+        * platform/image-decoders/ScalableImageDecoder.h:
+        (WebCore::ScalableImageDecoder::supportsMediaType):
+        * html/parser/HTMLPreloadScanner.cpp:
+        (WebCore::TokenPreloadScanner::StartTagScanner::processAttribute):
+
+2017-12-03  Yusuke Suzuki  <utatane.tea@gmail.com>
+
+        WTF shouldn't have both Thread and ThreadIdentifier
+        https://bugs.webkit.org/show_bug.cgi?id=180308
+
+        Reviewed by Darin Adler.
+
+        No behavior change.
+
+        * Modules/indexeddb/IDBActiveDOMObject.h:
+        (WebCore::IDBActiveDOMObject::originThread const):
+        (WebCore::IDBActiveDOMObject::performCallbackOnOriginThread):
+        (WebCore::IDBActiveDOMObject::callFunctionOnOriginThread):
+        (WebCore::IDBActiveDOMObject::originThreadID const): Deleted.
+        * 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::canSuspendForDocumentSuspension 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::openCursor):
+        (WebCore::IDBIndex::openKeyCursor):
+        (WebCore::IDBIndex::doCount):
+        (WebCore::IDBIndex::doGet):
+        (WebCore::IDBIndex::doGetKey):
+        (WebCore::IDBIndex::getAll):
+        (WebCore::IDBIndex::getAllKeys):
+        (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::openCursor):
+        (WebCore::IDBObjectStore::openKeyCursor):
+        (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::getAll):
+        (WebCore::IDBObjectStore::getAllKeys):
+        (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::canSuspendForDocumentSuspension 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::canSuspendForDocumentSuspension 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::schedulePendingOperationTimer):
+        (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):
+        * 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):
+        (WebCore::IDBClient::TransactionOperation::originThread const):
+        (WebCore::IDBClient::TransactionOperation::originThreadID const): Deleted.
+        * Modules/webaudio/AudioContext.cpp:
+        (WebCore::AudioContext::AudioContext):
+        (WebCore::AudioContext::lock):
+        (WebCore::AudioContext::tryLock):
+        (WebCore::AudioContext::unlock):
+        (WebCore::AudioContext::isAudioThread const):
+        (WebCore::AudioContext::isGraphOwner const):
+        * Modules/webaudio/AudioContext.h:
+        (WebCore::AudioContext::setAudioThread):
+        (WebCore::AudioContext::audioThread const):
+        * Modules/webaudio/AudioDestinationNode.cpp:
+        (WebCore::AudioDestinationNode::render):
+        * Modules/webdatabase/Database.cpp:
+        (WebCore::Database::performClose):
+        (WebCore::Database::securityOrigin):
+        * Modules/webdatabase/DatabaseDetails.h:
+        (WebCore::DatabaseDetails::DatabaseDetails):
+        (WebCore::DatabaseDetails::operator=):
+        (WebCore::DatabaseDetails::thread const):
+        (WebCore::DatabaseDetails::threadID const): Deleted.
+        * Modules/webdatabase/DatabaseManager.cpp:
+        (WebCore::DatabaseManager::detailsForNameAndOrigin):
+        * Modules/webdatabase/DatabaseThread.cpp:
+        (WebCore::DatabaseThread::databaseThread):
+        (WebCore::DatabaseThread::recordDatabaseOpen):
+        (WebCore::DatabaseThread::recordDatabaseClosed):
+        * Modules/webdatabase/DatabaseThread.h:
+        (WebCore::DatabaseThread::getThread):
+        (WebCore::DatabaseThread::getThreadID): Deleted.
+        * Modules/webdatabase/SQLTransaction.cpp:
+        (WebCore::SQLTransaction::checkAndHandleClosedDatabase):
+        * Modules/webdatabase/SQLTransactionBackend.cpp:
+        (WebCore::SQLTransactionBackend::doCleanup):
+        (WebCore::SQLTransactionBackend::notifyDatabaseThreadIsShuttingDown):
+        * bindings/js/JSCallbackData.h:
+        (WebCore::JSCallbackData::JSCallbackData):
+        (WebCore::JSCallbackData::~JSCallbackData):
+        * bindings/js/ScheduledAction.cpp:
+        (WebCore::ScheduledAction::execute):
+        * dom/ScriptExecutionContext.cpp:
+        (WebCore::ScriptExecutionContext::createdMessagePort):
+        (WebCore::ScriptExecutionContext::destroyedMessagePort):
+        * page/ResourceUsageOverlay.h:
+        * page/scrolling/ScrollingThread.cpp:
+        (WebCore::ScrollingThread::isCurrentThread):
+        * platform/Supplementable.h:
+        (WebCore::Supplementable::provideSupplement):
+        (WebCore::Supplementable::removeSupplement):
+        (WebCore::Supplementable::requireSupplement):
+        (WebCore::Supplementable::Supplementable): Deleted.
+        * platform/Timer.cpp:
+        (WebCore::TimerBase::TimerBase):
+        (WebCore::TimerBase::start):
+        (WebCore::TimerBase::stop):
+        (WebCore::TimerBase::setNextFireTime):
+        * platform/Timer.h:
+        (WebCore::TimerBase::isActive const):
+        * platform/graphics/cocoa/FontCacheCoreText.cpp:
+        (WebCore::shouldAutoActivateFontIfNeeded):
+        * platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp:
+        (WebCore::TextureMapperPlatformLayerProxy::activateOnCompositingThread):
+        (WebCore::TextureMapperPlatformLayerProxy::invalidate):
+        (WebCore::TextureMapperPlatformLayerProxy::getAvailableBuffer):
+        (WebCore::TextureMapperPlatformLayerProxy::appendToUnusedBuffers):
+        (WebCore::TextureMapperPlatformLayerProxy::swapBuffer):
+        * platform/graphics/texmap/TextureMapperPlatformLayerProxy.h:
+        (): Deleted.
+        * platform/ios/wak/WebCoreThread.mm:
+        (RunWebThread):
+        (StartWebThread):
+        * platform/sql/SQLiteDatabase.cpp:
+        (WebCore::SQLiteDatabase::open):
+        (WebCore::SQLiteDatabase::close):
+        * platform/sql/SQLiteDatabase.h:
+        (WebCore::SQLiteDatabase::sqlite3Handle const):
+        * workers/WorkerGlobalScope.cpp:
+        (WebCore::WorkerGlobalScope::~WorkerGlobalScope):
+        (WebCore::WorkerGlobalScope::isContextThread const):
+        * workers/WorkerMessagingProxy.cpp:
+        (WebCore::WorkerMessagingProxy::WorkerMessagingProxy):
+        (WebCore::WorkerMessagingProxy::~WorkerMessagingProxy):
+        * workers/WorkerRunLoop.cpp:
+        (WebCore::WorkerRunLoop::runInMode):
+        (WebCore::WorkerRunLoop::runCleanupTasks):
+        * workers/WorkerThread.h:
+        (WebCore::WorkerThread::thread const):
+        (WebCore::WorkerThread::threadID const): Deleted.
+        * workers/service/ServiceWorkerContainer.cpp:
+        (WebCore::ServiceWorkerContainer::~ServiceWorkerContainer):
+        (WebCore::ServiceWorkerContainer::scheduleJob):
+        (WebCore::ServiceWorkerContainer::jobFailedWithException):
+        (WebCore::ServiceWorkerContainer::scheduleTaskToFireUpdateFoundEvent):
+        (WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):
+        (WebCore::ServiceWorkerContainer::jobResolvedWithUnregistrationResult):
+        (WebCore::ServiceWorkerContainer::startScriptFetchForJob):
+        (WebCore::ServiceWorkerContainer::jobFinishedLoadingScript):
+        (WebCore::ServiceWorkerContainer::jobFailedLoadingScript):
+        (WebCore::ServiceWorkerContainer::jobDidFinish):
+        (WebCore::ServiceWorkerContainer::addRegistration):
+        (WebCore::ServiceWorkerContainer::removeRegistration):
+        (WebCore::ServiceWorkerContainer::scheduleTaskToFireControllerChangeEvent):
+        (WebCore::ServiceWorkerContainer::contextIdentifier):
+        * workers/service/ServiceWorkerContainer.h:
+        * workers/service/ServiceWorkerJob.cpp:
+        (WebCore::ServiceWorkerJob::~ServiceWorkerJob):
+        (WebCore::ServiceWorkerJob::failedWithException):
+        (WebCore::ServiceWorkerJob::resolvedWithRegistration):
+        (WebCore::ServiceWorkerJob::resolvedWithUnregistrationResult):
+        (WebCore::ServiceWorkerJob::startScriptFetch):
+        (WebCore::ServiceWorkerJob::fetchScriptWithContext):
+        (WebCore::ServiceWorkerJob::didReceiveResponse):
+        (WebCore::ServiceWorkerJob::notifyFinished):
+        * workers/service/ServiceWorkerJob.h:
+        * xml/parser/XMLDocumentParserLibxml2.cpp:
+        (WebCore::matchFunc):
+        (WebCore::openFunc):
+        (WebCore::initializeXMLParser):
+        (WebCore::XMLParserContext::createStringParser):
+        (WebCore::XMLParserContext::createMemoryParser):
+
+2017-12-03  Youenn Fablet  <youenn@apple.com>
+
+        WebSocketChannel should ensure its client is live when calling it in error case
+        https://bugs.webkit.org/show_bug.cgi?id=180285
+
+        Reviewed by Darin Adler.
+
+        No observable change of behavior.
+        This makes it consistent with other calls of didReceiveMessageError.
+
+        * Modules/websockets/WebSocketChannel.cpp:
+        (WebCore::WebSocketChannel::fail):
+
+2017-12-03  Alexey Proskuryakov  <ap@apple.com>
+
+        WebArchiveResourceWebResourceHandler leaks when pasting
+        https://bugs.webkit.org/show_bug.cgi?id=180339
+
+        Reviewed by Joseph Pecoraro.
+
+        * editing/cocoa/WebContentReaderCocoa.mm:
+        (WebCore::attributesForAttributedStringConversion):
+
+2017-12-03  Chris Dumez  <cdumez@apple.com>
+
+        Support serviceWorker.postMessage() inside service workers
+        https://bugs.webkit.org/show_bug.cgi?id=180328
+
+        Reviewed by Darin Adler.
+
+        Support serviceWorker.postMessage() inside service workers.
+
+        No new tests, unskipped and rebaselined existing test that is
+        now passing.
+
+        * workers/service/SWClientConnection.h:
+        * workers/service/ServiceWorker.cpp:
+        (WebCore::ServiceWorker::postMessage):
+        * workers/service/context/SWContextManager.cpp:
+        (WebCore::SWContextManager::postMessageToServiceWorker):
+        * workers/service/context/SWContextManager.h:
+        * workers/service/context/ServiceWorkerThread.cpp:
+        (WebCore::fireMessageEvent):
+        (WebCore::ServiceWorkerThread::postMessageToServiceWorker):
+        * workers/service/context/ServiceWorkerThread.h:
+
 2017-12-03  Chris Dumez  <cdumez@apple.com>
 
         Implement self.skipWaiting() inside service workers