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

Timeline



Dec 3, 2017:

10:26 PM Changeset in webkit [225471] by tpopela@redhat.com
  • 3 edits in trunk/Source/WTF

Build fails on x86_64 and arm64 with BMalloc disabled
https://bugs.webkit.org/show_bug.cgi?id=180188

Reviewed by Carlos Garcia Campos.

Add missing methods in WTF's Gigacage.h and fix g_gigacageBasePtr
definition.

  • wtf/Gigacage.cpp:
  • wtf/Gigacage.h:

(Gigacage::basePtr):
(Gigacage::isEnabled):

10:13 PM Changeset in webkit [225470] by Yusuke Suzuki
  • 71 edits
    1 add in trunk

WTF shouldn't have both Thread and ThreadIdentifier
https://bugs.webkit.org/show_bug.cgi?id=180308

Reviewed by Darin Adler.

Source/JavaScriptCore:

  • heap/MachineStackMarker.cpp:

(JSC::MachineThreads::tryCopyOtherThreadStacks):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::llint_trace_operand):
(JSC::LLInt::llint_trace_value):
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
(JSC::LLInt::traceFunctionPrologue):

  • runtime/ExceptionScope.cpp:

(JSC::ExceptionScope::unexpectedExceptionMessage):

  • runtime/JSLock.h:

(JSC::JSLock::currentThreadIsHoldingLock):

  • runtime/VM.cpp:

(JSC::VM::throwException):

  • runtime/VM.h:

(JSC::VM::throwingThread const):
(JSC::VM::clearException):

  • tools/HeapVerifier.cpp:

(JSC::HeapVerifier::printVerificationHeader):

Source/WebCore:

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):

Source/WebKit:

  • UIProcess/API/glib/IconDatabase.cpp:
  • UIProcess/GenericCallback.h:

(WebKit::GenericCallback::~GenericCallback):
(WebKit::GenericCallback::performCallbackWithReturnValue):

Source/WTF:

We should use a pointer of WTF::Thread instead of ThreadIdentifier.

One problem is that Windows support library uses WTF::createThread,
which returns ThreadIdentifier. So we cannot drop ThreadIdentifier
in Windows environment. This patch keeps ThreadIdentifier in Windows.

  • wtf/MainThread.cpp:

(WTF::initializeMainThread):
(WTF::isMainThread):
(WTF::canAccessThreadLocalDataForThread):

  • wtf/MainThread.h:
  • wtf/ParkingLot.cpp:

(WTF::ParkingLot::parkConditionallyImpl):
(WTF::ParkingLot::unparkOne):
(WTF::ParkingLot::unparkOneImpl):
(WTF::ParkingLot::unparkCount):

  • wtf/RecursiveLockAdapter.h:

(WTF::RecursiveLockAdapter::lock):
(WTF::RecursiveLockAdapter::unlock):
(WTF::RecursiveLockAdapter::tryLock):

  • wtf/Threading.cpp:

(WTF::Thread::dump const):

  • wtf/Threading.h:

(WTF::Thread::id const):
(WTF::Thread::operator==): Deleted.
(WTF::Thread::operator!=): Deleted.
(WTF::currentThread): Deleted.

  • wtf/ThreadingPrimitives.h:
  • wtf/ThreadingPthreads.cpp:

(WTF::Thread::waitForCompletion):
(WTF::Thread::detach):
(WTF::Thread::initializeCurrentTLS):
(WTF::Thread::suspend):
(WTF::Thread::establishPlatformSpecificHandle):
(WTF::Thread::currentID): Deleted.

  • wtf/ThreadingWin.cpp:

(WTF::Thread::waitForCompletion):
(WTF::Thread::suspend):
(WTF::Thread::currentDying):

  • wtf/mac/MainThreadMac.mm:

(WTF::initializeApplicationUIThread):
(WTF::initializeWebThreadPlatform):
(WTF::canAccessThreadLocalDataForThread):
(WTF::initializeApplicationUIThreadIdentifier): Deleted.
(WTF::initializeWebThreadIdentifier): Deleted.

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(dumpRenderTree):
(runThread): Deleted.
(runPthread): Deleted.
(testThreadIdentifierMap): Deleted.

  • TestWebKitAPI/CMakeLists.txt:
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WTF/ParkingLot.cpp:
  • TestWebKitAPI/Tests/WTF/Threading.cpp: Added.

(TestWebKitAPI::TEST):

9:40 PM Changeset in webkit [225469] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

WebSocketChannel should ensure its client is live when calling it in error case
https://bugs.webkit.org/show_bug.cgi?id=180285

Patch by Youenn Fablet <youenn@apple.com> on 2017-12-03
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):

7:34 PM Changeset in webkit [225468] by ap@apple.com
  • 2 edits in trunk/Source/WebCore

WebArchiveResourceWebResourceHandler leaks when pasting
https://bugs.webkit.org/show_bug.cgi?id=180339

Reviewed by Joseph Pecoraro.

  • editing/cocoa/WebContentReaderCocoa.mm:

(WebCore::attributesForAttributedStringConversion):

6:15 PM Changeset in webkit [225467] by Chris Dumez
  • 17 edits
    1 move
    17 adds
    37 deletes in trunk/LayoutTests

Re-sync Service Workers web-platform-tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=180336

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Re-sync Service Workers web-platform-tests from upstream 6df98083a2be.

  • web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/resources/unregister-controlling-worker.html: Added.
  • web-platform-tests/service-workers/service-worker/about-blank-replacement.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/about-blank-replacement.https.html: Added.
  • web-platform-tests/service-workers/service-worker/activation.https.html:
  • web-platform-tests/service-workers/service-worker/fetch-canvas-tainting.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-event-respond-with-partial-stream.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/fetch-event-respond-with-partial-stream.https.html: Added.
  • web-platform-tests/service-workers/service-worker/fetch-event.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/foreign-fetch-basics.https-expected.txt: Removed.
  • web-platform-tests/service-workers/service-worker/foreign-fetch-basics.https.html: Removed.
  • web-platform-tests/service-workers/service-worker/foreign-fetch-cors.https-expected.txt: Removed.
  • web-platform-tests/service-workers/service-worker/foreign-fetch-cors.https.html: Removed.
  • web-platform-tests/service-workers/service-worker/foreign-fetch-event.https-expected.txt: Removed.
  • web-platform-tests/service-workers/service-worker/foreign-fetch-event.https.html: Removed.
  • web-platform-tests/service-workers/service-worker/foreign-fetch-workers.https-expected.txt: Removed.
  • web-platform-tests/service-workers/service-worker/foreign-fetch-workers.https.html: Removed.
  • web-platform-tests/service-workers/service-worker/iframe-sandbox-register-link-element.https-expected.txt: Removed.
  • web-platform-tests/service-workers/service-worker/iframe-sandbox-register-link-element.https.html: Removed.
  • web-platform-tests/service-workers/service-worker/interfaces-window.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/link-element-register-basic.https-expected.txt: Removed.
  • web-platform-tests/service-workers/service-worker/link-element-register-basic.https.html: Removed.
  • web-platform-tests/service-workers/service-worker/link-element-register-mime-types.https-expected.txt: Removed.
  • web-platform-tests/service-workers/service-worker/link-element-register-mime-types.https.html: Removed.
  • web-platform-tests/service-workers/service-worker/link-element-register-scope.https-expected.txt: Removed.
  • web-platform-tests/service-workers/service-worker/link-element-register-scope.https.html: Removed.
  • web-platform-tests/service-workers/service-worker/link-element-register-script-url.https-expected.txt: Removed.
  • web-platform-tests/service-workers/service-worker/link-element-register-script-url.https.html: Removed.
  • web-platform-tests/service-workers/service-worker/link-element-register-script.https-expected.txt: Removed.
  • web-platform-tests/service-workers/service-worker/link-element-register-script.https.html: Removed.
  • web-platform-tests/service-workers/service-worker/link-element-register-security-error.https-expected.txt: Removed.
  • web-platform-tests/service-workers/service-worker/link-element-register-security-error.https.html: Removed.
  • web-platform-tests/service-workers/service-worker/navigation-preload/empty-preload-response-body.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/navigation-preload/resources/empty-preload-response-body-scope.html: Added.
  • web-platform-tests/service-workers/service-worker/register-foreign-fetch-errors.https-expected.txt: Removed.
  • web-platform-tests/service-workers/service-worker/register-foreign-fetch-errors.https.html: Removed.
  • web-platform-tests/service-workers/service-worker/register-link-header.https-expected.txt: Removed.
  • web-platform-tests/service-workers/service-worker/register-link-header.https.html: Removed.
  • web-platform-tests/service-workers/service-worker/registration-iframe.https.html:
  • web-platform-tests/service-workers/service-worker/registration-updateviacache.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/registration-updateviacache.https.html:
  • web-platform-tests/service-workers/service-worker/resource-timing.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/resource-timing.https.html:
  • web-platform-tests/service-workers/service-worker/resources/about-blank-replacement-frame.py: Added.

(main):

  • web-platform-tests/service-workers/service-worker/resources/about-blank-replacement-ping-frame.py: Added.

(main):

  • web-platform-tests/service-workers/service-worker/resources/about-blank-replacement-popup-frame.py: Added.

(main):

  • web-platform-tests/service-workers/service-worker/resources/about-blank-replacement-uncontrolled-nested-frame.html: Added.
  • web-platform-tests/service-workers/service-worker/resources/about-blank-replacement-worker.js: Added.

(async.getClientByURL):
(async.pingPong.waitForPong.return.new.Promise):
(async.pingPong.waitForPong):
(async.pingPong):
(async.evt.url.searchParams):
(async.evt.evt.respondWith.async):
(evt.evt.waitUntil.async):

  • web-platform-tests/service-workers/service-worker/resources/clients-get-worker.js:

(self.onfetch):

  • web-platform-tests/service-workers/service-worker/resources/empty.js: Added.
  • web-platform-tests/service-workers/service-worker/resources/fetch-event-respond-with-partial-stream-worker.js: Added.

(evt.evt.request.url.includes):

  • web-platform-tests/service-workers/service-worker/resources/fetch-event-test-worker.js:

(handleClientId):

  • web-platform-tests/service-workers/service-worker/resources/foreign-fetch-cors-worker.js: Removed.
  • web-platform-tests/service-workers/service-worker/resources/foreign-fetch-event-worker.js: Removed.
  • web-platform-tests/service-workers/service-worker/resources/foreign-fetch-helper-iframe.html: Removed.
  • web-platform-tests/service-workers/service-worker/resources/foreign-fetch-helper-script.js: Removed.
  • web-platform-tests/service-workers/service-worker/resources/foreign-fetch-helper-worker.js: Removed.
  • web-platform-tests/service-workers/service-worker/resources/foreign-fetch-helpers.js: Removed.
  • web-platform-tests/service-workers/service-worker/resources/foreign-fetch-worker.js: Removed.
  • web-platform-tests/service-workers/service-worker/resources/iframe-register-link-element.html: Removed.
  • web-platform-tests/service-workers/service-worker/resources/install-worker-helper.html: Removed.
  • web-platform-tests/service-workers/service-worker/resources/interfaces-idls.js:
  • web-platform-tests/service-workers/service-worker/resources/link-header.py: Removed.
  • web-platform-tests/service-workers/service-worker/resources/register-foreign-fetch-errors-worker.js: Removed.
  • web-platform-tests/service-workers/service-worker/resources/resource-timing-iframe.sub.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/service-workers/service-worker/resources/resource-timing-iframe.html.
  • web-platform-tests/service-workers/service-worker/resources/sandboxed-iframe-fetch-event-iframe.html: Added.
  • web-platform-tests/service-workers/service-worker/resources/sandboxed-iframe-fetch-event-worker.js: Added.

(event.waitUntil.self.clients.matchAll.then):

  • web-platform-tests/service-workers/service-worker/resources/sandboxed-iframe-navigator-serviceworker-iframe.html: Added.
  • web-platform-tests/service-workers/service-worker/resources/test-helpers.sub.js:
  • web-platform-tests/service-workers/service-worker/resources/w3c-import.log:
  • web-platform-tests/service-workers/service-worker/sandboxed-iframe-fetch-event.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/sandboxed-iframe-fetch-event.https.html: Added.
  • web-platform-tests/service-workers/service-worker/sandboxed-iframe-navigator-serviceworker.https-expected.txt: Added.
  • web-platform-tests/service-workers/service-worker/sandboxed-iframe-navigator-serviceworker.https.html: Added.
  • web-platform-tests/service-workers/service-worker/service-worker-csp-connect.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/service-worker-csp-default.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/service-worker-csp-script.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/w3c-import.log:

LayoutTests:

Skip new tests that are timing out and remove entries for tests
that were removed.

4:28 PM Changeset in webkit [225466] by aakash_jain@apple.com
  • 2 edits in trunk/Tools

webkitpy EWS keeps retrying a failing patch
https://bugs.webkit.org/show_bug.cgi?id=180302

Reviewed by Alexey Proskuryakov.

  • Scripts/webkitpy/tool/bot/patchanalysistask.py:

(PatchAnalysisTask._test_patch): Instead of returning false, call report_failure()
which raises an exception, this exception is catched by earlywarningsystem.py and
it posts a comment on bugzilla. Returning false simply unlocks the patch and returns
it to the queue.

3:08 PM Changeset in webkit [225465] by Chris Dumez
  • 2 edits in trunk/LayoutTests

Unreviewed, mark imported/w3c/web-platform-tests/service-workers/service-worker/registration-service-worker-attributes.https.html as flaky

3:00 PM Changeset in webkit [225464] by Caio Lima
  • 6 edits in trunk/Source/JavaScriptCore

Rename DestroyFunc to avoid redefinition on unified build
https://bugs.webkit.org/show_bug.cgi?id=180335

Reviewed by Filip Pizlo.

Changing DestroyFunc structures to more specific names to avoid
conflits on unified builds.

  • heap/HeapCellType.cpp:

(JSC::HeapCellType::finishSweep):
(JSC::HeapCellType::destroy):

  • runtime/JSDestructibleObjectHeapCellType.cpp:

(JSC::JSDestructibleObjectHeapCellType::finishSweep):
(JSC::JSDestructibleObjectHeapCellType::destroy):

  • runtime/JSSegmentedVariableObjectHeapCellType.cpp:

(JSC::JSSegmentedVariableObjectHeapCellType::finishSweep):
(JSC::JSSegmentedVariableObjectHeapCellType::destroy):

  • runtime/JSStringHeapCellType.cpp:

(JSC::JSStringHeapCellType::finishSweep):
(JSC::JSStringHeapCellType::destroy):

  • wasm/js/JSWebAssemblyCodeBlockHeapCellType.cpp:

(JSC::JSWebAssemblyCodeBlockHeapCellType::finishSweep):
(JSC::JSWebAssemblyCodeBlockHeapCellType::destroy):

2:48 PM Changeset in webkit [225463] by Darin Adler
  • 14 edits
    1 copy
    1 add in trunk

Add WTF::Hasher, an easier to use replacement for WTF::IntegerHasher
https://bugs.webkit.org/show_bug.cgi?id=180318

Reviewed by JF Bastien.

Source/WTF:

  • WTF.xcodeproj/project.pbxproj: Added Hasher.h.
  • wtf/CMakeLists.txt: Ditto.
  • wtf/Forward.h: Added Hasher and TextStream.
  • wtf/Hasher.h: Moved StringHasher into a separate header. Added Hasher.

Marked IntegerHasher deprecated.

  • wtf/text/CString.cpp: Include StringHasher.h instead of Hasher.h.
  • wtf/text/StringHash.h: Ditto.
  • wtf/text/StringHasher.h: Added. Moved StringHasher here from Hasher.h.
  • wtf/text/StringImpl.h: Include StringHasher.h instead of Hasher.h.
  • wtf/text/WTFString.h: Added a hash function. This was useful in some

adoption I was doing in WebCore, not included in this patch.

  • wtf/unicode/UTF8.cpp: Include StringHasher.h instead of Hasher.h.

Tools:

  • TestWebKitAPI/CMakeLists.txt: Added Hasher.cpp.
  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: Ditto.
  • TestWebKitAPI/Tests/WTF/Hasher.cpp: Added. Contains tests of the new

WTF::Hasher class.

  • TestWebKitAPI/Tests/WTF/StringHasher.cpp: Include StringHasher.h instead of

Hasher.h.

2:24 PM Changeset in webkit [225462] by Chris Dumez
  • 20 edits in trunk

Support serviceWorker.postMessage() inside service workers
https://bugs.webkit.org/show_bug.cgi?id=180328

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline WPT test that is now passing.

  • web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/extendable-message-event.https-expected.txt:

Source/WebCore:

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:

Source/WebKit:

Support serviceWorker.postMessage() inside service workers.

  • StorageProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::postMessageToServiceWorkerFromClient):
(WebKit::WebSWServerConnection::postMessageToServiceWorkerFromServiceWorker):

  • StorageProcess/ServiceWorker/WebSWServerConnection.h:
  • StorageProcess/ServiceWorker/WebSWServerConnection.messages.in:
  • WebProcess/Storage/WebSWClientConnection.cpp:

(WebKit::WebSWClientConnection::postMessageToServiceWorker):

  • WebProcess/Storage/WebSWClientConnection.h:
  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::postMessageToServiceWorkerFromClient):
(WebKit::WebSWContextManagerConnection::postMessageToServiceWorkerFromServiceWorker):

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

LayoutTests:

Unskip WPT test that no longer times out.

1:34 PM Changeset in webkit [225461] by Chris Dumez
  • 13 edits in trunk/LayoutTests

Unreviewed, unskip / rebaseline a few web platform tests.

LayoutTests/imported/w3c:

  • web-platform-tests/service-workers/cache-storage/serviceworker/cache-match.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/clients-matchall-on-evaluation.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-canvas-tainting-cache.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-canvas-tainting.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/fetch-request-redirect.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/postmessage-to-client.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/register-same-scope-different-script-url.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/serviceworker-message-event-historical.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/skip-waiting-using-registration.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/unregister-then-register-new-script.https-expected.txt:

LayoutTests:

12:32 PM Changeset in webkit [225460] by Chris Dumez
  • 22 edits in trunk

Implement self.skipWaiting() inside service workers
https://bugs.webkit.org/show_bug.cgi?id=180329

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline WPT tests that are now passing.

  • web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/update.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/claim-with-redirect.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/postmessage-from-waiting-serviceworker.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/skip-waiting-without-client.https-expected.txt:

Source/WebCore:

Implement self.skipWaiting() inside service workers:

Also fixes a bug where tryActivate() was calling activate() even though the
registration's active worker was "in use":

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):

Source/WebKit:

  • StorageProcess/ServiceWorker/WebSWServerToContextConnection.cpp:

(WebKit::WebSWServerToContextConnection::didFinishSkipWaiting):

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

(WebKit::WebSWContextManagerConnection::skipWaiting):
(WebKit::WebSWContextManagerConnection::didFinishSkipWaiting):

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

LayoutTests:

  • http/tests/workers/service/resources/service-worker-fetch-worker.js:

add self.skipWaiting() now that we properly wait when the registation's
active worker is in use. This is needed because this worker script is
used by http/tests/workers/service/controller-change.html. The
'controllerchange' event is only fired if an active worker is being
replaced while in use due to the waiting worker calling skipWaiting().

1:08 AM Changeset in webkit [225459] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[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):

1:07 AM Changeset in webkit [225458] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebCore

[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):

Dec 2, 2017:

9:32 PM Changeset in webkit [225457] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebCore

Move registration activation and clearing from SWServerJobQueue to SWServerRegistration
https://bugs.webkit.org/show_bug.cgi?id=180325

Patch by Youenn Fablet <youenn@apple.com> on 2017-12-02
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:
8:17 PM Changeset in webkit [225456] by Chris Dumez
  • 7 edits
    3 adds in trunk

Support container.register() / registration.unregister() / inside service workers
https://bugs.webkit.org/show_bug.cgi?id=180326

Reviewed by Youenn Fablet.

LayoutTests/imported/w3c:

Rebaseline WPT test that now passes most checks.

  • web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/unregister.https-expected.txt:

Source/WebCore:

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):

LayoutTests:

Unskip test for registration.unregister() that now passes.

  • http/tests/workers/service/ServiceWorkerGlobalScope_register-expected.txt: Added.
  • http/tests/workers/service/ServiceWorkerGlobalScope_register.html: Added.
  • http/tests/workers/service/resources/ServiceWorkerGlobalScope_register-worker.js: Added.

Add test coverage for container.register().

6:32 PM Changeset in webkit [225455] by Chris Dumez
  • 14 edits
    3 adds in trunk

Support serviceWorkerRegistration.update() inside service workers
https://bugs.webkit.org/show_bug.cgi?id=180215

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaseline WPT test that no longer times out. The test still fails even
though we support update(). The issue is that the second frame load
uses the new worker (because of the update()) instead of the old one.
The test seems to expect that the new service worker is still in
waiting state at the point the second frame is loaded. However, for us
it is already activated.

  • web-platform-tests/service-workers/service-worker/ServiceWorkerGlobalScope/update.https-expected.txt:

Source/WebCore:

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:

LayoutTests:

Add layout test coverage and unskip WPT test that no longer times out.

  • TestExpectations:
  • http/tests/workers/service/resources/self_registration_update-worker.js: Added.
  • http/tests/workers/service/self_registration_update-expected.txt: Added.
  • http/tests/workers/service/self_registration_update.html: Added.
3:11 PM Changeset in webkit [225454] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

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):

12:35 PM Changeset in webkit [225453] by Simon Fraser
  • 17 edits in trunk/Source/WebCore

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):

11:41 AM Changeset in webkit [225452] by commit-queue@webkit.org
  • 23 edits
    2 copies
    3 adds in trunk

Implement https://w3c.github.io/ServiceWorker/#clients-getall
https://bugs.webkit.org/show_bug.cgi?id=180276

Patch by Youenn Fablet <youenn@apple.com> on 2017-12-02
Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/service-workers/cache-storage/serviceworker/credentials.https-expected.txt:
  • web-platform-tests/service-workers/service-worker/navigate-window.https-expected.txt:

Source/WebCore:

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:

Source/WebKit:

Add IPC plumbery for clients.matchAll between ServiceWorker process and Storage process.

  • StorageProcess/ServiceWorker/WebSWServerToContextConnection.cpp:

(WebKit::WebSWServerToContextConnection::matchAllCompleted):

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

(WebKit::WebSWContextManagerConnection::matchAll):
(WebKit::WebSWContextManagerConnection::matchAllCompleted):

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

LayoutTests:

  • http/tests/workers/service/serviceworkerclients-matchAll-worker.js: Added.
  • http/tests/workers/service/serviceworkerclients-matchAll.https-expected.txt: Added.
  • http/tests/workers/service/serviceworkerclients-matchAll.https.html: Added.
10:41 AM Changeset in webkit [225451] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Remote Web Inspector window always shows up at the default size
https://bugs.webkit.org/show_bug.cgi?id=180284
<rdar://problem/35430255>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-12-02
Reviewed by Brian Burg.

  • UIProcess/mac/RemoteWebInspectorProxyMac.mm:

(WebKit::RemoteWebInspectorProxy::platformCreateFrontendPageAndWindow):
Give remote web inspector windows an autosave name so that their frame can
be automatically saved and restored by the system.

10:00 AM Changeset in webkit [225450] by beidson@apple.com
  • 6 edits
    2 adds in trunk/Source

Factor out the "databaseTaskQueue" parts of IDBServer into something reusable.
https://bugs.webkit.org/show_bug.cgi?id=180298

Reviewed by Chris Dumez.

Source/WebCore:

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.

Source/WTF:

  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/CrossThreadTaskHandler.cpp: Added.

(WTF::CrossThreadTaskHandler::CrossThreadTaskHandler):
(WTF::CrossThreadTaskHandler::~CrossThreadTaskHandler):
(WTF::CrossThreadTaskHandler::postTask):
(WTF::CrossThreadTaskHandler::postTaskReply):
(WTF::CrossThreadTaskHandler::taskRunLoop):
(WTF::CrossThreadTaskHandler::handleTaskRepliesOnMainThread):

  • wtf/CrossThreadTaskHandler.h: Added.
9:55 AM Changeset in webkit [225449] by Simon Fraser
  • 14 edits in trunk/Source

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.

Source/WebCore:

  • 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):

Source/WebKit:

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _didCommitLayerTree:]):
(-[WKWebView _dynamicViewportUpdateChangedTargetToScale:position:nextValidLayerTreeTransactionID:]):
(-[WKWebView _dispatchSetMinimumLayoutSize:]):
(-[WKWebView _endAnimatedResize]):
(-[WKWebView _resizeWhileHidingContentWithUpdates:]):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setFixedLayoutSize):
(WebKit::WebPage::mainFrameDidLayout):
(WebKit::WebPage::didCommitLoad):

  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::scaleAfterViewportWidthChange):
(WebKit::WebPage::setViewportConfigurationMinimumLayoutSize):
(WebKit::WebPage::dynamicViewportSizeUpdate):
(WebKit::WebPage::resetViewportDefaultConfiguration):
(WebKit::WebPage::viewportConfigurationChanged):
(WebKit::WebPage::updateVisibleContentRects):

7:13 AM Changeset in webkit [225448] by Carlos Garcia Campos
  • 7 edits in trunk/Source

WebDriver: handle user prompts shown while executing scripts
https://bugs.webkit.org/show_bug.cgi?id=179979

Reviewed by Brian Burg.

Source/WebDriver:

15.2 Executing Script
https://w3c.github.io/webdriver/webdriver-spec.html#executing-script

The rules to execute a function body are as follows. The algorithm will return success with the JSON
representation of the function’s return value, or an error if the evaluation of the function results in a
JavaScript exception being thrown or at any point during its execution an unhandled user prompt appears.

If at any point during the algorithm a user prompt appears, the user prompt handler must be invoked. If its
return value is an error, it must immediately return with that error and abort all subsequent substeps of this
algorithm.

This will be covered by new WPT tests that will be available after the next upgrade.

  • CommandResult.cpp:

(WebDriver::CommandResult::CommandResult): Handle UnexpectedAlertOpen internal error.

  • Session.cpp:

(WebDriver::Session::handleUserPrompts): Move code to handleUnexpectedAlertOpen() and call it instead.
(WebDriver::Session::handleUnexpectedAlertOpen): Code moved here to be used also by executeScript().
(WebDriver::Session::executeScript): In case of UnexpectedAlertOpen error, call handleUnexpectedAlertOpen().

  • Session.h:

Source/WebKit:

  • UIProcess/Automation/Automation.json: Add UnexpectedAlertOpen error.
  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::willShowJavaScriptDialog): Finish pending evaluateJavaScriptFunction operations
with UnexpectedAlertOpen error.

6:56 AM Changeset in webkit [225447] by Carlos Garcia Campos
  • 16 edits
    1 add
    1 delete in trunk

WebDriver: auto-install pytest instead of importing it from wpt tools directory
https://bugs.webkit.org/show_bug.cgi?id=180243

Reviewed by Brian Burg.

Tools:

We don't really need the (old) version included in wpt tools dir, so we can simply remove it and use autoinstall
instead.

  • Scripts/webkitpy/thirdparty/init.py:

(AutoinstallImportHook.find_module): Check pytest.
(AutoinstallImportHook._install_pytest): Install pytest.

  • Scripts/webkitpy/webdriver_tests/webdriver_selenium_executor.py: Import autoinstalled pytest.
  • Scripts/webkitpy/webdriver_tests/webdriver_test_runner_w3c.py:

(WebDriverTestRunnerW3C.run): Update the subtest path since the new pytest uses a different strategy for
rootdir.

  • Scripts/webkitpy/webdriver_tests/webdriver_w3c_executor.py: Import autoinstalled pytest.

WebDriverTests:

  • imported/selenium/py/conftest.py: Stop patching this to use yield_fixture, new pytest supports this.
  • imported/selenium/py/setup.cfg: Stop patching this, since pytest supports tool:pytest as group name.
  • imported/selenium/py/test/selenium/webdriver/common/alerts_tests.py: Stop patching this to use yield_fixture,

new pytest supports this.

  • imported/selenium/py/test/selenium/webdriver/common/cookie_tests.py: Ditto.
  • imported/selenium/py/test/selenium/webdriver/common/frame_switching_tests.py: Ditto.
  • imported/selenium/py/test/selenium/webdriver/common/page_load_timeout_tests.py: Ditto.
  • imported/selenium/py/test/selenium/webdriver/common/window_switching_tests.py: Ditto.
  • imported/selenium/py/test/selenium/webdriver/safari/conftest.py: Ditto.
  • imported/selenium/py/test/selenium/webdriver/support/event_firing_webdriver_tests.py: Ditto.
  • imported/w3c/importer.json: Stop importing pytest.
  • imported/w3c/pytest.ini: Added.
  • imported/w3c/tools/pytest/: Removed.
12:47 AM Changeset in webkit [225446] by Wenson Hsieh
  • 6 edits in trunk/Source/WebKit

Make some minor adjustments to TouchBarMenuData and TouchBarMenuItemData
https://bugs.webkit.org/show_bug.cgi?id=180305

Reviewed by Joseph Pecoraro.

Mark some methods and parameters as const, use the default constructor in more places, and also remove a few
extraneous imported headers.

  • Shared/TouchBarMenuData.cpp:

(WebKit::TouchBarMenuData::TouchBarMenuData):

Add a FIXME regarding the use of the 'id' attribute.

(WebKit::TouchBarMenuData::decode):

  • Shared/TouchBarMenuData.h:

(WebKit::TouchBarMenuData::items const):
(WebKit::TouchBarMenuData::setID):
(WebKit::TouchBarMenuData::isPageCustomized const):
(WebKit::TouchBarMenuData::items): Deleted.
(WebKit::TouchBarMenuData::isPageCustomized): Deleted.

  • Shared/TouchBarMenuItemData.cpp:

(WebKit::getItemType):

Change a helper method from a static class function to a static function in the implementation file.

(WebKit::TouchBarMenuItemData::TouchBarMenuItemData):
(WebKit::TouchBarMenuItemData::encode const):
(WebKit::TouchBarMenuItemData::decode):
(WebKit::TouchBarMenuItemData::getItemType): Deleted.

  • Shared/TouchBarMenuItemData.h:

(WebKit::operator==):

Remove the commandName member variable, since it doesn't make sense to propagate an event handler
attribute from WebCore to the client layer.

  • UIProcess/WebPageProxy.messages.in:
Note: See TracTimeline for information about the timeline view.