Cursor is not visible after exiting full screen video
[WebKit-https.git] / Source / WebCore / ChangeLog
index 9a19efe..a650b4b 100644 (file)
+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
+        https://bugs.webkit.org/show_bug.cgi?id=180329
+
+        Reviewed by Darin Adler.
+
+        Implement self.skipWaiting() inside service workers:
+        - https://w3c.github.io/ServiceWorker/#service-worker-global-scope-skipwaiting
+
+        Also fixes a bug where tryActivate() was calling activate() even though the
+        registration's active worker was "in use":
+        - https://w3c.github.io/ServiceWorker/#try-activate-algorithm
+
+        No new tests, rebaselined existing tests.
+
+        * workers/service/ServiceWorkerGlobalScope.cpp:
+        (WebCore::ServiceWorkerGlobalScope::skipWaiting):
+        * workers/service/context/SWContextManager.h:
+        * workers/service/server/SWServerRegistration.cpp:
+        (WebCore::SWServerRegistration::tryActivate):
+        * workers/service/server/SWServerToContextConnection.cpp:
+        (WebCore::SWServerToContextConnection::skipWaiting):
+        * workers/service/server/SWServerToContextConnection.h:
+        * workers/service/server/SWServerWorker.cpp:
+        (WebCore::SWServerWorker::skipWaiting):
+        * workers/service/server/SWServerWorker.h:
+        (WebCore::SWServerWorker::isSkipWaitingFlagSet const):
+
+2017-12-03  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        [GStreamer] GstPad leaked in WebKitTextCombiner
+        https://bugs.webkit.org/show_bug.cgi?id=180314
+
+        Reviewed by Michael Catanzaro.
+
+        gst_element_get_static_pad() returns a full reference that si never freed, because gst_ghost_pad_new doesn't
+        take the ownership of the given pad.
+
+        * platform/graphics/gstreamer/TextCombinerGStreamer.cpp:
+        (webkit_text_combiner_init):
+
+2017-12-03  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        [GStreamer] GstCaps leaked in MediaPlayerPrivateGStreamer::createGSTPlayBin
+        https://bugs.webkit.org/show_bug.cgi?id=180311
+
+        Reviewed by Michael Catanzaro.
+
+        gst_caps_new_empty_simple() is passed directly to g_object_set(). The returned caps should be freed with
+        gst_caps_unref().
+
+        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
+        (WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
+
+2017-12-02  Youenn Fablet  <youenn@apple.com>
+
+        Move registration activation and clearing from SWServerJobQueue to SWServerRegistration
+        https://bugs.webkit.org/show_bug.cgi?id=180325
+
+        Reviewed by Chris Dumez.
+
+        No change of behavior.
+
+        These algorithms fit naturally in SWServerRegistration and will be used as part of clients.claim.
+
+        * workers/service/server/SWServer.cpp:
+        (WebCore::SWServer::clearAll):
+        (WebCore::SWServer::didFinishActivation):
+        * workers/service/server/SWServerJobQueue.cpp:
+        (WebCore::SWServerJobQueue::scriptFetchFinished):
+        (WebCore::SWServerJobQueue::scriptContextFailedToStart):
+        (WebCore::SWServerJobQueue::didFinishInstall):
+        (WebCore::SWServerJobQueue::runUnregisterJob):
+        (WebCore::SWServerJobQueue::tryActivate): Deleted.
+        (WebCore::SWServerJobQueue::activate): Deleted.
+        (WebCore::SWServerJobQueue::didFinishActivation): Deleted.
+        (WebCore::SWServerJobQueue::tryClearRegistration): Deleted.
+        (WebCore::clearRegistrationWorker): Deleted.
+        (WebCore::SWServerJobQueue::clearRegistration): Deleted.
+        * workers/service/server/SWServerJobQueue.h:
+        * workers/service/server/SWServerRegistration.cpp:
+        (WebCore::SWServerRegistration::tryClear):
+        (WebCore::clearRegistrationWorker):
+        (WebCore::SWServerRegistration::clear):
+        (WebCore::SWServerRegistration::tryActivate):
+        (WebCore::SWServerRegistration::activate):
+        (WebCore::SWServerRegistration::didFinishActivation):
+        * workers/service/server/SWServerRegistration.h:
+
+2017-12-02  Chris Dumez  <cdumez@apple.com>
+
+        Support container.register() / registration.unregister() /  inside service workers
+        https://bugs.webkit.org/show_bug.cgi?id=180326
+
+        Reviewed by Youenn Fablet.
+
+        Support container.register() / registration.unregister() /  inside service workers.
+        This is mostly about removing the is<Document>() checks and adding testing given
+        that most of the work was done in r225455.
+
+        Test: http/tests/workers/service/ServiceWorkerGlobalScope_register.html
+
+        * workers/service/ServiceWorkerContainer.cpp:
+        (WebCore::ServiceWorkerContainer::addRegistration):
+        * workers/service/ServiceWorkerRegistration.cpp:
+        (WebCore::ServiceWorkerRegistration::update):
+        (WebCore::ServiceWorkerRegistration::unregister):
+
+2017-12-02  Chris Dumez  <cdumez@apple.com>
+
+        Support serviceWorkerRegistration.update() inside service workers
+        https://bugs.webkit.org/show_bug.cgi?id=180215
+
+        Reviewed by Darin Adler.
+
+        Support serviceWorkerRegistration.update() inside service workers. The code paths
+        for job scheduling and resolution have been made thread safe by hopping to the right
+        thread when necessary. In particular, ServiceWorkerContainer always makes sure to to
+        a callOnMainThread() before calling methods on the SWClientConnection. Also, the
+        SWClientConnection relies on a new postTaskTo() method before calling methods on the
+        job.
+
+        Test: http/tests/workers/service/self_registration_update.html
+
+        * workers/service/SWClientConnection.cpp:
+        (WebCore::SWClientConnection::scheduleJob):
+        (WebCore::SWClientConnection::finishedFetchingScript):
+        (WebCore::SWClientConnection::failedFetchingScript):
+        (WebCore::SWClientConnection::jobRejectedInServer):
+        (WebCore::SWClientConnection::registrationJobResolvedInServer):
+        (WebCore::SWClientConnection::unregistrationJobResolvedInServer):
+        (WebCore::SWClientConnection::startScriptFetchForServer):
+        (WebCore::SWClientConnection::postMessageToServiceWorkerClient):
+        (WebCore::SWClientConnection::updateRegistrationState):
+        (WebCore::SWClientConnection::updateWorkerState):
+        (WebCore::SWClientConnection::fireUpdateFoundEvent):
+        (WebCore::SWClientConnection::notifyClientsOfControllerChange):
+        (WebCore::SWClientConnection::clearPendingJobs):
+        (WebCore::SWClientConnection::postTaskTo):
+        * workers/service/SWClientConnection.h:
+        * workers/service/ServiceWorkerContainer.cpp:
+        (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):
+        * workers/service/ServiceWorkerJob.h:
+        (WebCore::ServiceWorkerJob::contextIdentifier):
+        * workers/service/ServiceWorkerJobClient.h:
+        * workers/service/ServiceWorkerRegistration.cpp:
+        (WebCore::ServiceWorkerRegistration::update):
+        * workers/service/ServiceWorkerTypes.h:
+
+2017-12-02  Simon Fraser  <simon.fraser@apple.com>
+
+        Make IOSurface::Locker and use it in ImageBufferDataCG
+        https://bugs.webkit.org/show_bug.cgi?id=180317
+
+        Reviewed by Zalan Bujtas.
+
+        Add an RAII IOSurface::Locker which can lock readonly or readwrite. Access
+        to the IOSurface base address is through the locker.
+        
+        Add IOSurface::bytesPerRow() to wrap IOSurfaceGetBytesPerRow().
+        
+        After this, there is only one location where we access the IOSurfaceRef
+        directly, in WebGL code.
+
+        * platform/graphics/cg/ImageBufferDataCG.cpp:
+        (WebCore::ImageBufferData::toBGRAData const):
+        (WebCore::ImageBufferData::getData const):
+        (WebCore::ImageBufferData::putData):
+        * platform/graphics/cocoa/IOSurface.h:
+        * platform/graphics/cocoa/IOSurface.mm:
+        (WebCore::IOSurface::bytesPerRow const):
+
+2017-12-02  Simon Fraser  <simon.fraser@apple.com>
+
+        Add an AlphaPremultiplication enum and use it consistently
+        https://bugs.webkit.org/show_bug.cgi?id=180316
+
+        Reviewed by Zalan Bujtas.
+
+        ImageBuffer-related code sometimes used the 'Multiply' enum, and sometimes
+        a bool to represent alpha premultiplication. Make an enum class and use it
+        everywhere. Re-order and rename some parameters to clarify the meaning of this
+        argument.
+
+        * html/canvas/CanvasRenderingContext2D.cpp:
+        (WebCore::CanvasRenderingContext2D::putImageData):
+        * platform/graphics/GraphicsTypes.cpp:
+        (WebCore::operator<<):
+        * platform/graphics/GraphicsTypes.h:
+        * platform/graphics/ImageBuffer.cpp:
+        (WebCore::ImageBuffer::genericConvertToLuminanceMask):
+        * platform/graphics/ImageBuffer.h:
+        * platform/graphics/ShadowBlur.cpp:
+        (WebCore::ShadowBlur::blurShadowBuffer):
+        * platform/graphics/cairo/ImageBufferCairo.cpp:
+        (WebCore::getImageData):
+        (WebCore::ImageBuffer::getUnmultipliedImageData const):
+        (WebCore::ImageBuffer::getPremultipliedImageData const):
+        (WebCore::ImageBuffer::putByteArray):
+        * platform/graphics/cg/ImageBufferCG.cpp:
+        (WebCore::ImageBuffer::getUnmultipliedImageData const):
+        (WebCore::ImageBuffer::getPremultipliedImageData const):
+        (WebCore::ImageBuffer::putByteArray):
+        * platform/graphics/cg/ImageBufferDataCG.cpp:
+        (WebCore::ImageBufferData::getData const):
+        (WebCore::ImageBufferData::putData):
+        * platform/graphics/cg/ImageBufferDataCG.h:
+        * platform/graphics/filters/FEColorMatrix.cpp:
+        (WebCore::FEColorMatrix::platformApplySoftware):
+        * platform/graphics/filters/FEDropShadow.cpp:
+        (WebCore::FEDropShadow::platformApplySoftware):
+        * platform/graphics/filters/FilterEffect.cpp:
+        (WebCore::FilterEffect::imageBufferResult):
+        * platform/graphics/win/ImageBufferDataDirect2D.cpp:
+        (WebCore::ImageBufferData::getData const):
+        (WebCore::ImageBufferData::putData):
+        * platform/graphics/win/ImageBufferDataDirect2D.h:
+        * platform/graphics/win/ImageBufferDirect2D.cpp:
+        (WebCore::ImageBuffer::getUnmultipliedImageData const):
+        (WebCore::ImageBuffer::getPremultipliedImageData const):
+        (WebCore::ImageBuffer::putByteArray):
+
+2017-12-02  Youenn Fablet  <youenn@apple.com>
+
+        Implement https://w3c.github.io/ServiceWorker/#clients-getall
+        https://bugs.webkit.org/show_bug.cgi?id=180276
+
+        Reviewed by Chris Dumez.
+
+        Test: http/tests/workers/service/serviceworkerclients-matchAll.https.html
+
+        Move Clients QueryOptions to its own class since it is used by various parties.
+        Add encoder/decoder routines.
+
+        Add a ServieWorkerClientInformation which replaces SWServer::ClientInformation structure.
+        This is what is sent back as a result to matchAll requests.
+        Add encoder/decoder routines.
+
+        Implement matchAll by hopping to the main thread, making IPC to the storage process.
+        SWServer in storage process then iterates through the relevant service workers and does some filtering.
+        Additional filtering and information should be gathered in future patches to fully implement the algorithm.
+
+        Add to SWServer a HashMap to easily identify by which service worker a client is controlled, if any.
+        This map is updated at the same time registrations are updated.
+
+        matchAll is given a callback as in the future, window client information will be retrieved asynchronously.
+
+        * WebCore.xcodeproj/project.pbxproj:
+        * workers/service/ServiceWorkerClientInformation.h: Added.
+        (WebCore::ServiceWorkerClientInformation::isolatedCopy const):
+        (WebCore::ServiceWorkerClientInformation::encode const):
+        (WebCore::ServiceWorkerClientInformation::decode):
+        * workers/service/ServiceWorkerClientQueryOptions.h: Added.
+        (WebCore::ServiceWorkerClientQueryOptions::encode const):
+        (WebCore::ServiceWorkerClientQueryOptions::decode):
+        * workers/service/ServiceWorkerClients.cpp:
+        (WebCore::ServiceWorkerClients::matchAll):
+        * workers/service/ServiceWorkerClients.h:
+        * workers/service/context/SWContextManager.h:
+        * workers/service/server/SWServer.cpp:
+        (WebCore::SWServer::matchAll):
+        (WebCore::SWServer::registerServiceWorkerClient):
+        * workers/service/server/SWServer.h:
+        * workers/service/server/SWServerToContextConnection.cpp:
+        (WebCore::SWServerToContextConnection::matchAll):
+        * workers/service/server/SWServerToContextConnection.h:
+        * workers/service/server/SWServerWorker.cpp:
+        (WebCore::SWServerWorker::matchAll):
+        * workers/service/server/SWServerWorker.h:
+
+2017-12-02  Brady Eidson  <beidson@apple.com>
+
+        Factor out the "databaseTaskQueue" parts of IDBServer into something reusable.
+        https://bugs.webkit.org/show_bug.cgi?id=180298
+
+        Reviewed by Chris Dumez.
+
+        No new tests (Refactor only).
+
+        * Modules/indexeddb/server/IDBServer.cpp:
+        (WebCore::IDBServer::IDBServer::IDBServer):
+        (WebCore::IDBServer::IDBServer::postDatabaseTask):
+        (WebCore::IDBServer::IDBServer::postDatabaseTaskReply):
+        (WebCore::IDBServer::IDBServer::databaseRunLoop): Deleted.
+        (WebCore::IDBServer::IDBServer::handleTaskRepliesOnMainThread): Deleted.
+        * Modules/indexeddb/server/IDBServer.h:
+        (): Deleted.
+
+2017-12-02  Simon Fraser  <simon.fraser@apple.com>
+
+        Add a log channel for viewports
+        https://bugs.webkit.org/show_bug.cgi?id=180295
+
+        Reviewed by Zalan Bujtas.
+
+        Add a "Viewports" log channel to log viewport scaling information, and enhance the
+        WebKit "VisibleRects" channel to log additional data for the same reason.
+
+        * dom/Document.cpp:
+        (WebCore::Document::processViewport):
+        * loader/FrameLoader.cpp:
+        (WebCore::FrameLoader::finishedParsing):
+        (WebCore::FrameLoader::completed):
+        * page/FrameView.cpp:
+        (WebCore::FrameView::resetScrollbarsAndClearContentsSize):
+        (WebCore::FrameView::scrollToAnchor):
+        (WebCore::FrameView::maintainScrollPositionAtAnchor):
+        (WebCore::FrameView::setScrollPosition):
+        (WebCore::FrameView::autoSizeIfEnabled):
+        (WebCore::FrameView::setWasScrolledByUser):
+        * page/LayoutContext.cpp:
+        (WebCore::LayoutContext::layout):
+        * page/Page.cpp:
+        (WebCore::Page::setPageScaleFactor):
+        * page/ViewportConfiguration.cpp:
+        (WebCore::ViewportConfiguration::setContentsSize):
+        (WebCore::ViewportConfiguration::setViewportArguments):
+        (WebCore::ViewportConfiguration::updateConfiguration):
+        (WebCore::operator<<):
+        (WebCore::ViewportConfiguration::description const):
+        (WebCore::ViewportConfiguration::dump const):
+        * page/ViewportConfiguration.h:
+        * platform/Logging.h:
+        * platform/ScrollView.cpp:
+        (WebCore::ScrollView::setFixedLayoutSize):
+
+2017-12-01  Alicia Boya García  <aboya@igalia.com>
+
+        [MSE] Use correct range end checks in sourceBufferPrivateDidReceiveSample()
+        https://bugs.webkit.org/show_bug.cgi?id=179690
+
+        Reviewed by Jer Noble.
+
+        The Coded Frame Processing algorithm as defined in
+        https://www.w3.org/TR/media-source/#sourcebuffer-coded-frame-processing states:
+
+        1.14. Remove existing coded frames in track buffer:
+         -> If highest end timestamp for track buffer is not set:
+               [...]
+         -> If highest end timestamp for track buffer is set and less than or
+            equal to presentation timestamp:
+               Remove all coded frames from track buffer that have a
+               presentation timestamp greater than or equal to highest end
+               timestamp and less than frame end timestamp.
+
+        Note the removal range is closed-open [a, b). WebKit is actually removing
+        frames using an open-closed range (a, b], which causes frames not to be removed
+        in situations where they should and frames to be removed in situations when
+        they should not.
+
+        Tests: media/media-source/media-source-range-end-frame-not-removed.html
+               media/media-source/media-source-range-start-frame-replaced.html
+
+        * Modules/mediasource/SampleMap.cpp:
+        (WebCore::PresentationOrderSampleMap::findSamplesBetweenPresentationTimesFromEnd):
+        * Modules/mediasource/SampleMap.h:
+        * Modules/mediasource/SourceBuffer.cpp:
+        (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):
+
+2017-12-01  Simon Fraser  <simon.fraser@apple.com>
+
+        Reduce the number of calls to ViewportConfiguration::updateConfiguration()
+        https://bugs.webkit.org/show_bug.cgi?id=180299
+
+        Reviewed by Zalan Bujtas.
+
+        There are several calls to ViewportConfiguration::setDefaultConfiguration() during loading
+        with the same arguments. We can avoid unnecessary calls to updateConfiguration() by returning
+        early if the configuration hasn't changed.
+
+        * page/ViewportConfiguration.cpp:
+        (WebCore::ViewportConfiguration::setDefaultConfiguration):
+        * page/ViewportConfiguration.h:
+        (WebCore::ViewportConfiguration::Parameters::operator== const):
+
+2017-12-01  Aishwarya Nirmal  <anirmal@apple.com>
+
+        [Touch Bar Web API] Object representing Touch Bar Menu to send between Web and UI Processes
+        https://bugs.webkit.org/show_bug.cgi?id=179714
+
+        Reviewed by Wenson Hsieh.
+
+        These changes allow the HTMLMenuElement and HTMLMenuItemElement to parse attributes relating
+        to the touch bar and convey changes to the elements that will eventually be propogated to the
+        UI process.
+
+        No new tests at this point because the changes to HTMLMenuElement and HTMLMenuItemElement are
+        new properties, which might not be worth testing, and overriden methods for insertedIntoAncestor
+        and removedFromAncestor, which are involved in sending a message to a UI process but might be
+        difficult to test at this point since the UI process only receives (and does not yet process)
+        the message.
+
+        * html/HTMLMenuElement.cpp:
+        (WebCore::HTMLMenuElement::insertedIntoAncestor):
+        (WebCore::HTMLMenuElement::removedFromAncestor):
+        (WebCore::HTMLMenuElement::parseAttribute):
+        * html/HTMLMenuElement.h:
+        * html/HTMLMenuItemElement.cpp:
+        (WebCore::HTMLMenuItemElement::insertedIntoAncestor):
+        (WebCore::HTMLMenuItemElement::removedFromAncestor):
+        * html/HTMLMenuItemElement.h:
+        * page/ChromeClient.h:
+
+2017-12-01  Daniel Bates  <dabates@apple.com>
+
+        AlternativePresentationButtonSubstitution::unapply() may not undo substitution
+        https://bugs.webkit.org/show_bug.cgi?id=180279
+        <rdar://problem/35800599>
+
+        Reviewed by Simon Fraser.
+
+        Fixes an issue where removing an alternative presentation button substituted for a non-HTML input
+        element did not restore the original appearance of the element before the substitution.
+
+        To substitute the alternative presentation button for a non-HTML input element we attach a
+        user-agent shadow root to it. Adding a shadow root, including a user-agent shadow root,
+        tears down the existing renderers for the element. Currently when we unapply such a substitution
+        we ultimately just remove the shadow root and do not create new renderers for the subtree
+        that the shadow root was removed from. We need to create new renderers for this subtree
+        to restore the original appearance of the element before the substitution.
+
+        * editing/cocoa/AlternativePresentationButtonSubstitution.cpp:
+        (WebCore::AlternativePresentationButtonSubstitution::unapply):
+
+2017-12-01  Christopher Reid  <chris.reid@sony.com>
+
+        Move DateComponents into WTF
+        https://bugs.webkit.org/show_bug.cgi?id=180211
+
+        Reviewed by Myles C. Maxfield.
+
+        No new tests no change in behavior.
+
+        Moved DateComponents from platform into WTF.
+
+        * Sources.txt: Removed DateComponents
+        * WebCore.xcodeproj/project.pbxproj: Removed DateComponents
+        * dom/Document.cpp:
+        * html/BaseDateAndTimeInputType.h:
+        * html/DateTimeInputType.h: Fixed a call to the wrong parent constructor
+        * html/HTMLInputElement.h:
+        * html/InputType.cpp:
+        * html/InputType.h:
+        * platform/text/PlatformLocale.cpp:
+        * platform/text/PlatformLocale.h:
+        * platform/text/ios/LocalizedDateCache.h:
+        * platform/text/mac/LocaleMac.h:
+        * platform/text/win/LocaleWin.cpp:
+        * platform/text/win/LocaleWin.h:
+        * rendering/RenderThemeIOS.mm:
+
+2017-12-01  Daniel Bates  <dabates@apple.com>
+
+        Alternative Presentation Button: Provide a way to query for the replaced elements
+        https://bugs.webkit.org/show_bug.cgi?id=180114
+        <rdar://problem/35710539>
+
+        Reviewed by Tim Horton.
+
+        Add SPI to query for the elements that were replaced by an Alternative Presentation Button.
+
+        Test: fast/forms/alternative-presentation-button/replaced-elements.html
+
+        * editing/Editor.cpp:
+        (WebCore::Editor::elementsReplacedByAlternativePresentationButton): Added.
+        * editing/Editor.h:
+        * editing/cocoa/AlternativePresentationButtonSubstitution.cpp:
+        (WebCore::AlternativePresentationButtonSubstitution::replacedElements): Added.
+        * editing/cocoa/AlternativePresentationButtonSubstitution.h:
+        * testing/Internals.cpp:
+        (WebCore::Internals::elementsReplacedByAlternativePresentationButton): Added.
+        * testing/Internals.h:
+        * testing/Internals.idl: Expose internals function elementsReplacedByAlternativePresentationButton()
+        so as to test Editor::elementsReplacedByAlternativePresentationButton().
+
+2017-12-01  Said Abou-Hallawa  <sabouhallawa@apple.com>
+
+        Rename ImageFrameCache to ImageSource
+        https://bugs.webkit.org/show_bug.cgi?id=180172
+
+        Reviewed by Per Arne Vollan.
+
+        This is a follow-up for r225300. ImageSource is the intended name after
+        merging ImageFrameCache and ImageSource.
+
+        * Sources.txt:
+        * WebCore.xcodeproj/project.pbxproj:
+        * platform/graphics/BitmapImage.cpp:
+        (WebCore::BitmapImage::BitmapImage):
+        * platform/graphics/BitmapImage.h:
+        * platform/graphics/ImageFrame.h:
+        * platform/graphics/ImageFrameCache.cpp: Removed.
+        * platform/graphics/ImageFrameCache.h: Removed.
+        * platform/graphics/ImageSource.cpp: Added.
+        (WebCore::ImageSource::ImageSource):
+        (WebCore::ImageSource::~ImageSource):
+        (WebCore::ImageSource::ensureDecoderAvailable):
+        (WebCore::ImageSource::setData):
+        (WebCore::ImageSource::resetData):
+        (WebCore::ImageSource::dataChanged):
+        (WebCore::ImageSource::isAllDataReceived):
+        (WebCore::ImageSource::destroyDecodedData):
+        (WebCore::ImageSource::destroyIncompleteDecodedData):
+        (WebCore::ImageSource::clearFrameBufferCache):
+        (WebCore::ImageSource::decodedSizeChanged):
+        (WebCore::ImageSource::decodedSizeIncreased):
+        (WebCore::ImageSource::decodedSizeDecreased):
+        (WebCore::ImageSource::decodedSizeReset):
+        (WebCore::ImageSource::didDecodeProperties):
+        (WebCore::ImageSource::growFrames):
+        (WebCore::ImageSource::setNativeImage):
+        (WebCore::ImageSource::cacheMetadataAtIndex):
+        (WebCore::ImageSource::cacheNativeImageAtIndex):
+        (WebCore::ImageSource::cacheNativeImageAtIndexAsync):
+        (WebCore::ImageSource::decodingQueue):
+        (WebCore::ImageSource::frameRequestQueue):
+        (WebCore::ImageSource::canUseAsyncDecoding):
+        (WebCore::ImageSource::startAsyncDecodingQueue):
+        (WebCore::ImageSource::requestFrameAsyncDecodingAtIndex):
+        (WebCore::ImageSource::isAsyncDecodingQueueIdle const):
+        (WebCore::ImageSource::stopAsyncDecodingQueue):
+        (WebCore::ImageSource::frameAtIndexCacheIfNeeded):
+        (WebCore::ImageSource::clearMetadata):
+        (WebCore::ImageSource::sourceURL const):
+        (WebCore::ImageSource::mimeType const):
+        (WebCore::ImageSource::expectedContentLength const):
+        (WebCore::ImageSource::metadata):
+        (WebCore::ImageSource::frameMetadataAtIndex):
+        (WebCore::ImageSource::frameMetadataAtIndexCacheIfNeeded):
+        (WebCore::ImageSource::encodedDataStatus):
+        (WebCore::ImageSource::frameCount):
+        (WebCore::ImageSource::repetitionCount):
+        (WebCore::ImageSource::uti):
+        (WebCore::ImageSource::filenameExtension):
+        (WebCore::ImageSource::hotSpot):
+        (WebCore::ImageSource::size):
+        (WebCore::ImageSource::sizeRespectingOrientation):
+        (WebCore::ImageSource::singlePixelSolidColor):
+        (WebCore::ImageSource::maximumSubsamplingLevel):
+        (WebCore::ImageSource::frameIsBeingDecodedAndIsCompatibleWithOptionsAtIndex):
+        (WebCore::ImageSource::frameDecodingStatusAtIndex):
+        (WebCore::ImageSource::frameHasAlphaAtIndex):
+        (WebCore::ImageSource::frameHasFullSizeNativeImageAtIndex):
+        (WebCore::ImageSource::frameHasDecodedNativeImageCompatibleWithOptionsAtIndex):
+        (WebCore::ImageSource::frameSubsamplingLevelAtIndex):
+        (WebCore::ImageSource::frameSizeAtIndex):
+        (WebCore::ImageSource::frameBytesAtIndex):
+        (WebCore::ImageSource::frameDurationAtIndex):
+        (WebCore::ImageSource::frameOrientationAtIndex):
+        (WebCore::ImageSource::setTargetContext):
+        (WebCore::ImageSource::createFrameImageAtIndex):
+        (WebCore::ImageSource::frameImageAtIndex):
+        (WebCore::ImageSource::frameImageAtIndexCacheIfNeeded):
+        (WebCore::ImageSource::dump):
+        * platform/graphics/ImageSource.h: Added.
+        (WebCore::ImageSource::create):
+        (WebCore::ImageSource::decodedSize const):
+        (WebCore::ImageSource::destroyAllDecodedData):
+        (WebCore::ImageSource::destroyAllDecodedDataExcludeFrame):
+        (WebCore::ImageSource::destroyDecodedDataBeforeFrame):
+        (WebCore::ImageSource::clearImage):
+        (WebCore::ImageSource::requestFrameAsyncDecodingAtIndex):
+        (WebCore::ImageSource::hasAsyncDecodingQueue const):
+        (WebCore::ImageSource::isSizeAvailable):
+        (WebCore::ImageSource::isDecoderAvailable const):
+        (WebCore::ImageSource::frameAtIndexCacheIfNeeded):
+        (WebCore::ImageSource::ImageFrameRequest::operator== const):
+        * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
+        (WebCore::GraphicsContext3D::ImageExtractor::extractImage):
+        * platform/graphics/cg/GraphicsContext3DCG.cpp:
+        (WebCore::GraphicsContext3D::ImageExtractor::extractImage):
+
+2017-12-01  Youenn Fablet  <youenn@apple.com>
+
+        Implement https://w3c.github.io/ServiceWorker/#clients-get
+        https://bugs.webkit.org/show_bug.cgi?id=180167
+
+        Reviewed by Chris Dumez.
+
+        Test: http/tests/workers/service/serviceworkerclients-get.https.html
+
+        Implement clients get by having service worker clients do the following:
+        - Go to main thread to query the SWClientConnection for getting the client.
+        - SWClientConnection requests it through IPC to StorageProcess SWServer.
+        - SWServer looks at its client map and returns client data based on the given identifier.
+        - SWClientConnection sends it back to the right clients for resolving the promise.
+
+        Identifier is parsed at service worker process level.
+
+        Made ServiceWorkerClients no longer an ActiveDOMObject since it is owned by ServiceWorkerGlobalScope
+        and is only exposed in service workers.
+
+        * workers/service/ServiceWorkerClientIdentifier.h:
+        (WebCore::ServiceWorkerClientIdentifier::fromString):
+        * workers/service/ServiceWorkerClients.cpp:
+        (WebCore::ServiceWorkerClients::ServiceWorkerClients):
+        (WebCore::ServiceWorkerClients::get):
+        * workers/service/ServiceWorkerClients.h:
+        (WebCore::ServiceWorkerClients::create):
+        * workers/service/context/SWContextManager.cpp:
+        (WebCore::SWContextManager::postTaskToServiceWorker):
+        * workers/service/context/SWContextManager.h:
+        * workers/service/server/SWServer.cpp:
+        (WebCore::SWServer::getClientFromId):
+        * workers/service/server/SWServer.h:
+        * workers/service/server/SWServerToContextConnection.cpp:
+        (WebCore::SWServerToContextConnection::findClientByIdentifier):
+        * workers/service/server/SWServerToContextConnection.h:
+        * workers/service/server/SWServerWorker.cpp:
+        (WebCore::SWServerWorker::origin const):
+        (WebCore::SWServerWorker::findClientByIdentifier):
+        * workers/service/server/SWServerWorker.h:
+
+2017-12-01  Brian Burg  <bburg@apple.com>
+
+        Web Inspector: move Inspector::Protocol::Array<T> to JSON namespace
+        https://bugs.webkit.org/show_bug.cgi?id=173662
+
+        Reviewed by Joseph Pecoraro.
+
+        Adopt new type names.
+
+        * inspector/InspectorCanvas.cpp:
+        (WebCore::InspectorCanvas::recordAction):
+        (WebCore::InspectorCanvas::releaseFrames):
+        (WebCore::InspectorCanvas::releaseData):
+        (WebCore::InspectorCanvas::indexForData):
+        (WebCore::buildArrayForAffineTransform):
+        (WebCore::buildArrayForVector):
+        (WebCore::InspectorCanvas::buildInitialState):
+        (WebCore::InspectorCanvas::buildAction):
+        (WebCore::InspectorCanvas::buildArrayForCanvasGradient):
+        (WebCore::InspectorCanvas::buildArrayForCanvasPattern):
+        (WebCore::InspectorCanvas::buildArrayForImageData):
+        (WebCore::InspectorCanvas::buildArrayForImageBitmap):
+        * inspector/InspectorCanvas.h:
+        * inspector/InspectorController.cpp:
+        (WebCore::InspectorController::buildObjectForHighlightedNodes const):
+        * inspector/InspectorController.h:
+        * inspector/InspectorOverlay.cpp:
+        (WebCore::buildObjectForHighlight):
+        (WebCore::InspectorOverlay::drawPaintRects):
+        (WebCore::buildArrayForRendererFragments):
+        (WebCore::buildObjectForElementData):
+        (WebCore::InspectorOverlay::buildHighlightObjectForNode const):
+        (WebCore::InspectorOverlay::buildObjectForHighlightedNodes const):
+        * inspector/InspectorOverlay.h:
+        * inspector/InspectorStyleSheet.cpp:
+        (WebCore::fillMediaListChain):
+        (WebCore::InspectorStyle::buildArrayForComputedStyle const):
+        (WebCore::InspectorStyle::styleWithProperties const):
+        (WebCore::buildObjectForSelectorHelper):
+        (WebCore::selectorsFromSource):
+        (WebCore::InspectorStyleSheet::buildObjectForSelectorList):
+        (WebCore::InspectorStyleSheet::buildObjectForRule):
+        (WebCore::InspectorStyleSheet::buildObjectForStyle):
+        (WebCore::InspectorStyleSheet::buildArrayForRuleList):
+        * inspector/InspectorStyleSheet.h:
+        * inspector/agents/InspectorApplicationCacheAgent.cpp:
+        (WebCore::InspectorApplicationCacheAgent::getFramesWithManifests):
+        (WebCore::InspectorApplicationCacheAgent::buildArrayForApplicationCacheResources):
+        * inspector/agents/InspectorApplicationCacheAgent.h:
+        * inspector/agents/InspectorCSSAgent.cpp:
+        (WebCore::InspectorCSSAgent::getMatchedStylesForNode):
+        (WebCore::InspectorCSSAgent::getComputedStyleForNode):
+        (WebCore::InspectorCSSAgent::getAllStyleSheets):
+        (WebCore::InspectorCSSAgent::getSupportedCSSProperties):
+        (WebCore::InspectorCSSAgent::getSupportedSystemFontFamilyNames):
+        (WebCore::InspectorCSSAgent::buildArrayForMatchedRuleList):
+        * inspector/agents/InspectorCSSAgent.h:
+        * inspector/agents/InspectorCanvasAgent.cpp:
+        (WebCore::InspectorCanvasAgent::requestCSSCanvasClientNodes):
+        * inspector/agents/InspectorCanvasAgent.h:
+        * inspector/agents/InspectorDOMAgent.cpp:
+        (WebCore::InspectorDOMAgent::querySelectorAll):
+        (WebCore::InspectorDOMAgent::pushNodePathToFrontend):
+        (WebCore::InspectorDOMAgent::getEventListenersForNode):
+        (WebCore::InspectorDOMAgent::getSearchResults):
+        (WebCore::InspectorDOMAgent::getAttributes):
+        (WebCore::InspectorDOMAgent::buildObjectForNode):
+        (WebCore::InspectorDOMAgent::buildArrayForElementAttributes):
+        (WebCore::InspectorDOMAgent::buildArrayForContainerChildren):
+        (WebCore::InspectorDOMAgent::buildArrayForPseudoElements):
+        (WebCore::InspectorDOMAgent::processAccessibilityChildren):
+        (WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
+        (WebCore::InspectorDOMAgent::styleAttributeInvalidated):
+        * inspector/agents/InspectorDOMAgent.h:
+        * inspector/agents/InspectorDOMStorageAgent.cpp:
+        (WebCore::InspectorDOMStorageAgent::getDOMStorageItems):
+        * inspector/agents/InspectorDOMStorageAgent.h:
+        * inspector/agents/InspectorDatabaseAgent.cpp:
+        (WebCore::InspectorDatabaseAgent::getDatabaseTableNames):
+        * inspector/agents/InspectorDatabaseAgent.h:
+        * inspector/agents/InspectorIndexedDBAgent.cpp:
+        (WebCore::Inspector::keyPathFromIDBKeyPath):
+        (WebCore::InspectorIndexedDBAgent::requestDatabaseNames):
+        * inspector/agents/InspectorLayerTreeAgent.cpp:
+        (WebCore::InspectorLayerTreeAgent::layersForNode):
+        (WebCore::InspectorLayerTreeAgent::gatherLayersUsingRenderObjectHierarchy):
+        (WebCore::InspectorLayerTreeAgent::gatherLayersUsingRenderLayerHierarchy):
+        * inspector/agents/InspectorLayerTreeAgent.h:
+        * inspector/agents/InspectorMemoryAgent.cpp:
+        (WebCore::InspectorMemoryAgent::collectSample):
+        * inspector/agents/InspectorNetworkAgent.cpp:
+        (WebCore::InspectorNetworkAgent::searchOtherRequests):
+        (WebCore::InspectorNetworkAgent::searchInRequest):
+        * inspector/agents/InspectorNetworkAgent.h:
+        * inspector/agents/InspectorPageAgent.cpp:
+        (WebCore::buildArrayForCookies):
+        (WebCore::InspectorPageAgent::getCookies):
+        (WebCore::InspectorPageAgent::searchInResource):
+        (WebCore::InspectorPageAgent::searchInResources):
+        (WebCore::InspectorPageAgent::buildObjectForFrameTree):
+        * inspector/agents/InspectorPageAgent.h:
+        * inspector/agents/WebConsoleAgent.cpp:
+        (WebCore::WebConsoleAgent::getLoggingChannels):
+        * inspector/agents/WebConsoleAgent.h:
+
+2017-12-01  Wenson Hsieh  <wenson_hsieh@apple.com>
+
+        [Attachment Support] Implement SPI for clients to update a given attachment's data
+        https://bugs.webkit.org/show_bug.cgi?id=180184
+        <rdar://problem/35355731>
+
+        Reviewed by Tim Horton.
+
+        Add native API support for Mail to update the data (and optionally, the name and type) of a given attachment
+        element. See per-method comments below for more detail.
+
+        Test: WKAttachmentTests.ChangeAttachmentDataAndFileInformation
+              WKAttachmentTests.ChangeAttachmentDataUpdatesWithInPlaceDisplay
+
+        * editing/Editor.cpp:
+        (WebCore::Editor::insertAttachment):
+        * html/HTMLAttachmentElement.cpp:
+        (WebCore::HTMLAttachmentElement::setFile):
+        (WebCore::HTMLAttachmentElement::invalidateShadowRootChildrenIfNecessary):
+
+        Pull out logic to hide and reset shadow DOM state into a separate helper, and additionally hide both the image
+        and video child elements if they exist. This prevents us from getting into a state where both image and video
+        elements may appear side-by-side when changing data from an image to a video or vice versa.
+
+        (WebCore::HTMLAttachmentElement::updateFileWithData):
+
+        Add a new helper to update the backing File of an attachment element from data, optionally updating the filename
+        and content type as well.
+
+        (WebCore::HTMLAttachmentElement::populateShadowRootIfNecessary):
+        * html/HTMLAttachmentElement.h:
+
+2017-12-01  Chris Dumez  <cdumez@apple.com>
+
+        Get rid of microtask in ServiceWorkerContainer::jobResolvedWithRegistration()
+        https://bugs.webkit.org/show_bug.cgi?id=180263
+
+        Reviewed by Youenn Fablet.
+
+        Get rid of microtask in ServiceWorkerContainer::jobResolvedWithRegistration(). It
+        is no longer needed and MicrotaskQueue::mainThreadQueue() is only safe to use from
+        the main thread, as its name suggest. ServiceWorkerContainer are also instantiated
+        in Service worker threads nowadays.
+
+        * workers/service/SWClientConnection.cpp:
+        (WebCore::SWClientConnection::registrationJobResolvedInServer):
+        * workers/service/ServiceWorkerContainer.cpp:
+        (WebCore::ServiceWorkerContainer::jobResolvedWithRegistration):
+        * workers/service/ServiceWorkerContainer.h:
+        * workers/service/ServiceWorkerJob.cpp:
+        (WebCore::ServiceWorkerJob::resolvedWithRegistration):
+        * workers/service/ServiceWorkerJob.h:
+        * workers/service/ServiceWorkerJobClient.h:
+
+2017-12-01  Myles C. Maxfield  <mmaxfield@apple.com>
+
+        Free FontFaceSets may include fonts that were never actually added to them
+        https://bugs.webkit.org/show_bug.cgi?id=180164
+
+        Reviewed by Simon Fraser.
+
+        There are two circumstances where this can occur:
+
+        - If script makes a so-called "free" FontFaceSet, by using "new FontFaceSet". This object is not
+        associated with the document, and should therefore only include fonts which have been manually
+        added to it from script. However, today, this object includes preinstalled fonts which have the
+        same names as any fonts manually added to it. (So, if you manually add "Helvetica", the object
+        would have two objects - the one you just added and the preinstalled version too).
+
+        - For the document's FontFaceSet, the same thing would happen. This one is a little trickier
+        because the spec is not clear whether or not the document's FontFaceSet should include these
+        preinstalled fonts. However, running this test in Firefox and Chrome, they both agree that 
+        preinstalled fonts should not be present, so this patch adheres to this behavior.
+
+        We can't actually remove the preinstalled fonts from the document's FontFaceSet (because that's
+        how normal font lookups are performed), but we can filter them out at the point they meet the
+        Javascript API. And, for "free" FontFaceSets, we can avoid adding them in the first place for
+        performance.
+
+        Test: fast/text/font-face-api-preinstalled.html
+
+        * css/CSSFontFaceSet.cpp:
+        (WebCore::CSSFontFaceSet::CSSFontFaceSet):
+        (WebCore::CSSFontFaceSet::ensureLocalFontFacesForFamilyRegistered):
+        (WebCore::CSSFontFaceSet::addToFacesLookupTable):
+        (WebCore::CSSFontFaceSet::matchingFacesExcludingPreinstalledFonts):
+        (WebCore::CSSFontFaceSet::check):
+        (WebCore::CSSFontFaceSet::matchingFaces): Deleted.
+        * css/CSSFontFaceSet.h:
+        * css/CSSFontSelector.cpp:
+        (WebCore::CSSFontSelector::CSSFontSelector):
+        * css/FontFaceSet.cpp:
+        (WebCore::FontFaceSet::load):
+
+2017-12-01  Dean Jackson  <dino@apple.com>
+
+        Attempted build fix.
+
+        * platform/graphics/ANGLEWebKitBridge.cpp:
+        (WebCore::ANGLEWebKitBridge::compileShaderSource):
+        * platform/graphics/ANGLEWebKitBridge.h:
+        * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
+        (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE):
+
+2017-12-01  Dean Jackson  <dino@apple.com>
+
+        Use SH_INITIALIZE_UNINITIALIZED_LOCALS now that ANGLE has been updated
+        https://bugs.webkit.org/show_bug.cgi?id=177929
+        <rdar://problem/34866210>
+
+        Reviewed by Sam Weinig.
+
+        Test: fast/canvas/webgl/uninitialized-locals.html
+
+        * platform/graphics/ANGLEWebKitBridge.cpp:
+        (WebCore::ANGLEWebKitBridge::compileShaderSource):
+        * platform/graphics/ANGLEWebKitBridge.h:
+        * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
+        (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE):
+
+2017-12-01  Youenn Fablet  <youenn@apple.com>
+
+        Many imported/w3c/web-platform-tests/service-workers/ test are failing together intermittently
+        https://bugs.webkit.org/show_bug.cgi?id=180227
+
+        Reviewed by Mark Lam.
+
+        No observable change.
+
+        * bindings/js/JSDOMPromise.cpp:
+        (WebCore::callFunction):
+
+2017-12-01  Brady Eidson  <beidson@apple.com>
+
+        Add Internals.terminateServiceWorker, and the ability to restart service workers for postMessage.
+        https://bugs.webkit.org/show_bug.cgi?id=180170
+
+        Reviewed by Chris Dumez.
+
+        Test: http/tests/workers/service/postmessage-after-terminate.https.html
+
+        * dom/ActiveDOMObject.cpp:
+        (WebCore::ActiveDOMObject::~ActiveDOMObject):
+
+        * testing/Internals.cpp:
+        (WebCore::Internals::terminateServiceWorker):
+        * testing/Internals.h:
+        * testing/Internals.idl:
+
+        * workers/service/SWClientConnection.h:
+
+        * workers/service/ServiceWorker.idl:
+
+        * workers/service/context/SWContextManager.cpp:
+        (WebCore::SWContextManager::postMessageToServiceWorkerGlobalScope):
+        (WebCore::SWContextManager::terminateWorker):
+        * workers/service/context/SWContextManager.h:
+
+        * workers/service/context/ServiceWorkerThreadProxy.h:
+
+        * workers/service/server/SWServer.cpp:
+        (WebCore::SWServer::workerByID const):
+        (WebCore::SWServer::Connection::syncTerminateWorker):
+        (WebCore::SWServer::installContextData):
+        (WebCore::SWServer::invokeRunServiceWorker):
+        (WebCore::SWServer::terminateWorker):
+        (WebCore::SWServer::syncTerminateWorker):
+        (WebCore::SWServer::terminateWorkerInternal):
+        (WebCore::SWServer::workerContextTerminated):
+        * workers/service/server/SWServer.h:
+        (WebCore::SWServer::workerByID const): Deleted.
+
+        * workers/service/server/SWServerToContextConnection.h:
+
+        * workers/service/server/SWServerWorker.cpp:
+        (WebCore::SWServerWorker::contextData const):
+        * workers/service/server/SWServerWorker.h:
+        (WebCore::SWServerWorker::isRunning const):
+        (WebCore::SWServerWorker::isTerminating const):
+        (WebCore::SWServerWorker::setState):
+        (WebCore::SWServerWorker::server):
+
+2017-12-01  Zalan Bujtas  <zalan@apple.com>
+
+        Nullptr deref in WebCore::RenderTableCaption::containingBlockLogicalWidthForContent
+        https://bugs.webkit.org/show_bug.cgi?id=180251
+        <rdar://problem/34138562>
+
+        Reviewed by Simon Fraser.
+
+        containingBlockLogicalWidthForContent should check whether the renderer is actually
+        attached to the tree.
+
+        Test: fast/table/caption-crash-when-layer-backed.html
+
+        * rendering/RenderBoxModelObject.cpp:
+        (WebCore::RenderBoxModelObject::containingBlockLogicalWidthForContent const):
+        * rendering/RenderTableCaption.h:
+        (WebCore::RenderTableCaption::containingBlockLogicalWidthForContent const):
+
+2017-12-01  Youenn Fablet  <youenn@apple.com>
+
+        Clear WebSWClientConnection in case storage process IPC connection is closing
+        https://bugs.webkit.org/show_bug.cgi?id=180210
+
+        Reviewed by Chris Dumez.
+
+        No observable change of behavior.
+
+        * dom/Document.h: Keeping a ref since object may be deleted otherwise.
+
+2017-12-01  Chris Dumez  <cdumez@apple.com>
+
+        Drop clientCreationURL from ServiceWorkerRegistrationKey
+        https://bugs.webkit.org/show_bug.cgi?id=180255
+
+        Reviewed by Youenn Fablet.
+
+        Drop clientCreationURL from ServiceWorkerRegistrationKey. It is not needed and leads to
+        wrong behavior when using the Service Worker API from inside service workers.
+
+        * workers/service/ServiceWorkerJobData.cpp:
+        (WebCore::ServiceWorkerJobData::registrationKey const):
+        * workers/service/ServiceWorkerRegistrationKey.cpp:
+        (WebCore::ServiceWorkerRegistrationKey::ServiceWorkerRegistrationKey):
+        (WebCore::ServiceWorkerRegistrationKey::hash const):
+        (WebCore::ServiceWorkerRegistrationKey::operator== const):
+        (WebCore::ServiceWorkerRegistrationKey::isolatedCopy const):
+        (WebCore::ServiceWorkerRegistrationKey::loggingString const):
+        * workers/service/ServiceWorkerRegistrationKey.h:
+        (WebCore::ServiceWorkerRegistrationKey::scope const):
+        (WebCore::ServiceWorkerRegistrationKey::setScope):
+        (WebCore::ServiceWorkerRegistrationKey::encode const):
+        (WebCore::ServiceWorkerRegistrationKey::decode):
+        (WTF::HashTraits<WebCore::ServiceWorkerRegistrationKey>::constructDeletedValue):
+        (WTF::HashTraits<WebCore::ServiceWorkerRegistrationKey>::isDeletedValue):
+        (WebCore::ServiceWorkerRegistrationKey::clientCreationURL const): Deleted.
+        (WebCore::ServiceWorkerRegistrationKey::setClientCreationURL): Deleted.
+
+2017-12-01  Fujii Hironori  <Hironori.Fujii@sony.com>
+
+        [WinCairo] Wrongly placed scroll bars in HiDPI
+        https://bugs.webkit.org/show_bug.cgi?id=180066
+
+        Reviewed by Žan Doberšek.
+
+        PlatformContextCairo wasn't properly initialized. It should have a
+        pointer to GraphicsContextPrivate in WinCairo port to paint
+        controls in right places.
+
+        No new tests, no behavior change.
+
+        * platform/graphics/win/GraphicsContextCairoWin.cpp:
+        (WebCore::GraphicsContext::platformInit): Call PlatformContextCairo::setGraphicsContextPrivate.
+
+2017-12-01  Eric Carlson  <eric.carlson@apple.com>
+
+        [MediaStream] Use CaptureDevice instead of device ID to identify devices
+        https://bugs.webkit.org/show_bug.cgi?id=180206
+        <rdar://problem/35775758>
+
+        Reviewed by Youenn Fablet.
+
+        No new tests, no change in behavior.
+
+        * Modules/mediastream/UserMediaRequest.cpp:
+        (WebCore::UserMediaRequest::allow):
+        * Modules/mediastream/UserMediaRequest.h:
+        (WebCore::UserMediaRequest::allowedAudioDeviceUID const): Deleted.
+        (WebCore::UserMediaRequest::allowedVideoDeviceUID const): Deleted.
+        * platform/mediastream/RealtimeMediaSource.h:
+        * platform/mediastream/RealtimeMediaSourceCenter.cpp:
+        (WebCore::RealtimeMediaSourceCenter::createMediaStream):
+        (WebCore::RealtimeMediaSourceCenter::validateRequestConstraints):
+        * platform/mediastream/RealtimeMediaSourceCenter.h:
+        * platform/mediastream/mac/CoreAudioCaptureSource.cpp:
+        * platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:
+        * platform/mock/MockRealtimeAudioSource.cpp:
+        * platform/mock/MockRealtimeVideoSource.cpp:
+
+2017-11-30  Alex Christensen  <achristensen@webkit.org>
+
+        Extra PerformanceEntryList entry after iframe navigation
+        https://bugs.webkit.org/show_bug.cgi?id=178433
+
+        Reviewed by Joseph Pecoraro.
+
+        Test: http/tests/security/PerformanceEntryList-parent-only-first-navigation.html
+
+        When an iframe is loaded, its main resource load should be reported to the parent frame's PerformanceEntryList.
+        Subsequent main resource loads should not.
+
+        * loader/FrameLoader.h:
+        (WebCore::FrameLoader::shouldReportResourceTimingToParentFrame):
+        * loader/ResourceTimingInformation.cpp:
+        (WebCore::ResourceTimingInformation::addResourceTiming):
+
+2017-11-30  Zalan Bujtas  <zalan@apple.com>
+
+        [Simple line layout] Incorrect repaint rect with vertically shrinking content and bottom-padding.
+        https://bugs.webkit.org/show_bug.cgi?id=180223
+        <rdar://problem/34122210>
+
+        Reviewed by Simon Fraser.
+
+        Repaint rect should be extended all the way to bottom border/padding.
+
+        Test: fast/repaint/simple-line-layout-shrinking-content.html
+
+        * rendering/RenderBlockFlow.cpp:
+        (WebCore::RenderBlockFlow::layoutSimpleLines):
+
+2017-11-30  Stephan Szabo  <stephan.szabo@sony.com>
+
+        Make LegacyCustomProtocolManager optional for network process
+        https://bugs.webkit.org/show_bug.cgi?id=176230
+
+        Reviewed by Alex Christensen.
+
+        No new tests, only sets up feature define
+
+        * Configurations/FeatureDefines.xcconfig:
+
+2017-11-30  Joseph Pecoraro  <pecoraro@apple.com>
+
+        [Cocoa] Fix CVPixelBuffer leak
+        https://bugs.webkit.org/show_bug.cgi?id=180224
+
+        Reviewed by Youenn Fablet.
+
+        * platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.cpp:
+        (WebCore::RealtimeIncomingVideoSourceCocoa::pixelBufferFromVideoFrame):
+        Adopt the newly created pixel buffer.
+
+        (WebCore::RealtimeIncomingVideoSourceCocoa::OnFrame):
+        Release the format description as soon as we are done with it. Otherwise
+        we could have bailed before releasing it.
+
+2017-11-30  Simon Fraser  <simon.fraser@apple.com>
+
+        Improve filter logging
+        https://bugs.webkit.org/show_bug.cgi?id=180182
+
+        Reviewed by Sam Weinig.
+
+        Add a parameter to FilterEffect::externalRepresentation() so that we can log extra
+        data without breaking layout tests.
+
+        Add TextStream output for ColorSpace.
+        
+        Improve logging of FEComponentTransfer ComponentTransferFunctions by logging the data
+        that's appropriate for the function type, and rebaseline affected tests.
+
+        * platform/graphics/Color.cpp:
+        (WebCore::operator<<):
+        * platform/graphics/Color.h:
+        * platform/graphics/filters/FEBlend.cpp:
+        (WebCore::FEBlend::externalRepresentation const):
+        * platform/graphics/filters/FEBlend.h:
+        * platform/graphics/filters/FEColorMatrix.cpp:
+        (WebCore::FEColorMatrix::externalRepresentation const):
+        * platform/graphics/filters/FEColorMatrix.h:
+        * platform/graphics/filters/FEComponentTransfer.cpp:
+        (WebCore::operator<<):
+        (WebCore::FEComponentTransfer::externalRepresentation const):
+        * platform/graphics/filters/FEComponentTransfer.h:
+        * platform/graphics/filters/FEComposite.cpp:
+        (WebCore::FEComposite::externalRepresentation const):
+        * platform/graphics/filters/FEComposite.h:
+        * platform/graphics/filters/FEConvolveMatrix.cpp:
+        (WebCore::FEConvolveMatrix::externalRepresentation const):
+        * platform/graphics/filters/FEConvolveMatrix.h:
+        * platform/graphics/filters/FEDiffuseLighting.cpp:
+        (WebCore::FEDiffuseLighting::externalRepresentation const):
+        * platform/graphics/filters/FEDiffuseLighting.h:
+        * platform/graphics/filters/FEDisplacementMap.cpp:
+        (WebCore::FEDisplacementMap::externalRepresentation const):
+        * platform/graphics/filters/FEDisplacementMap.h:
+        * platform/graphics/filters/FEDropShadow.cpp:
+        (WebCore::FEDropShadow::externalRepresentation const):
+        * platform/graphics/filters/FEDropShadow.h:
+        * platform/graphics/filters/FEFlood.cpp:
+        (WebCore::FEFlood::externalRepresentation const):
+        * platform/graphics/filters/FEFlood.h:
+        * platform/graphics/filters/FEGaussianBlur.cpp:
+        (WebCore::FEGaussianBlur::externalRepresentation const):
+        * platform/graphics/filters/FEGaussianBlur.h:
+        * platform/graphics/filters/FEMerge.cpp:
+        (WebCore::FEMerge::externalRepresentation const):
+        * platform/graphics/filters/FEMerge.h:
+        * platform/graphics/filters/FEMorphology.cpp:
+        (WebCore::FEMorphology::externalRepresentation const):
+        * platform/graphics/filters/FEMorphology.h:
+        * platform/graphics/filters/FEOffset.cpp:
+        (WebCore::FEOffset::externalRepresentation const):
+        * platform/graphics/filters/FEOffset.h:
+        * platform/graphics/filters/FESpecularLighting.cpp:
+        (WebCore::FESpecularLighting::externalRepresentation const):
+        * platform/graphics/filters/FESpecularLighting.h:
+        * platform/graphics/filters/FETile.cpp:
+        (WebCore::FETile::externalRepresentation const):
+        * platform/graphics/filters/FETile.h:
+        * platform/graphics/filters/FETurbulence.cpp:
+        (WebCore::FETurbulence::externalRepresentation const):
+        * platform/graphics/filters/FETurbulence.h:
+        * platform/graphics/filters/FilterEffect.cpp:
+        (WebCore::FilterEffect::externalRepresentation const):
+        (WebCore::operator<<):
+        * platform/graphics/filters/FilterEffect.h:
+        * platform/graphics/filters/SourceAlpha.cpp:
+        (WebCore::SourceAlpha::externalRepresentation const):
+        * platform/graphics/filters/SourceAlpha.h:
+        * platform/graphics/filters/SourceGraphic.cpp:
+        (WebCore::SourceGraphic::externalRepresentation const):
+        * platform/graphics/filters/SourceGraphic.h:
+        * rendering/svg/RenderSVGResourceFilter.cpp:
+        (WebCore::RenderSVGResourceFilter::applyResource):
+        * svg/graphics/filters/SVGFEImage.cpp:
+        (WebCore::FEImage::externalRepresentation const):
+        * svg/graphics/filters/SVGFEImage.h:
+
+2017-11-30  Ryan Haddad  <ryanhaddad@apple.com>
+
+        Unreviewed build fix, removed unused lambda captures.
+
+        * workers/service/context/ServiceWorkerThread.cpp:
+        (WebCore::ServiceWorkerThread::postFetchTask):
+        (WebCore::ServiceWorkerThread::postMessageToServiceWorkerGlobalScope):
+
+2017-11-30  Chris Dumez  <cdumez@apple.com>
+
+        Move SWClientConnection class out of server/ folder
+        https://bugs.webkit.org/show_bug.cgi?id=180217
+
+        Reviewed by Brady Eidson.
+
+        Move SWClientConnection class out of server/ folder since the client connection
+        lives in the WebProcess, not the Storage process.
+
+        * Sources.txt:
+        * WebCore.xcodeproj/project.pbxproj:
+        * workers/service/SWClientConnection.cpp: Renamed from Source/WebCore/workers/service/server/SWClientConnection.cpp.
+        (WebCore::SWClientConnection::scheduleJob):
+        (WebCore::SWClientConnection::finishedFetchingScript):
+        (WebCore::SWClientConnection::failedFetchingScript):
+        (WebCore::SWClientConnection::jobRejectedInServer):
+        (WebCore::SWClientConnection::registrationJobResolvedInServer):
+        (WebCore::SWClientConnection::unregistrationJobResolvedInServer):
+        (WebCore::SWClientConnection::startScriptFetchForServer):
+        (WebCore::SWClientConnection::postMessageToServiceWorkerClient):
+        (WebCore::SWClientConnection::forEachContainer):
+        (WebCore::SWClientConnection::updateRegistrationState):
+        (WebCore::SWClientConnection::updateWorkerState):
+        (WebCore::SWClientConnection::fireUpdateFoundEvent):
+        (WebCore::SWClientConnection::notifyClientsOfControllerChange):
+        * workers/service/SWClientConnection.h: Renamed from Source/WebCore/workers/service/server/SWClientConnection.h.
+        * workers/service/ServiceWorkerContainer.cpp:
+
+2017-11-30  Chris Dumez  <cdumez@apple.com>
+
+        ServiceWorkerThread's m_extendedEvents gets destroyed on the wrong thread
+        https://bugs.webkit.org/show_bug.cgi?id=180216
+
+        Reviewed by Brady Eidson.
+
+        ServiceWorkerThread's m_extendedEvents gets destroyed on the wrong thread. Those events live on the worker
+        thread so we should destroy them on the worker thread, not the main thread. To address the issue, m_extendedEvents
+        was moved to ServiceWorkerGlobalScope, which actually lives on the right thread.
+
+        * workers/service/ServiceWorkerGlobalScope.cpp:
+        (WebCore::ServiceWorkerGlobalScope::updateExtendedEventsSet):
+        * workers/service/ServiceWorkerGlobalScope.h:
+        * workers/service/context/ServiceWorkerThread.cpp:
+        (WebCore::ServiceWorkerThread::postFetchTask):
+        (WebCore::ServiceWorkerThread::postMessageToServiceWorkerGlobalScope):
+        (WebCore::ServiceWorkerThread::updateExtendedEventsSet): Deleted.
+        * workers/service/context/ServiceWorkerThread.h:
+        (WebCore::ServiceWorkerThread::hasPendingEvents const): Deleted.
+
+2017-11-30  Chris Dumez  <cdumez@apple.com>
+
+        SWServerToContextConnection / SWServerWorker do not need to be ThreadSafeRefCounted
+        https://bugs.webkit.org/show_bug.cgi?id=180214
+
+        Reviewed by Brady Eidson.
+
+        SWServerToContextConnection / SWServerWorker do not need to be ThreadSafeRefCounted.
+        RefCounted is sufficient as there is no longer any multithreading on server side.
+
+        * workers/service/server/SWServerToContextConnection.h:
+        * workers/service/server/SWServerWorker.h:
+
+2017-11-30  Chris Dumez  <cdumez@apple.com>
+
+        ServiceWorkerGlobalScope::skipWaiting() should resolve its promise
+        https://bugs.webkit.org/show_bug.cgi?id=180204
+
+        Reviewed by Brady Eidson.
+
+        ServiceWorkerGlobalScope::skipWaiting() should resolve its promise, even if it is not
+        implemented yet. For now, always reject the promise.
+
+        * workers/service/ServiceWorkerGlobalScope.cpp:
+        (WebCore::ServiceWorkerGlobalScope::skipWaiting):
+
+2017-11-30  Chris Dumez  <cdumez@apple.com>
+
+        Mark a few heap-allocated service worker types as WTF_MAKE_FAST_ALLOCATED
+        https://bugs.webkit.org/show_bug.cgi?id=180212
+
+        Reviewed by Geoffrey Garen.
+
+        Mark a few heap-allocated service worker types as WTF_MAKE_FAST_ALLOCATED for performance.
+
+        * workers/service/server/SWOriginStore.h:
+        * workers/service/server/SWServer.h:
+        * workers/service/server/SWServerJobQueue.h:
+        * workers/service/server/SWServerRegistration.h:
+
+2017-11-30  Brady Eidson  <beidson@apple.com>
+
+        Make WorkerThread lifetime much more predictable.
+        https://bugs.webkit.org/show_bug.cgi?id=180203
+
+        Reviewed by Chris Dumez.
+
+        No new tests (Fixes flakiness in existing and future tests).
+
+        The family of classes related to Workers has a complicated ownership model.
+
+        For Dedicated Workers, the WorkerThread object is owned by the WorkerMessagingProxy,
+        which manages its own lifetime. Additionally, other object(s) have raw C++ references
+        to it, and the expected lifetimes are described in comments scattered through a few files.
+
+        What it boils down to is that the "Worker" DOM object - which lives on the main thread - 
+        is the key to the proper destruction of all of these objects.
+
+        For ServiceWorkers running in their own context process, there is no "Worker" on the main thread.
+
+        As a result, ServiceWorkers can get into a situation where their WorkerThread can be destroyed before
+        their ServiceWorkerGlobalScope is destroyed on the running background thread.
+
+        There's no reason to not have WorkerThread guarantee its own lifetime until its background thread
+        has actually completed.
+
+        * workers/WorkerThread.cpp:
+        (WebCore::WorkerThread::workerThread): Protect the WorkerThread object during the entire runtime
+          of the background thread itself, and release that protection on the main thread.
+        * workers/WorkerThread.h:
+
+2017-11-30  Chris Dumez  <cdumez@apple.com>
+
+        Populate self.registration.installing/waiting/active inside service workers
+        https://bugs.webkit.org/show_bug.cgi?id=180168
+
+        Reviewed by Brady Eidson.
+
+        Populate self.registration.installing/waiting/active inside service workers.
+        Also make sure the ServiceWorker's state properly gets updated inside
+        service workers.
+
+        No new tests, extended existing test for self.registration.
+
+        * workers/service/ServiceWorker.cpp:
+        (WebCore::ServiceWorker::scheduleTaskToUpdateState):
+        * workers/service/context/SWContextManager.cpp:
+        (WebCore::SWContextManager::forEachServiceWorkerThread):
+        * workers/service/context/SWContextManager.h:
+        * workers/service/context/ServiceWorkerThread.cpp:
+        (WebCore::ServiceWorkerThread::fireInstallEvent):
+        (WebCore::ServiceWorkerThread::fireActivateEvent):
+        * workers/service/server/SWClientConnection.cpp:
+        (WebCore::SWClientConnection::updateRegistrationState):
+        (WebCore::SWClientConnection::updateWorkerState):
+        (WebCore::SWClientConnection::fireUpdateFoundEvent):
+        * workers/service/server/SWClientConnection.h:
+
+2017-11-30  Chris Dumez  <cdumez@apple.com>
+
+        Rename RegistrationOptions to ServiceWorkerRegistrationOptions
+        https://bugs.webkit.org/show_bug.cgi?id=180207
+
+        Reviewed by Geoffrey Garen.
+
+        Rename RegistrationOptions to ServiceWorkerRegistrationOptions as the name
+        RegistrationOptions is too generic and likely to conflict. Also modernize
+        ServiceWorkerRegistrationOptions' IPC decoder.
+
+        * workers/service/ServiceWorkerContainer.h:
+        * workers/service/ServiceWorkerJobData.h:
+        (WebCore::ServiceWorkerJobData::decode):
+        * workers/service/ServiceWorkerRegistrationOptions.cpp:
+        (WebCore::ServiceWorkerRegistrationOptions::isolatedCopy const):
+        * workers/service/ServiceWorkerRegistrationOptions.h:
+        (WebCore::ServiceWorkerRegistrationOptions::encode const):
+        (WebCore::ServiceWorkerRegistrationOptions::decode):
+
+2017-11-30  Darin Adler  <darin@apple.com>
+
+        [Mac] remove unneeded RetainPtr use introduced in r225142
+        https://bugs.webkit.org/show_bug.cgi?id=180202
+
+        Reviewed by Tim Horton.
+
+        * editing/mac/DictionaryLookup.h: Changed out arguments back to NSDictionary ** instead
+        of RetainPtr because these use autorelease.
+
+        * editing/mac/DictionaryLookup.mm:
+        (WebCore::tokenRange): Use NSDictionary **.
+        (WebCore::DictionaryLookup::rangeForSelection): Ditto.
+        (WebCore::DictionaryLookup::rangeAtHitTestResult): Ditto.
+        (WebCore::DictionaryLookup::stringForPDFSelection): Ditto.
+
+2017-11-30  Chris Dumez  <cdumez@apple.com>
+
+        Mark ServiceWorkerGlobalScope as final
+        https://bugs.webkit.org/show_bug.cgi?id=180201
+
+        Reviewed by Alex Christensen.
+
+        * workers/service/ServiceWorkerGlobalScope.h:
+
+2017-11-30  Zan Dobersek  <zdobersek@igalia.com>
+
+        [CoordGraphics] Move CoordinatedGraphicsLayer painting behind Nicosia::PaintingEngine
+        https://bugs.webkit.org/show_bug.cgi?id=180141
+
+        Reviewed by Carlos Garcia Campos.
+
+        Introduce a painting engine concept that's used to perform painting
+        for a given GraphicsLayer object.
+
+        The Nicosia::PaintingEngine object is leveraged in the
+        CoordinatedGraphicsLayer::updateContentBuffers() method. It's retrieved
+        through the CoordinatedGraphicsLayerClient interface, with a new method
+        introduced there for this purpose.
+
+        The Nicosia::PaintingEngine interface is kept simple for now, with only
+        a single paint() method. The only current implementation is the
+        PaintingEngineBasic class, which simply reuses the code that was
+        previously in CoordinatedGraphicsLayer::updateContentBuffers(),
+        maintaining the current functionality.
+
+        The Nicosia::PaintingEngine::create() function returns a new
+        PaintingEngine object. For now it defaults to PaintingEngineBasic, but
+        it could be configured at configure-time or even runtime in the future
+        to return a more advanced engine implementation.
+
+        No new tests -- no change in behavior.
+
+        * platform/TextureMapper.cmake:
+        * platform/graphics/nicosia/NicosiaPaintingEngine.cpp: Added.
+        (Nicosia::PaintingEngine::create):
+        * platform/graphics/nicosia/NicosiaPaintingEngine.h: Added.
+        * platform/graphics/nicosia/NicosiaPaintingEngineBasic.cpp: Added.
+        (Nicosia::PaintingEngineBasic::paint):
+        * platform/graphics/nicosia/NicosiaPaintingEngineBasic.h: Added.
+        * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
+        (WebCore::CoordinatedGraphicsLayer::updateContentBuffers):
+        * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
+
+2017-11-30  Adrian Perez de Castro  <aperez@igalia.com>
+
+        [GStreamer] Builds fails with ENABLE_VIDEO=OFF due to GStreamer usage
+        https://bugs.webkit.org/show_bug.cgi?id=179373
+
+        Reviewed by Xabier Rodriguez-Calvar.
+
+        This allows to build with WebAudio enabled even if video support is
+        disabled by guarding usage of HTMLMediaElement with ENABLE(VIDEO).
+
+        No new tests needed.
+
+        * page/DeprecatedGlobalSettings.cpp:
+        (WebCore::DeprecatedGlobalSettings::setGStreamerEnabled): Guard usage of HTMLMediaElement.
+
+2017-11-29  Chris Dumez  <cdumez@apple.com>
+
+        ServiceWorker WebProcess sometimes crashes in JSVMClientData::~JSVMClientData()
+        https://bugs.webkit.org/show_bug.cgi?id=180173
+
+        Reviewed by Alex Christensen.
+
+        The leak was caused by EventListeners remaining when destroying the VM, because
+        JSEventListener refs the DOMWrapperWorld. To address the issue, we now call
+        removeAllEventListeners() in the stop() method of ServiceWorkerContainer,
+        ServiceWorkerRegistration and ServiceWorker. Those event listeners are no
+        longer needed after ActiveDOMObject::stop() is called since the script
+        execution context is about to be destroyed.
+
+        This is the same pattern used in IDBDatabase::stop(), IDBRequest::stop().
+
+        No new tests, already covered by existing test.
+
+        * workers/service/ServiceWorker.cpp:
+        (WebCore::ServiceWorker::stop):
+        * workers/service/ServiceWorkerContainer.cpp:
+        (WebCore::ServiceWorkerContainer::stop):
+        * workers/service/ServiceWorkerContainer.h:
+        * workers/service/ServiceWorkerRegistration.cpp:
+        (WebCore::ServiceWorkerRegistration::stop):
+
+2017-11-29  Filip Pizlo  <fpizlo@apple.com>
+
+        GC should support isoheaps
+        https://bugs.webkit.org/show_bug.cgi?id=179288
+
+        Reviewed by Saam Barati.
+
+        No new tests because no new behavior.
+        
+        Adopting changes in JSC Subspace API.
+
+        * ForwardingHeaders/runtime/JSDestructibleObjectHeapCellType.h: Added.
+        * ForwardingHeaders/runtime/JSSegmentedVariableObjectHeapCellType.h: Added.
+        * bindings/js/JSDOMWrapper.cpp:
+        (WebCore::outputConstraintSubspaceFor):
+        (WebCore::globalObjectOutputConstraintSubspaceFor):
+        * bindings/js/JSDOMWrapper.h:
+        * bindings/js/WebCoreJSClientData.cpp:
+        (WebCore::JSVMClientData::JSVMClientData):
+        * bindings/js/WebCoreJSClientData.h:
+        (WebCore::JSVMClientData::outputConstraintSpace):
+        (WebCore::JSVMClientData::globalObjectOutputConstraintSpace):
+        * bindings/scripts/CodeGeneratorJS.pm:
+        (GenerateHeader):
+
+2017-11-29  Eric Carlson  <eric.carlson@apple.com>
+
+        [MediaStream] Clean up audio and video capture factories
+        https://bugs.webkit.org/show_bug.cgi?id=180156
+        <rdar://problem/35753435>
+
+        Reviewed by Youenn Fablet.
+
+        No new tests, no behavior change.
+
+        * platform/mediastream/RealtimeMediaSourceCenter.cpp:
+        (WebCore::RealtimeMediaSourceCenter::setAudioFactory): Deleted.
+        (WebCore::RealtimeMediaSourceCenter::unsetAudioFactory): Deleted.
+        (WebCore::RealtimeMediaSourceCenter::audioFactory): Deleted.
+        (WebCore::RealtimeMediaSourceCenter::setVideoFactory): Deleted.
+        (WebCore::RealtimeMediaSourceCenter::unsetVideoFactory): Deleted.
+        (WebCore::RealtimeMediaSourceCenter::videoFactory): Deleted.
+        (WebCore::RealtimeMediaSourceCenter::setAudioCaptureDeviceManager): Deleted.
+        (WebCore::RealtimeMediaSourceCenter::unsetAudioCaptureDeviceManager): Deleted.
+        (WebCore::RealtimeMediaSourceCenter::audioCaptureDeviceManager): Deleted.
+        (WebCore::RealtimeMediaSourceCenter::setVideoCaptureDeviceManager): Deleted.
+        (WebCore::RealtimeMediaSourceCenter::unsetVideoCaptureDeviceManager): Deleted.
+        (WebCore::RealtimeMediaSourceCenter::videoCaptureDeviceManager): Deleted.
+        * platform/mediastream/RealtimeMediaSourceCenter.h:
+        (WebCore::RealtimeMediaSourceCenter::setAudioFactory):
+        (WebCore::RealtimeMediaSourceCenter::unsetAudioFactory):
+        * platform/mediastream/RealtimeMediaSourceSettings.cpp:
+        (WebCore::RealtimeMediaSourceSettings::facingMode):
+        (WebCore::RealtimeMediaSourceSettings::videoFacingModeEnum):
+        (WebCore::userFacing): Deleted.
+        (WebCore::environmentFacing): Deleted.
+        (WebCore::leftFacing): Deleted.
+        (WebCore::rightFacing): Deleted.
+        * platform/mediastream/RealtimeMediaSourceSettings.h:
+        (WebCore::RealtimeMediaSourceSettings::RealtimeMediaSourceSettings): Deleted.
+        * platform/mediastream/mac/AVVideoCaptureSource.h:
+        * platform/mediastream/mac/AVVideoCaptureSource.mm:
+        (WebCore::AVVideoCaptureSource::create):
+        (WebCore::AVVideoCaptureSource::~AVVideoCaptureSource):
+        (WebCore::AVVideoCaptureSource::setupCaptureSession):
+        (): Deleted.
+        (WebCore::AVVideoCaptureSourceFactory::setVideoCapturePageState): Deleted.
+        (WebCore::avVideoCaptureSourceFactory): Deleted.
+        (WebCore::AVVideoCaptureSource::factory): Deleted.
+        * platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:
+        (WebCore::videoCaptureSourceFactory):
+        (WebCore::RealtimeMediaSourceCenterMac::audioFactory):
+        (WebCore::RealtimeMediaSourceCenterMac::videoFactory):
+        (WebCore::RealtimeMediaSourceCenterMac::audioCaptureDeviceManager):
+        (WebCore::RealtimeMediaSourceCenterMac::videoCaptureDeviceManager):
+        (WebCore::RealtimeMediaSourceCenterMac::RealtimeMediaSourceCenterMac): Deleted.
+        (WebCore::RealtimeMediaSourceCenterMac::defaultAudioFactory): Deleted.
+        (WebCore::RealtimeMediaSourceCenterMac::defaultVideoFactory): Deleted.
+        (WebCore::RealtimeMediaSourceCenterMac::defaultAudioCaptureDeviceManager): Deleted.
+        (WebCore::RealtimeMediaSourceCenterMac::defaultVideoCaptureDeviceManager): Deleted.
+        * platform/mediastream/mac/RealtimeMediaSourceCenterMac.h:
+        * platform/mock/MockRealtimeAudioSource.cpp:
+        (WebCore::MockRealtimeAudioSource::~MockRealtimeAudioSource):
+        (WebCore::MockRealtimeAudioSource::startProducingData):
+        * platform/mock/MockRealtimeMediaSourceCenter.h:
+        * platform/mock/MockRealtimeVideoSource.cpp:
+        (WebCore::MockRealtimeVideoSource::~MockRealtimeVideoSource):
+        (WebCore::MockRealtimeVideoSource::startProducingData):
+        * platform/mock/MockRealtimeVideoSource.h:
+
+2017-11-29  Wenson Hsieh  <wenson_hsieh@apple.com>
+
+        [Attachment Support] Implement SPI for clients to make an attachment element display in-place
+        https://bugs.webkit.org/show_bug.cgi?id=180153
+        <rdar://problem/35735252>
+
+        Reviewed by Tim Horton.
+
+        Adds SPI support for inserting attachments using in-place display style, and updating display options for
+        existing attachments. See comments below for more detail.
+
+        Tests: WKAttachmentTests.InPlaceImageAttachmentToggleDisplayMode
+               WKAttachmentTests.InPlaceImageAttachmentParagraphInsertion
+               WKAttachmentTests.InPlaceVideoAttachmentInsertionWithinList
+               WKAttachmentTests.InPlacePDFAttachmentCutAndPaste
+
+        * WebCore.xcodeproj/project.pbxproj:
+        * editing/Editor.cpp:
+        (WebCore::Editor::insertAttachment):
+        (WebCore::Editor::insertAttachmentFromFile):
+
+        Update display options for the attachment before inserting into the document.
+
+        * editing/Editor.h:
+        * html/AttachmentTypes.h: Added.
+
+        Add a new header to define the new attachment display types. This lets us avoid importing HTMLAttachmentElement.h
+        and instead just import AttachmentTypes.h in some places in WebKit that only deal with plumbing
+        AttachmentDisplayOptions to the web process.
+
+        (WebCore::AttachmentDisplayOptions::encode const):
+        (WebCore::AttachmentDisplayOptions::decode):
+
+        Support serializing and deserializing attachment display options.
+
+        * html/HTMLAttachmentElement.cpp:
+        (WebCore::HTMLAttachmentElement::setFile):
+
+        Regenerate the shadow root if needed when setting the file.
+
+        (WebCore::HTMLAttachmentElement::updateDisplayMode):
+
+        Introduce a new method to update the display mode of an attachment element. This builds up the shadow root of
+        the attachment if it is displayed in-place.
+
+        (WebCore::HTMLAttachmentElement::ensureInnerImage):
+        (WebCore::HTMLAttachmentElement::ensureInnerVideo):
+
+        Helpers to insert image and video elements into the shadow root if needed, and return the image or video element.
+
+        (WebCore::HTMLAttachmentElement::innerImage const):
+        (WebCore::HTMLAttachmentElement::innerVideo const):
+
+        Helpers to retrieve existing image and video elements in the shadow root.
+
+        (WebCore::HTMLAttachmentElement::populateShadowRootIfNecessary):
+
+        Appends and configures the attachment element's shadow root for inline display, initializing an image or video
+        element or neither, depending on the attachment type.
+
+        * html/HTMLAttachmentElement.h:
+
+        Introduce an AttachmentDisplayOptions struct which mirrors _WKAttachmentDisplayOptions in the WebKit layer. For
+        now, this only contains a display mode enum.
+
+        * platform/audio/ios/AudioSessionIOS.mm:
+
+        Avoid this AVAudioSession assertion when targeting iOS simulator. AVAudioSession always throws this error when
+        setting an audio session category in the simulator, even in a basic test app, since AVFoundation doesn't support
+        audio sessions in the simulator.
+
+        (WebCore::AudioSession::setCategory):
+
+2017-11-29  Simon Fraser  <simon.fraser@apple.com>
+
+        Missing layer content when animating elements on-screen
+        https://bugs.webkit.org/show_bug.cgi?id=180178
+        rdar://problem/34923438
+
+        Reviewed by Dean Jackson.
+
+        If a delayed animation starts, that animates layers from offscreen, then we would fail
+        to run the logic that ensures that those layers have backing store.
+
+        Fix by ensuring that if any layer starts or ends a transform animation, we re-evaluate
+        backing store attachment on all its descendants.
+
+        I tried to make a test, but layer flushing is timing-sensitive and the test would have taken
+        5s, and not been reliable. There's a manual test in the bug.
+
+        * platform/graphics/ca/GraphicsLayerCA.cpp:
+        (WebCore::GraphicsLayerCA::recursiveCommitChanges):
+        * platform/graphics/ca/GraphicsLayerCA.h:
+
+2017-11-29  Youenn Fablet  <youenn@apple.com>
+
+        ServiceWorkerClient objects should be reused if there is already one existing with the same identifier
+        https://bugs.webkit.org/show_bug.cgi?id=180143
+
+        Reviewed by Chris Dumez.
+
+        Covered by updated tests.
+
+        ServiceWorkerGlobalScope keeps a map of all live ServiceWorkerClient objects.
+        Before creating a new client, it checks whether the map has one such object with the same identifier.
+        If so, it reuses this object. Otherwise it creates either a ServiceWorkerWindowClient or ServiceWorkerClient.
+
+        Add support for using a ServiceWorkerClientIdentifier as a HashMap key.
+
+        * workers/service/ServiceWorkerClient.cpp:
+        (WebCore::ServiceWorkerClient::ServiceWorkerClient):
+        (WebCore::ServiceWorkerClient::~ServiceWorkerClient):
+        * workers/service/ServiceWorkerClient.h:
+        (WebCore::ServiceWorkerClient::getOrCreate):
+        * workers/service/ServiceWorkerClientIdentifier.h:
+        (WebCore::ServiceWorkerClientIdentifier::hash const):
+        (WTF::ServiceWorkerClientIdentifierHash::hash):
+        (WTF::ServiceWorkerClientIdentifierHash::equal):
+        (WTF::HashTraits<WebCore::ServiceWorkerClientIdentifier>::emptyValue):
+        (WTF::HashTraits<WebCore::ServiceWorkerClientIdentifier>::constructDeletedValue):
+        (WTF::HashTraits<WebCore::ServiceWorkerClientIdentifier>::isDeletedValue):
+        * workers/service/ServiceWorkerGlobalScope.cpp:
+        (WebCore::ServiceWorkerGlobalScope::serviceWorkerClient):
+        (WebCore::ServiceWorkerGlobalScope::addServiceWorkerClient):
+        (WebCore::ServiceWorkerGlobalScope::removeServiceWorkerClient):
+        * workers/service/ServiceWorkerGlobalScope.h:
+        * workers/service/ServiceWorkerWindowClient.cpp:
+        (WebCore::ServiceWorkerWindowClient::ServiceWorkerWindowClient):
+        * workers/service/ServiceWorkerWindowClient.h:
+        * workers/service/context/ServiceWorkerThread.cpp:
+        (WebCore::ServiceWorkerThread::postMessageToServiceWorkerGlobalScope):
+
+2017-11-29  Zalan Bujtas  <zalan@apple.com>
+
+        Add missing WTF_MAKE_ISO_ALLOCATED macros
+        https://bugs.webkit.org/show_bug.cgi?id=180165
+        <rdar://problem/35755617>
+
+        Reviewed by Simon Fraser.
+
+        * rendering/RenderFrame.h:
+        * rendering/RenderFullScreen.cpp:
+        * rendering/RenderIFrame.h:
+
 2017-11-29  Said Abou-Hallawa  <sabouhallawa@apple.com>
 
         Remove the ImageSource from the class hierarchy that connects BitmapImage to ImageFrame