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

Timeline



Jul 8, 2017:

10:05 PM Changeset in webkit [219280] by beidson@apple.com
  • 9 edits in trunk/Source

Remove some obsolete RuntimeApplicationChecks.
https://bugs.webkit.org/show_bug.cgi?id=174293

Reviewed by Dan Bernstein.

Source/WebCore:

No new tests (No change to testable behavior)

  • html/HTMLObjectElement.cpp:

(WebCore::HTMLObjectElement::parametersForPlugin):
(WebCore::shouldNotPerformURLAdjustment): Deleted.

  • platform/RuntimeApplicationChecks.h:
  • platform/cocoa/RuntimeApplicationChecksCocoa.mm:

(WebCore::IOSApplication::isDaijisenDictionary): Deleted.
(WebCore::IOSApplication::isNASAHD): Deleted.
(WebCore::IOSApplication::isTheEconomistOnIphone): Deleted.

  • platform/ios/wak/WebCoreThread.h:
  • platform/ios/wak/WebCoreThread.mm:

(StartWebThread):
(WebThreadSetDelegateSourceRunLoopMode): Deleted.

Source/WebKit/mac:

  • Misc/WebKitVersionChecks.h:
  • WebView/WebView.mm:

(+[WebView enableWebThread]):
(-[WebView _needsPreHTML5ParserQuirks]):

7:58 PM Changeset in webkit [219279] by commit-queue@webkit.org
  • 14 edits in trunk/Source/WebCore

[Curl] Safe access and life cycle management of bare Curl handle
by wrapping with C++ class
https://bugs.webkit.org/show_bug.cgi?id=174002

Patch by Basuke Suzuki <Basuke Suzuki> on 2017-07-08
Reviewed by Alex Christensen.

  • platform/network/ResourceHandle.h:
  • platform/network/ResourceHandleInternal.h:
  • platform/network/curl/CookieJarCurl.cpp:

(WebCore::setCookiesFromDOM):
(WebCore::cookiesForSession):

  • platform/network/curl/CurlContext.cpp:

(WebCore::CurlContext::CurlContext):
(WebCore::CurlContext::~CurlContext):
(WebCore::CurlContext::initCookieSession):
(WebCore::CurlShareHandle::CurlShareHandle):
(WebCore::CurlShareHandle::~CurlShareHandle):
(WebCore::CurlShareHandle::lockCallback):
(WebCore::CurlShareHandle::unlockCallback):
(WebCore::CurlShareHandle::mutexFor):
(WebCore::CurlMultiHandle::CurlMultiHandle):
(WebCore::CurlMultiHandle::~CurlMultiHandle):
(WebCore::CurlMultiHandle::addHandle):
(WebCore::CurlMultiHandle::removeHandle):
(WebCore::CurlMultiHandle::getFdSet):
(WebCore::CurlMultiHandle::perform):
(WebCore::CurlMultiHandle::readInfo):
(WebCore::CurlHandle::CurlHandle):
(WebCore::CurlHandle::~CurlHandle):
(WebCore::CurlHandle::perform):
(WebCore::CurlHandle::pause):
(WebCore::CurlHandle::enableShareHandle):
(WebCore::CurlHandle::setPrivateData):
(WebCore::CurlHandle::setUrl):
(WebCore::CurlHandle::clearUrl):
(WebCore::CurlHandle::clearRequestHeaders):
(WebCore::CurlHandle::appendRequestHeader):
(WebCore::CurlHandle::enableRequestHeaders):
(WebCore::CurlHandle::enableHttpGetRequest):
(WebCore::CurlHandle::enableHttpHeadRequest):
(WebCore::CurlHandle::enableHttpPostRequest):
(WebCore::CurlHandle::setPostFields):
(WebCore::CurlHandle::setPostFieldLarge):
(WebCore::CurlHandle::enableHttpPutRequest):
(WebCore::CurlHandle::setInFileSizeLarge):
(WebCore::CurlHandle::setHttpCustomRequest):
(WebCore::CurlHandle::enableAcceptEncoding):
(WebCore::CurlHandle::enableAllowedProtocols):
(WebCore::CurlHandle::enableFollowLocation):
(WebCore::CurlHandle::enableAutoReferer):
(WebCore::CurlHandle::enableHttpAuthentication):
(WebCore::CurlHandle::setHttpAuthUserPass):
(WebCore::CurlHandle::enableCAInfoIfExists):
(WebCore::CurlHandle::setSslVerifyPeer):
(WebCore::CurlHandle::setSslVerifyHost):
(WebCore::CurlHandle::setSslCert):
(WebCore::CurlHandle::setSslCertType):
(WebCore::CurlHandle::setSslKeyPassword):
(WebCore::CurlHandle::enableCookieJarIfExists):
(WebCore::CurlHandle::setCookieList):
(WebCore::CurlHandle::getCookieList):
(WebCore::CurlHandle::clearCookieList):
(WebCore::CurlHandle::enableProxyIfExists):
(WebCore::CurlHandle::enableTimeout):
(WebCore::CurlHandle::setHeaderCallbackFunction):
(WebCore::CurlHandle::setWriteCallbackFunction):
(WebCore::CurlHandle::setReadCallbackFunction):
(WebCore::CurlHandle::setSslCtxCallbackFunction):
(WebCore::CurlHandle::getEffectiveURL):
(WebCore::CurlHandle::getPrimaryPort):
(WebCore::CurlHandle::getResponseCode):
(WebCore::CurlHandle::getContentLenghtDownload):
(WebCore::CurlHandle::getHttpAuthAvail):
(WebCore::CurlHandle::getTimes):
(WebCore::CurlHandle::maxCurlOffT):
(WebCore::CurlHandle::expectedSizeOfCurlOffT):
(WebCore::CurlHandle::enableVerboseIfUsed):
(WebCore::CurlHandle::enableStdErrIfUsed):
(WebCore::CurlContext::getEffectiveURL): Deleted.
(WebCore::CurlContext::createMultiHandle): Deleted.
(WebCore::CurlContext::mutexFor): Deleted.
(WebCore::CurlContext::lock): Deleted.
(WebCore::CurlContext::unlock): Deleted.

  • platform/network/curl/CurlContext.h:

(WebCore::CurlGlobal::CurlGlobal):
(WebCore::CurlGlobal::~CurlGlobal):
(WebCore::CurlShareHandle::handle):
(WebCore::CurlContext::shareHandle):
(WebCore::CurlHandle::handle):
(WebCore::CurlHandle::url):
(WebCore::CurlContext::curlShareHandle): Deleted.

  • platform/network/curl/CurlDownload.cpp:

(WebCore::CurlDownload::~CurlDownload):
(WebCore::CurlDownload::init):
(WebCore::CurlDownload::start):
(WebCore::CurlDownload::cancel):
(WebCore::CurlDownload::getUrl):
(WebCore::CurlDownload::addHeaders):
(WebCore::CurlDownload::didReceiveHeader):
(WebCore::CurlDownload::writeCallback):

  • platform/network/curl/CurlDownload.h:
  • platform/network/curl/CurlJobManager.cpp:

(WebCore::CurlJobManager::CurlJobManager):
(WebCore::CurlJobManager::~CurlJobManager):
(WebCore::CurlJobManager::addToCurl):
(WebCore::CurlJobManager::removeFromCurl):
(WebCore::CurlJobManager::workerThread):

  • platform/network/curl/CurlJobManager.h:

(WebCore::CurlJobManager::getMultiHandle): Deleted.

  • platform/network/curl/ResourceHandleCurl.cpp:

(WebCore::ResourceHandleInternal::~ResourceHandleInternal):
(WebCore::ResourceHandle::platformSetDefersLoading):
(WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
(WebCore::ResourceHandle::receivedCredential):
(WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential):
(WebCore::calculateWebTimingInformations):
(WebCore::handleLocalReceiveResponse):
(WebCore::writeCallback):
(WebCore::getProtectionSpace):
(WebCore::headerCallback):
(WebCore::readCallback):
(WebCore::setupFormData):
(WebCore::ResourceHandle::setupPUT):
(WebCore::ResourceHandle::setupPOST):
(WebCore::ResourceHandle::dispatchSynchronousJob):
(WebCore::ResourceHandle::applyAuthentication):
(WebCore::ResourceHandle::initialize):
(WebCore::ResourceHandle::handleCurlMsg):

  • platform/network/curl/ResourceHandleManager.cpp:

(WebCore::ResourceHandleManager::ResourceHandleManager):
(WebCore::ResourceHandleManager::~ResourceHandleManager):
(WebCore::ResourceHandleManager::downloadTimerCallback):
(WebCore::ResourceHandleManager::removeFromCurl):
(WebCore::ResourceHandleManager::startJob):

  • platform/network/curl/ResourceHandleManager.h:
  • platform/network/curl/SSLHandle.cpp:

(WebCore::setSSLClientCertificate):
(WebCore::certVerifyCallback):
(WebCore::setSSLVerifyOptions):

4:59 PM Changeset in webkit [219278] by commit-queue@webkit.org
  • 5 edits
    2 adds in trunk

REGRESSION: "visibility:hidden" does not hide play button for video elements
https://bugs.webkit.org/show_bug.cgi?id=174258
<rdar://problem/33181452>

Patch by Antoine Quint <Antoine Quint> on 2017-07-08
Reviewed by Dean Jackson.

Source/WebCore:

In order to not have most styles from the page affect the shadow root, we set "all: initial" on the
media controls container. However, we need to still make the "visibility" property inherit from its
host such that "visibility: hidden" on the host won't be overridden by setting the property back to
its initial value, which is "visible".

Test: media/modern-media-controls/css/visibility-hidden.html

  • Modules/modern-media-controls/controls/media-controls.css:

(.media-controls-container):

LayoutTests:

Add a test that checks that <video controls style="visibility:hidden"> does not render anything.

  • media/modern-media-controls/css/visibility-hidden-expected.html: Added.
  • media/modern-media-controls/css/visibility-hidden.html: Added.
  • platform/ios-simulator/TestExpectations:
  • platform/mac/TestExpectations:
4:11 PM Changeset in webkit [219277] by Chris Dumez
  • 37 edits in trunk

Simplify WebResourceLoadStatisticsStore / ResourceLoadStatisticsStore
https://bugs.webkit.org/show_bug.cgi?id=174290

Reviewed by Brent Fulgham.

Source/WebKit2:

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _resourceLoadStatisticsProcessStatisticsAndDataRecords]):
(-[WKWebsiteDataStore _resourceLoadStatisticsSubmitTelemetry]):

  • UIProcess/API/Cocoa/WKWebsiteDataStorePrivate.h:

Rename a couple of functions in the Cocoa SPI for clarity and to match the name
of their internal implementation.

  • UIProcess/Storage/ResourceLoadStatisticsStore.cpp:

(WebKit::ResourceLoadStatisticsStore::create):
(WebKit::ResourceLoadStatisticsStore::ensureResourceStatisticsForPrimaryDomain):
Stylistic changes.

(WebKit::ResourceLoadStatisticsStore::createEncoderFromData):
Make const.

(WebKit::ResourceLoadStatisticsStore::readDataFromDecoder):
Use HashMap::add() instead of HashMap::set(). There is not supposed to have any duplicate
keys so add() is sufficient and more efficient.

(WebKit::ResourceLoadStatisticsStore::clearInMemoryAndPersistent): Removed.
clearInMemoryAndPersistent() was only called from WebResourceLoadStatisticsStore and
the m_deletePersistentStoreHandler / m_grandfatherExistingWebsiteDataHandler were both
set by the WebResourceLoadStatisticsStore as well. Therefore, we don't really need this
function, WebResourceLoadStatisticsStore now calls ResourceLoadStatisticsStore::clearInMemory()
instead and takes care of doing what the m_deletePersistentStoreHandler /
m_grandfatherExistingWebsiteDataHandler handlers were doing on its side.

(WebKit::ResourceLoadStatisticsStore::mergeStatistics):
Pass Vector as rvalue reference, as a preparation for a future optimization. Added FIXME
comment about the optimization.

(WebKit::ResourceLoadStatisticsStore::setNotificationCallback): Removed.
(WebKit::ResourceLoadStatisticsStore::setGrandfatherExistingWebsiteDataCallback): Removed.
(WebKit::ResourceLoadStatisticsStore::setDeletePersistentStoreCallback): Removed.
(WebKit::ResourceLoadStatisticsStore::setFireTelemetryCallback): Removed.
Drop those callback setters. WebResourceLoadStatisticsStore is the only client of
ResourceLoadStatisticsStore and those callbacks were always called as a result of
an operation requested by the WebResourceLoadStatisticsStore. Therefore, those are
not needed. WebResourceLoadStatisticsStore can take care of doing what those
callbacks were doing on its side.

(WebKit::ResourceLoadStatisticsStore::processStatistics):
Pass parameter by const reference since we clearly do not intend to transfer ownership of it.

(WebKit::ResourceLoadStatisticsStore::topPrivatelyControlledDomainsToRemoveWebsiteDataFor):
(WebKit::ResourceLoadStatisticsStore::updateStatisticsForRemovedDataRecords):
(WebKit::ResourceLoadStatisticsStore::handleFreshStartWithEmptyOrNoStore):
Stylistic changes.

(WebKit::ResourceLoadStatisticsStore::shouldRemoveDataRecords): Removed.
(WebKit::ResourceLoadStatisticsStore::dataRecordsBeingRemoved): Removed.
(WebKit::ResourceLoadStatisticsStore::dataRecordsWereRemoved): Removed.
Those were moved to WebResourceLoadStatisticsStore since they do not require
any access to the statistics, and are only used by WebResourceLoadStatisticsStore.

  • UIProcess/Storage/ResourceLoadStatisticsStore.h:
  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore):
Store registering most callbacks on the coreStore. Instead, the logic of those
callbacks is now inlined in the few methods in WebResourceLoadStatisticsStore
that were causing these callbacks to be called.

(WebKit::WebResourceLoadStatisticsStore::removeDataRecords):
Access some methods on WebResourceLoadStatisticsStore instead of the coreStore
since those were moved.

(WebKit::WebResourceLoadStatisticsStore::processStatisticsAndDataRecords):
Drop unnecessary mutable for lambda.

(WebKit::WebResourceLoadStatisticsStore::resourceLoadStatisticsUpdated):
Pass parameter as rvalue reference as a preparation for a future optimization.

(WebKit::WebResourceLoadStatisticsStore::hasStatisticsFileChangedSinceLastSync):
Make const.

(WebKit::WebResourceLoadStatisticsStore::submitTelemetry):
Add assertion to make sure this is called on the main thread.

(WebKit::WebResourceLoadStatisticsStore::fireDataModificationHandler): Removed.
This was dispatching to a background queue to call fireDataModificationHandler()
on the ResourceLoadStatisticsStore. The coreStore would then dispatch back on the
main thread to call the WebResourceLoadStatisticsStore's modification handler.
This modification handler was merely calling processStatisticsAndDataRecords().
Therefore, callers of WebResourceLoadStatisticsStore::fireDataModificationHandler()
can call WebResourceLoadStatisticsStore::processStatisticsAndDataRecords() directly
instead.

(WebKit::WebResourceLoadStatisticsStore::fireTelemetryHandler): Removed.
This was calling ResourceLoadStatisticsStore::fireTelemetryHandler(), which was
calling back WebResourceLoadStatisticsStore's fireTelemetryHandler. The handler
in question was merely calling submitTelemetry(). Therefore, callers of
WebResourceLoadStatisticsStore::fireTelemetryHandler() can call
WebResourceLoadStatisticsStore::submitTelemetry() directly instead.

(WebKit::WebResourceLoadStatisticsStore::clearInMemoryAndPersistent):
Call ResourceLoadStatisticsStore::clearInMemory() instead of clearInMemoryAndPersistent(),
which was removed. ResourceLoadStatisticsStore::clearInMemoryAndPersistent() was calling
clearInMemory() and then 2 of WebResourceLoadStatisticsStore's handlers. Instead, we now
call the functions that those handlers were calling directly, thus eliminating the need
for those handlers.

(WebKit::WebResourceLoadStatisticsStore::setMinimumTimeBetweenDataRecordsRemoval):
Set m_minimumTimeBetweenDataRecordsRemoval directly as it is now store on this class
instead of the coreStore.

(WebKit::WebResourceLoadStatisticsStore::shouldRemoveDataRecords):
(WebKit::WebResourceLoadStatisticsStore::dataRecordsBeingRemoved):
(WebKit::WebResourceLoadStatisticsStore::dataRecordsWereRemoved):
Those were merely moved from the ResourceLoadStatisticsStore.

  • UIProcess/WebResourceLoadStatisticsStore.h:
  • UIProcess/WebResourceLoadStatisticsTelemetry.cpp:

(WebKit::WebResourceLoadStatisticsTelemetry::calculateAndSubmit):
Check for sortedPrevalentResources.isEmpty() instead of checking if the size
if less than minimumPrevalentResourcesForTelemetry.
ResourceLoadStatisticsStore::sortedPrevalentResourceTelemetry() either returns
an empty vector or a vector with more than minimumPrevalentResourcesForTelemetry
items. Therefore, there is no need to expose minimumPrevalentResourcesForTelemetry.

Tools:

Rename testRunner API to match the new internal API names.

  • WebKitTestRunner/InjectedBundle/Bindings/TestRunner.idl:
  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::statisticsProcessStatisticsAndDataRecords):
(WTR::TestRunner::statisticsSubmitTelemetry):

  • WebKitTestRunner/InjectedBundle/TestRunner.h:
  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::statisticsProcessStatisticsAndDataRecords):
(WTR::TestController::statisticsSubmitTelemetry):

  • WebKitTestRunner/TestController.h:
  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

  • WebKitTestRunner/cocoa/TestControllerCocoa.mm:

(WTR::TestController::statisticsProcessStatisticsAndDataRecords):
(WTR::TestController::statisticsSubmitTelemetry):

LayoutTests:

Update layout tests to reflect changes to the testRunner API naming.

  • http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-mixed-statistics.html:
  • http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins.html:
  • http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-subresource-under-top-frame-origins.html:
  • http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-subresource-unique-redirects-to.html:
  • http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-mixed-statistics.html:
  • http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-sub-frame-under-top-frame-origins.html:
  • http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-under-top-frame-origins.html:
  • http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-unique-redirects-to.html:
  • http/tests/loading/resourceLoadStatistics/clear-in-memory-and-persistent-store-one-hour.html:
  • http/tests/loading/resourceLoadStatistics/clear-in-memory-and-persistent-store.html:
  • http/tests/loading/resourceLoadStatistics/grandfathering.html:
  • http/tests/loading/resourceLoadStatistics/non-prevalent-resource-with-user-interaction.html:
  • http/tests/loading/resourceLoadStatistics/non-prevalent-resource-without-user-interaction.html:
  • http/tests/loading/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-deletion.html:
  • http/tests/loading/resourceLoadStatistics/partitioned-and-unpartitioned-cookie-with-partitioning-timeout.html:
  • http/tests/loading/resourceLoadStatistics/partitioned-cookies-with-and-without-user-interaction.html:
  • http/tests/loading/resourceLoadStatistics/prevalent-resource-with-user-interaction-timeout.html:
  • http/tests/loading/resourceLoadStatistics/prevalent-resource-with-user-interaction.html:
  • http/tests/loading/resourceLoadStatistics/prevalent-resource-without-user-interaction.html:
  • http/tests/loading/resourceLoadStatistics/telemetry-generation.html:
8:58 AM Changeset in webkit [219276] by Yusuke Suzuki
  • 24 edits in trunk

Drop NOSNIFF compile flag
https://bugs.webkit.org/show_bug.cgi?id=174289

Reviewed by Michael Catanzaro.

.:

  • Source/cmake/WebKitFeatures.cmake:

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig:
  • css/StyleSheetContents.cpp:

(WebCore::StyleSheetContents::parseAuthorStyleSheet):
(WebCore::StyleSheetContents::notifyLoadedSheet):

  • dom/LoadableClassicScript.cpp:

(WebCore::LoadableClassicScript::notifyFinished):

  • loader/cache/CachedCSSStyleSheet.cpp:

(WebCore::CachedCSSStyleSheet::mimeTypeAllowedByNosniff):
(WebCore::CachedCSSStyleSheet::canUseSheet):

  • loader/cache/CachedCSSStyleSheet.h:
  • platform/network/HTTPParsers.cpp:

(WebCore::parseContentTypeOptionsHeader):

  • platform/network/HTTPParsers.h:
  • platform/network/ResourceResponseBase.cpp:

(WebCore::isScriptAllowedByNosniff):

  • platform/network/ResourceResponseBase.h:
  • workers/WorkerScriptLoader.cpp:

(WebCore::WorkerScriptLoader::didReceiveResponse):

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig:

Tools:

  • Scripts/webkitperl/FeatureList.pm:
  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:

Jul 7, 2017:

10:09 PM Changeset in webkit [219275] by Chris Dumez
  • 6 edits in trunk/Source/WebKit2

[WK2] Use a rolling 30-day uptime for processing statistics
https://bugs.webkit.org/show_bug.cgi?id=174235
<rdar://problem/33164381>

Reviewed by Brent Fulgham.

Follow-up fix for r219274 because it caused this test to time out:
http/tests/loading/resourceLoadStatistics/prevalent-resource-with-user-interaction-timeout.html

The test sets TimeToLiveUserInteraction to 0 so our implementation cannot use
0 as magic value to see if it was set. Instead, use std::optional.

  • UIProcess/API/Cocoa/WKWebsiteDataStore.mm:

(-[WKWebsiteDataStore _resourceLoadStatisticsResetToConsistentState]):

  • UIProcess/Storage/ResourceLoadStatisticsStore.cpp:

(WebKit::ResourceLoadStatisticsStore::setTimeToLiveUserInteraction):
(WebKit::ResourceLoadStatisticsStore::hasStatisticsExpired):

  • UIProcess/Storage/ResourceLoadStatisticsStore.h:
  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::setTimeToLiveUserInteraction):

  • UIProcess/WebResourceLoadStatisticsStore.h:
5:07 PM Changeset in webkit [219274] by Brent Fulgham
  • 10 edits in trunk/Source

[WK2] Use a rolling 30-day uptime for processing statistics
https://bugs.webkit.org/show_bug.cgi?id=174235
<rdar://problem/33164381>

Reviewed by Chris Dumez.

Source/WebCore:

Add a KeyedDecoder specialization for Deque.

  • platform/KeyedCoding.h:

(WebCore::KeyedDecoder::decodeObjects):

Source/WebKit2:

  • UIProcess/API/Cocoa/WKWebsiteDataStore.cpp:

(WebKit::WKWebsiteDataStore::_resourceLoadStatisticsResetToConsistentState): Initialize time-to-live to zero by default.

  • UIProcess/Storage/ResourceLoadStatisticsStore.cpp:

(WebKit::ResourceLoadStatisticsStore::createEncoderFromData): Write out vector
of operating dates.
(WebKit::ResourceLoadStatisticsStore::readDataFromDecoder): Read in vector of
operating dates.
(WebKit::ResourceLoadStatisticsStore::hasHadRecentUserInteraction): Check new
convenience method.
(WebKit::ResourceLoadStatisticsStore::markTodayAsOperatingDate): Added.
(WebKit::ResourceLoadStatisticsStore::hasStatisticsExpired): Added.

  • UIProcess/Storage/ResourceLoadStatisticsStore.h:
  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::readDataFromDiskIfNeeded): When reading
a new data file, update the current operating date (if needed).
(WebKit::WebResourceLoadStatisticsStore::handleDailyTasks): Roll uptime dates as
needed, then handle telemetry.

  • UIProcess/WebResourceLoadStatisticsStore.h:

Source/WTF:

Modify Deque to allow it to be used in a template specialization in KeyedDecoder.

  • wtf/Deque.h:
5:03 PM Changeset in webkit [219273] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Lower the max_protection for the separated heap
https://bugs.webkit.org/show_bug.cgi?id=174281

Patch by AJ Ringer <aringer@apple.com> on 2017-07-07
Reviewed by Oliver Hunt.

Switch to vm_protect so we can set maximum page protection.

  • jit/ExecutableAllocator.cpp:

(JSC::FixedVMPoolExecutableAllocator::initializeSeparatedWXHeaps):
(JSC::ExecutableAllocator::allocate):

3:02 PM Changeset in webkit [219272] by dbates@webkit.org
  • 5 edits
    3 adds in trunk

[AppCache] Ignore fallback entries whose namespace is not prefixed with manifest path
https://bugs.webkit.org/show_bug.cgi?id=174273
<rdar://problem/33011682>

Reviewed by Brent Fulgham.

Source/WebCore:

As per <https://html.spec.whatwg.org/multipage/offline.html#parsing-cache-manifests> (07/06/2017)
we should ignore fallback entires whose fallback namespace URL is not prefixed with
the manifest path. For now we only apply this policy when the manifest is served with
a non-standard Content-Type to minimize web compatibility risk.

Test: http/tests/appcache/fallback-namespace-outside-manifest-path.html

  • loader/appcache/ApplicationCacheGroup.cpp:

(WebCore::ApplicationCacheGroup::didFinishLoadingManifest): Pass the MIME type of the manifest.

  • loader/appcache/ManifestParser.cpp:

(WebCore::manifestPath): Computes the manifest path from a manifest URL.
(WebCore::parseManifest): Modified to take the MIME type of the manifest. If the MIME type is
non-standard (i.e. not text/cached-manifest) then skip fallback entries whose namespace is not
prefixed with the manifest path. Otherwise, process fallback entries as we do now. Also cleaned
up the code a bit while I was here, including renaming a local variable to be more descriptive
and using a const character array for the manifest signature to avoid the need to document the
length of the manifest signature in a comment.

  • loader/appcache/ManifestParser.h:

LayoutTests:

  • http/tests/appcache/fallback-namespace-outside-manifest-path-expected.txt: Added.
  • http/tests/appcache/fallback-namespace-outside-manifest-path.html: Added.
  • http/tests/appcache/resources/fallback-namespace-outside-manifest-path.txt: Added.
2:59 PM Changeset in webkit [219271] by Wenson Hsieh
  • 14 edits in trunk

[iOS DnD] For cross-app drags, 'drop' event handlers are never invoked if dataTransfer.dropEffect is not set while dragging
https://bugs.webkit.org/show_bug.cgi?id=174219
<rdar://problem/32083177>

Reviewed by Ryosuke Niwa.

Source/WebCore:

Currently, in DragController.cpp, defaultOperationForDrag maps a drag source operation mask of
DragOperationGeneric to DragOperationMove across all platforms. However, on iOS, where cross-app drag moves do
not trigger a drop, this means drop handlers won't fire unless the dropEffect is explicitly set to copy.

To fix this, we introduce DragController::platformGenericDragOperation(), which returns DragOperationCopy on iOS
and DragOperationMove (the existing behavior) elsewhere. defaultOperationForDrag then maps a drag source
operation mask of DragOperationGeneric to platformGenericDragOperation().

Tests: DataInteractionTests.ExternalSourceHTMLToUploadArea

DataInteractionTests.ExternalSourceImageAndHTMLToUploadArea
DataInteractionTests.ExternalSourceMoveOperationNotAllowed

  • page/DragController.cpp:

(WebCore::DragController::platformGenericDragOperation):
(WebCore::defaultOperationForDrag):

  • page/DragController.h:
  • page/mac/DragControllerMac.mm:

(WebCore::DragController::platformGenericDragOperation):

Source/WebKit2:

Tweak some testing SPI to return a drop operation flag instead of whether or not the drop operation was not
UIDropOperationCancel.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _simulateDataInteractionUpdated:]):

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _simulateDataInteractionUpdated:]):

Tools:

Add plumbing and support to mock the value of -allowsMoveOperation on the simulated UIDragDropSession objects.
Setting the DataInteractionSimulator's shouldAllowMoveOperation property to NO simulates a drag operation coming
in from another app out-of-process, for which move operations won't cause a drop to be performed in the first
place.

Also tweaks 2 existing unit tests regarding file uploads via JavaScript to simulate items coming in from a
different application, and adds a new test to check that if a drop area specifically requests a MOVE operation,
no action is taken when dropping.

  • TestWebKitAPI/Tests/WebKit2Cocoa/file-uploading.html:
  • TestWebKitAPI/Tests/ios/DataInteractionTests.mm:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/ios/DataInteractionSimulator.h:
  • TestWebKitAPI/ios/DataInteractionSimulator.mm:

(-[MockDragDropSession initWithItems:location:window:allowMove:]):
(-[MockDragDropSession allowsMoveOperation]):
(-[MockDataOperationSession initWithProviders:location:window:allowMove:]):
(-[MockDataInteractionSession initWithWindow:allowMove:]):
(-[DataInteractionSimulator initWithWebView:]):
(-[DataInteractionSimulator runFrom:to:]):
(-[DataInteractionSimulator _advanceProgress]):
(-[MockDragDropSession initWithItems:location:window:]): Deleted.
(-[MockDataOperationSession initWithProviders:location:window:]): Deleted.
(-[MockDataInteractionSession initWithWindow:]): Deleted.

2:44 PM Changeset in webkit [219270] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Resources are sometimes missing from the tree outline right before folderizing
https://bugs.webkit.org/show_bug.cgi?id=174277

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/TreeElement.js:

(WebInspector.TreeElement.prototype.expand):

2:33 PM Changeset in webkit [219269] by Devin Rousso
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: REGRESSION(r217258): WebSocket resource tree elements don't show the connection status
https://bugs.webkit.org/show_bug.cgi?id=174274

Reviewed by Brian Burg.

  • UserInterface/Views/FrameTreeElement.js:

(WebInspector.FrameTreeElement):

  • UserInterface/Views/ResourceTreeElement.js:

(WebInspector.ResourceTreeElement.prototype.populateContextMenu):

  • UserInterface/Views/WebSocketResourceTreeElement.js:

(WebInspector.WebSocketResourceTreeElement.prototype.populateContextMenu):
Move "Log WebSocket" context menu item to WebSocketResourceTreeElement.

2:30 PM Changeset in webkit [219268] by Devin Rousso
  • 23 edits
    1 copy
    2 adds in trunk

Web Inspector: Show all elements currently using a given CSS Canvas
https://bugs.webkit.org/show_bug.cgi?id=173965

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

  • inspector/protocol/Canvas.json:
    • Add requestCSSCanvasClientNodes command for getting the node IDs all nodes using this canvas via -webkit-canvas.
    • Add cssCanvasClientNodesChanged event that is dispatched whenever a node is added/removed from the list of -webkit-canvas clients.

Source/WebCore:

Test: inspector/canvas/css-canvas-clients.html

  • css/CSSImageGeneratorValue.cpp:

(WebCore::CSSImageGeneratorValue::addClient):
(WebCore::CSSImageGeneratorValue::removeClient):

  • css/CSSImageGeneratorValue.h:

(WebCore::CSSImageGeneratorValue::clients):

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::addObserver):
(WebCore::HTMLCanvasElement::removeObserver):
(WebCore::HTMLCanvasElement::cssCanvasClients):
Each time an observer is added/removed for a given HTMLCanvasElement, send an event to the
inspector frontend that the CSS canvas client nodes have changed. Additionally, anytime a
client/use is added/removed from one of the observing CSSCanvasValue, fire the same event.

  • css/CSSCanvasValue.h:

(isType):

  • html/HTMLCanvasElement.h:

(WebCore::CanvasObserver::isCSSCanvasValueObserver):
Allows type traits to distinguish CanvasObserver from CSSCanvasValue::CanvasObserverProxy.

  • inspector/InspectorCanvasAgent.h:
  • inspector/InspectorCanvasAgent.cpp:

(WebCore::InspectorCanvasAgent::requestCSSCanvasClientNodes):
(WebCore::InspectorCanvasAgent::didChangeCSSCanvasClientNodes):

  • inspector/InspectorInstrumentation.h:

(WebCore::InspectorInstrumentation::didChangeCSSCanvasClientNodes):

  • inspector/InspectorInstrumentation.cpp:

(WebCore::InspectorInstrumentation::didChangeCSSCanvasClientNodesImpl):
Notify the frontend that the list of client nodes has changed for the given canvas. Let the
frontend request the actual list of node IDs when it needs, possibly at a later time.

Source/WebInspectorUI:

  • UserInterface/Controllers/CanvasManager.js:

(WebInspector.CanvasManager.prototype.cssCanvasClientNodesChanged):

  • UserInterface/Models/Canvas.js:

(WebInspector.Canvas.prototype.requestCSSCanvasClientNodes):
(WebInspector.Canvas.prototype.cssCanvasClientNodesChanged):

  • UserInterface/Protocol/CanvasObserver.js:

(WebInspector.CanvasObserver.prototype.cssCanvasClientNodesChanged):

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Views/CanvasDetailsSidebarPanel.js:

(WebInspector.CanvasDetailsSidebarPanel):
(WebInspector.CanvasDetailsSidebarPanel.prototype.set canvas):
(WebInspector.CanvasDetailsSidebarPanel.prototype.initialLayout):
(WebInspector.CanvasDetailsSidebarPanel.prototype.layout):
(WebInspector.CanvasDetailsSidebarPanel.prototype._refreshCSSCanvasSection):
(WebInspector.CanvasDetailsSidebarPanel.prototype._formatMemoryRow):
Add CSS section for CSS canvases. Currently displays a list of node links, each of which is
using the selected canvas via -webkit-canvas.

  • UserInterface/Main.html:
  • UserInterface/Views/CanvasDetailsSidebarPanel.css: Added.

(.sidebar > .panel.details.canvas .details-section > .content .row.simple > .value > .node-link):

  • UserInterface/Controllers/DOMTreeManager.js:

(WebInspector.DOMTreeManager.prototype.ensureDocument):

  • UserInterface/Models/Canvas.js:

(WebInspector.Canvas.prototype.requestNode):

  • UserInterface/Views/SearchSidebarPanel.js:

(WebInspector.SearchSidebarPanel.prototype.performSearch):
Add convenience function that will call DOMAgent.getDocument with an empty function. Should
be used when it is necessary that the document has been sent to the frontend, but the
document node itself is not needed.

LayoutTests:

  • inspector/canvas/css-canvas-clients-expected.txt: Added.
  • inspector/canvas/css-canvas-clients.html: Added.
  • platform/mac/TestExpectations:
1:38 PM Changeset in webkit [219267] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Adjusted test expectations for webrtc/video-replace-muted-track.html.
https://bugs.webkit.org/show_bug.cgi?id=173608

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
1:24 PM Changeset in webkit [219266] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore

AVPlayer can continue to be active after released by MediaPlayerPrivateAVFoundationObjC.
https://bugs.webkit.org/show_bug.cgi?id=174264

Reviewed by Eric Carlson.

If the AVPlayer is retained (by an autorelease pool, or internally by other objects in
AVFoundation), releasing the AVPlayer is not enough to cancel loading or playback. So before
releasing the AVPlayer, make sure to disassociate the current AVPlayerItem, which should
cancel all activity in the AVPlayer.

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::cancelLoad):

1:20 PM Changeset in webkit [219265] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[Curl] Remove data url handler for async load
https://bugs.webkit.org/show_bug.cgi?id=174263

data url is handled by ResourceLoader. No need for specific handling
in platform dependent layer.

Patch by Basuke Suzuki <Basuke Suzuki> on 2017-07-07
Reviewed by Alex Christensen.

  • platform/network/curl/ResourceHandleManager.cpp:

(WebCore::ResourceHandleManager::startJob):

1:05 PM Changeset in webkit [219264] by Matt Lewis
  • 3 edits
    2 deletes in trunk

Unreviewed, rolling out r219257.

The test added in the revision was still extreamly flaky on
all testers.

Reverted changeset:

"[SVG] Leak in SVGAnimatedListPropertyTearOff"
https://bugs.webkit.org/show_bug.cgi?id=172545
http://trac.webkit.org/changeset/219257

12:50 PM Changeset in webkit [219263] by mark.lam@apple.com
  • 7 edits
    1 add in trunk

\n\r is not the same as \r\n.
https://bugs.webkit.org/show_bug.cgi?id=173053

Reviewed by Keith Miller.

JSTests:

  • stress/regress-173053.js: Added.
  • stress/template-literal-line-terminators.js:

Source/JavaScriptCore:

  • parser/Lexer.cpp:

(JSC::Lexer<T>::shiftLineTerminator):
(JSC::LineNumberAdder::add):

LayoutTests:

  • js/parse-backslash-before-newline-expected.txt:
  • js/script-tests/parse-backslash-before-newline.js:
12:36 PM Changeset in webkit [219262] by Matt Lewis
  • 3 edits in trunk/LayoutTests

Unreviewed, rolling out r219256.

Previous change to Test Expectations broke the tests

Reverted changeset:

"[WPE] Unreviewed gardening"
http://trac.webkit.org/changeset/219256

12:35 PM Changeset in webkit [219261] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Unreviewed, rolling out r219258.

Previous change to Test Expectations broke the tests

Reverted changeset:

"Unreviewed gardening, fix WK2 expectations after my previous
commit"
http://trac.webkit.org/changeset/219258

11:30 AM Changeset in webkit [219260] by commit-queue@webkit.org
  • 23 edits
    3 deletes in trunk

Unreviewed, rolling out r219238, r219239, and r219241.
https://bugs.webkit.org/show_bug.cgi?id=174265

"fast/workers/dedicated-worker-lifecycle.html is flaky"
(Requested by yusukesuzuki on #webkit).

Reverted changesets:

"[WTF] Implement WTF::ThreadGroup"
https://bugs.webkit.org/show_bug.cgi?id=174081
http://trac.webkit.org/changeset/219238

"Unreviewed, build fix after r219238"
https://bugs.webkit.org/show_bug.cgi?id=174081
http://trac.webkit.org/changeset/219239

"Unreviewed, CLoop build fix after r219238"
https://bugs.webkit.org/show_bug.cgi?id=174081
http://trac.webkit.org/changeset/219241

10:20 AM Changeset in webkit [219259] by commit-queue@webkit.org
  • 7 edits in trunk/Source/WebInspectorUI

Web Inspector: Clean up some unnecessary constructors
https://bugs.webkit.org/show_bug.cgi?id=174236

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

  • UserInterface/Controllers/CodeMirrorBezierEditingController.js:
  • UserInterface/Controllers/CodeMirrorColorEditingController.js:
  • UserInterface/Controllers/CodeMirrorGradientEditingController.js:
  • UserInterface/Views/DividerNavigationItem.js:
  • UserInterface/Views/FlexibleSpaceNavigationItem.js:
  • UserInterface/Views/IdleTreeElement.js:
9:43 AM Changeset in webkit [219258] by Michael Catanzaro
  • 2 edits in trunk/LayoutTests

Unreviewed gardening, fix WK2 expectations after my previous commit

  • platform/wk2/TestExpectations:
9:42 AM Changeset in webkit [219257] by svillar@igalia.com
  • 2 edits
    2 adds in trunk

[SVG] Leak in SVGAnimatedListPropertyTearOff
https://bugs.webkit.org/show_bug.cgi?id=172545

Reviewed by Said Abou-Hallawa.

SVGAnimatedListPropertyTearOff maintains a vector m_wrappers with references to
SVGPropertyTraits<PropertyType>::ListItemTearOff. Apart from that SVGPropertyTearOff has a
reference to SVGAnimatedProperty.

When SVGListProperty::getItemValuesAndWrappers() is called, it creates a
SVGPropertyTraits<PropertyType>::ListItemTearOff pointing to the same SVGAnimatedProperty (a
SVGAnimatedListPropertyTearOff) which stores the m_wrappers vector where the ListItemTearOff
is going to be added to. This effectively creates a reference cycle between the
SVGAnimatedListPropertyTearOff and all the ListItemTearOff it stores in m_wrappers.

We should detach those wrappers in propertyWillBeDeleted() in order to break the cycle.

  • svg/properties/SVGAnimatedListPropertyTearOff.h:
8:41 AM Changeset in webkit [219256] by Michael Catanzaro
  • 3 edits in trunk/LayoutTests

[WPE] Unreviewed gardening

  • platform/wk2/TestExpectations: Do not mark individual resourceLoadStatistics tests as

passing. Instead, mark the entire directory, so we don't have to override the expectations
for every single test individually in the WPE expectations file.

  • platform/wpe/TestExpectations: Update resourceLoadStatistics expectations.
5:45 AM Changeset in webkit [219255] by Yusuke Suzuki
  • 8 edits
    1 delete in trunk

[GTK][WPE] Enable X-Content-Type-Options: nosniff
https://bugs.webkit.org/show_bug.cgi?id=174250

Reviewed by Carlos Alberto Lopez Perez.

.:

Make nosniff enabled by default in all the ports.

  • Source/cmake/OptionsMac.cmake:
  • Source/cmake/OptionsWin.cmake:
  • Source/cmake/WebKitFeatures.cmake:

Tools:

  • Scripts/webkitperl/FeatureList.pm:

LayoutTests:

  • platform/gtk/TestExpectations:
  • platform/gtk/imported/w3c/web-platform-tests/fetch/nosniff/stylesheet-expected.txt: Removed.
4:48 AM Changeset in webkit [219254] by Claudio Saavedra
  • 2 edits in trunk/LayoutTests

[WPE] New baseline after r218740

Unreviewed gardening.

  • platform/wpe/js/dom/global-constructors-attributes-expected.txt:
3:44 AM Changeset in webkit [219253] by Claudio Saavedra
  • 2 edits in trunk/LayoutTests

[WPE] Unreviewed gardening

resourceLoadingStatistics tests are timing out and failing.

  • platform/wpe/TestExpectations:
3:32 AM Changeset in webkit [219252] by commit-queue@webkit.org
  • 7 edits
    7 adds in trunk

[GStreamer] vid.me videos do not play
https://bugs.webkit.org/show_bug.cgi?id=172240

Patch by Charlie Turner <cturner@igalia.com> on 2017-07-07
Reviewed by Xabier Rodriguez-Calvar.

Source/WebCore:

In r142251, code to hide the WK HTTP source elements from elsewhere in
the pipeline was removed. This has the nasty side-effect of
auto-plugging the WK HTTP source into things it really should not be
used in, especially the adaptive streaming demuxers. The reasons this
is bad are documented in several places on Bugzilla, see the parent
bug report for more details. The high-level issue is that the WK HTTP
source and its use of WebCore is not thread-safe. Although work has
been recently done to improve this situation, it's still not perfect.

Another issue is the interface hlsdemux expects its HTTP source to
implement, specifically seeking in READY.

This does rely on HTTP context sharing being available in GStreamer,
upstream bug is here:
https://bugzilla.gnome.org/show_bug.cgi?id=761099. The failing case
can be demonstrated with
https://github.com/thiagoss/adaptive-test-server but manual testing on
popular video hosting sites, including vid.me, shows that this doesn't
bite us at the moment, just something else to fix in the future.

There are some QoS issues with the adaptive streaming code in
GStreamer, but it seems much better to offer a below par QoS in lieu
of crashing/livelocking when playing certain streams, and issues can be
raised upstream when they arise.

This patch does take us further away from the future goal of having all
networking operations go through the network process, but in return it
solves some nasty crashes and livelocks that have been irritating
users for some time. With the pressure off on this issue, work can be
planned to consider how to make the WK HTTP source a better citizen
inside the GStreamer pipeline when we migrate the netcode to go
through the network process.

A new test is added to check that the single file HLS playlists
(new in version 4) can be played, which was the primary cause of
this bug report.

Test: http/tests/media/hls/range-request.html

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::setPlaybinURL): Perform
some trickery to make sure that we only ever fetch URLs handed to
us by WebCore. Any further URLs discovered inside the pipeline
will not get WKWS auto-plugged, since they'll be plain https?
schemas.
(WebCore::MediaPlayerPrivateGStreamer::load): Refactor to use the
setPlaybinURL helper method.
(WebCore::MediaPlayerPrivateGStreamer::loadNextLocation): Ditto.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h: Add

the setPlaybinURL helper method.

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webKitWebSrcGetProtocols): Only advertise webkit+https?, this
ensures we won't get auto-plugged by pipeline elements asking for
an element to fetch https? resources (like adaptive demuxers).
(convertPlaybinURI): Undo the trick when another element asks us
for our URI.

Tools:

Build httpsoupsrc again for use in adaptive streaming pipelines, and
have the existing libsoup build against GNOME to avoid header drift
against GStreamer's linked Soup library.

  • gtk/jhbuild.modules:

LayoutTests:

Add a test for single output file HLS playlists that require HTTP
range requests to playback. This failed using the WK http source
for reasons documented in the linked bug.

Generated with mp4hls --segment-duration 3 --output-single-file

  • Http/tests/media/hls/range-request-expected.txt: Added.
  • http/tests/media/hls/range-request.html: Added.
  • http/tests/media/resources/hls/range-request-playlist.m3u8: Added.
  • http/tests/media/resources/hls/range-request-playlists/iframes.m3u8: Added.
  • http/tests/media/resources/hls/range-request-playlists/media.ts: Added.
  • http/tests/media/resources/hls/range-request-playlists/stream.m3u8: Added.
3:25 AM Changeset in webkit [219251] by commit-queue@webkit.org
  • 4 edits in trunk/PerformanceTests

Speedometer 2.0: Fix vanilla JS example
https://bugs.webkit.org/show_bug.cgi?id=174246

Patch by Mathias Bynens <mathias@qiwi.be> on 2017-07-07
Reviewed by Ryosuke Niwa.

Previously, all TODO items were assigned an ID of null. This patch
fixes that bug. Manually deleting items now works again.

  • Speedometer/resources/todomvc/vanilla-examples/vanillajs/index.html: Made title consistent.
  • Speedometer/resources/todomvc/vanilla-examples/vanillajs/js/store.js: Fixed bug with deleting items.
  • Speedometer/resources/todomvc/vanilla-examples/vanillajs/readme.md: Added docs.
1:30 AM Changeset in webkit [219250] by Yusuke Suzuki
  • 2 edits in trunk/Source/WTF

Unreviewed, Windows build fix after r219233 part 4
https://bugs.webkit.org/show_bug.cgi?id=174231

  • wtf/Assertions.h:
12:22 AM Changeset in webkit [219249] by Antti Koivisto
  • 6 edits in trunk/Source/WebKit2

WKWebSiteDataStore.removeDataOfTypes should wait until disk cache files are actually removed before invoking completion handler
https://bugs.webkit.org/show_bug.cgi?id=174224
<rdar://problem/33067545>

Reviewed by Sam Weinig.

Currently we dispatch file deletion operations to a background queue and call the completion
handler without waiting for the I/O to complete.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::clearDiskCacheEntries):

Call a new version of NetworkCache::remove() for bulk deletion.
Note that it is fine to call this with an empty vector.

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::Cache::remove):

Bulk deletion with a completion handler.

(WebKit::NetworkCache::Cache::deleteFiles): Added.

Factor to a helper function.

  • NetworkProcess/cache/NetworkCache.h:
  • NetworkProcess/cache/NetworkCacheStorage.cpp:

(WebKit::NetworkCache::Storage::remove):

Remove files for all the provided keys in a queue and invoke the completion handler in the main thread when done.

  • NetworkProcess/cache/NetworkCacheStorage.h:
Note: See TracTimeline for information about the timeline view.