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:

Jul 6, 2017:

11:08 PM Changeset in webkit [219248] by Yusuke Suzuki
  • 2 edits in trunk/Source/WTF

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

  • wtf/Assertions.h:

(compilerFenceForCrash):

11:04 PM Changeset in webkit [219247] by Yusuke Suzuki
  • 2 edits in trunk/Source/WTF

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

  • wtf/Assertions.h:
10:57 PM Changeset in webkit [219246] by Lucas Forschler
  • 1 edit in trunk/Tools/ChangeLog

Write a support script to enable buildbot to upload to S3
https://bugs.webkit.org/show_bug.cgi?id=174196

Reviewed by Stephanie Lewis.

  • BuildSlaveSupport/build.webkit.org-config/transfer-archive-to-s3: Added.

(uploadToS3):
(archiveExists):

10:53 PM Changeset in webkit [219245] by Michael Catanzaro
  • 7 edits in trunk/LayoutTests

Unreviewed GTK and WPE test gardening

  • platform/gtk/TestExpectations:
  • platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/hkdf.worker-expected.txt:
  • platform/gtk/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/test_hkdf.https-expected.txt:
  • platform/wpe/TestExpectations:
  • platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/hkdf.worker-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/WebCryptoAPI/derive_bits_keys/test_hkdf.https-expected.txt:
10:33 PM Changeset in webkit [219244] by Yusuke Suzuki
  • 2 edits in trunk/Source/WTF

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

  • wtf/Compiler.h:
10:22 PM Changeset in webkit [219243] by Michael Catanzaro
  • 2 edits in trunk/LayoutTests

Follow-up to "REGRESSION(r209495): materiauxlaverdure.com fails to load"
https://bugs.webkit.org/show_bug.cgi?id=173301
<rdar://problem/32624850>

Unreviewed gardening. Attempt to fix this test by updating it to expect double quotes. It
was missed because it is marked as flaky on Mac, so no way to automatically detect the
failure there.

This doesn't actually fix the test for me due to some floating point issues, but it's a step
in the right direction, and I speculate this will fix the test on the GTK and WPE bots.

  • transitions/clip-path-path-transitions.html:
10:19 PM Changeset in webkit [219242] by Chris Dumez
  • 3 edits in trunk/Source/WebKit2

Fix bad usage of static variables in ResourceLoadStatisticsStore
https://bugs.webkit.org/show_bug.cgi?id=174237

Reviewed by Brent Fulgham.

Fix bad usage of static variables in ResourceLoadStatisticsStore. Those can be set via
member functions on ResourceLoadStatisticsStore so they should be data members. The
API to set them is associated to a particular store and there can in theory be several
stores.

  • UIProcess/Storage/ResourceLoadStatisticsStore.cpp:

(WebKit::ResourceLoadStatisticsStore::shouldPartitionCookies):
(WebKit::ResourceLoadStatisticsStore::setTimeToLiveUserInteraction):
(WebKit::ResourceLoadStatisticsStore::setTimeToLiveCookiePartitionFree):
(WebKit::ResourceLoadStatisticsStore::setMinimumTimeBetweenDataRecordsRemoval):
(WebKit::ResourceLoadStatisticsStore::setGrandfatheringTime):
(WebKit::ResourceLoadStatisticsStore::hasHadRecentUserInteraction):
(WebKit::ResourceLoadStatisticsStore::handleFreshStartWithEmptyOrNoStore):
(WebKit::ResourceLoadStatisticsStore::shouldRemoveDataRecords):
(WebKit::shouldPartitionCookies): Deleted.

  • UIProcess/Storage/ResourceLoadStatisticsStore.h:
10:18 PM Changeset in webkit [219241] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

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

  • heap/MachineStackMarker.cpp:
10:10 PM Changeset in webkit [219240] by Lucas Forschler
  • 1 edit
    1 add in trunk/Tools

Enabling uploading archives to S3.
https://bugs.webkit.org/show_bug.cgi?id=174198

Reviewed by Stephanie Lewis.

  • BuildSlaveSupport/build.webkit.org-config/master.cfg:

(ArchiveMinifiedBuiltProduct): Create a minified archive from a full archive
(UploadMinifiedBuiltProduct): Upload minified archive to build master
(TransferToS3): Transfer full and minified archives to S3

10:08 PM Changeset in webkit [219239] by Yusuke Suzuki
  • 2 edits in trunk/Source/WTF

Unreviewed, build fix after r219238
https://bugs.webkit.org/show_bug.cgi?id=174081

  • wtf/Threading.cpp:

(WTF::Thread::addToThreadGroup):

9:56 PM Changeset in webkit [219238] by Yusuke Suzuki
  • 23 edits
    2 copies
    1 add in trunk

[WTF] Implement WTF::ThreadGroup
https://bugs.webkit.org/show_bug.cgi?id=174081

Reviewed by Mark Lam.

Source/JavaScriptCore:

Large part of MachineThreads are now removed and replaced with WTF::ThreadGroup.
And SamplingProfiler and others interact with WTF::Thread directly.

  • API/tests/ExecutionTimeLimitTest.cpp:
  • heap/MachineStackMarker.cpp:

(JSC::MachineThreads::MachineThreads):
(JSC::captureStack):
(JSC::MachineThreads::tryCopyOtherThreadStack):
(JSC::MachineThreads::tryCopyOtherThreadStacks):
(JSC::MachineThreads::gatherConservativeRoots):
(JSC::ActiveMachineThreadsManager::Locker::Locker): Deleted.
(JSC::ActiveMachineThreadsManager::add): Deleted.
(JSC::ActiveMachineThreadsManager::remove): Deleted.
(JSC::ActiveMachineThreadsManager::contains): Deleted.
(JSC::ActiveMachineThreadsManager::ActiveMachineThreadsManager): Deleted.
(JSC::activeMachineThreadsManager): Deleted.
(JSC::MachineThreads::~MachineThreads): Deleted.
(JSC::MachineThreads::addCurrentThread): Deleted.
(): Deleted.
(JSC::MachineThreads::removeThread): Deleted.
(JSC::MachineThreads::removeThreadIfFound): Deleted.
(JSC::MachineThreads::MachineThread::MachineThread): Deleted.
(JSC::MachineThreads::MachineThread::getRegisters): Deleted.
(JSC::MachineThreads::MachineThread::Registers::stackPointer): Deleted.
(JSC::MachineThreads::MachineThread::Registers::framePointer): Deleted.
(JSC::MachineThreads::MachineThread::Registers::instructionPointer): Deleted.
(JSC::MachineThreads::MachineThread::Registers::llintPC): Deleted.
(JSC::MachineThreads::MachineThread::captureStack): Deleted.

  • heap/MachineStackMarker.h:

(JSC::MachineThreads::addCurrentThread):
(JSC::MachineThreads::getLock):
(JSC::MachineThreads::threads):
(JSC::MachineThreads::MachineThread::suspend): Deleted.
(JSC::MachineThreads::MachineThread::resume): Deleted.
(JSC::MachineThreads::MachineThread::threadID): Deleted.
(JSC::MachineThreads::MachineThread::stackBase): Deleted.
(JSC::MachineThreads::MachineThread::stackEnd): Deleted.
(JSC::MachineThreads::threadsListHead): Deleted.

  • runtime/SamplingProfiler.cpp:

(JSC::FrameWalker::isValidFramePointer):
(JSC::SamplingProfiler::SamplingProfiler):
(JSC::SamplingProfiler::takeSample):
(JSC::SamplingProfiler::noticeCurrentThreadAsJSCExecutionThread):

  • runtime/SamplingProfiler.h:
  • wasm/WasmMachineThreads.cpp:

(JSC::Wasm::resetInstructionCacheOnAllThreads):

Source/WebCore:

  • page/ResourceUsageThread.h:

Source/WebKit2:

  • Shared/AsyncRequest.h:
  • UIProcess/Storage/ResourceLoadStatisticsStore.h:

Source/WTF:

This patch implements WTF::ThreadGroup. It implements core of JSC::MachineThreads with more reliable way.
JSC::MachineThreads was complicated because of managing dead threads. Each JSC::MachineThreads has its
own TLS with a registered destructor. And everytime a thread dies, the registered TLS destructor is called.
And this destructor will remove the current dying thread from JSC::MachineThreads.

However the above implementation is tricky. And each JSC::MachineThreads requires own TLS space, which is
not considered in WTF's Windows ThreadSpecific implementation. Current design works well since we only
have small number of MachineThreads right now.

Instead, we use more reliable way. After introducing WTF::Thread, WTF::Thread has WTF::Thread::didExit,
which is called when associated TLS (with WTF::Thread) is destroyed. We leverage this mechanism to remove
WTF::Thread from MachineThreads.

This patch introduces WTF::ThreadGroup. It is tightly integrated with WTF::Thread: WTF::Thread knows
ThreadGroups which includes this thread. And WTF::ThreadGroup of course knows WTF::Threads added to it.
WTF::Thread::didExit carefully remove itself from WTF::ThreadGroups.

The most important part of this patch is locking. WTF::Thread can die. And WTF::ThreadGroup can die.
If we take a design using two fine grain locks in WTF::Thread and WTF::ThreadGroup, we easily encounter
dead lock. Consider the following case.

  1. When adding WTF::Thread (TH) to WTF::ThreadGroup (THG), we first hold a lock of THG, and hold a lock of TH (locking order is THG -> TH).
  2. When TH dies, TH need to hold a lock of TH to iterate THGs. And we hold a lock of THG to unregister TH from it (locking order is TH -> THG).
  3. When suspending and resuming THs in THG, we first hold a lock of THG. And then, we hold a lock of TH to suspend and resume it (locking order is THG -> TH).
  4. When destroying THG, we need to hold a lock of TH to unregister THG from TH. We can hold a lock of THG before that (locking order is THG -> TH).

Then, it easily causes dead lock. We cannot swap the locking order of (2) since iterating THG requires a lock of TH.
To solve this problem, we introduce one global lock ThreadGroup::destructionMutex (GL).

  1. When adding WTF::Thread (TH) to WTF::ThreadGroup (THG), we first hold GL, and hold a lock of THG. Do not hold a

lock of TH. TH's thread groups information is guarded by GL instead of a lock of TH (locking order is GL -> THG).

  1. When TH dies, TH need to hold GL to iterate THGs. And we hold a lock of THG to unregister TH from it (locking order is GL -> THG).
  2. When suspending and resuming THs in THG, we first hold a lock of THG. And then, we hold a lock of TH to suspend and resume it (locking order is THG -> TH).
  3. When destroying THG, we need to hold GL to unregister THG from TH. We can hold a lock of THG after that (locking order is GL -> THG).

We still have a lock of THG. By separating GL and THG's lock, we can hold a lock of THG while completely unrelated TH is destructed which takes a lock of GL and unrelated THG.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/AutomaticThread.cpp:
  • wtf/CMakeLists.txt:
  • wtf/CrossThreadCopier.h:
  • wtf/ParkingLot.h:
  • wtf/ThreadGroup.cpp: Copied from Source/JavaScriptCore/wasm/WasmMachineThreads.cpp.

(WTF::ThreadGroup::destructionMutex):
(WTF::ThreadGroup::~ThreadGroup):
(WTF::ThreadGroup::add):
(WTF::ThreadGroup::addCurrentThread):
(WTF::ThreadGroup::removeCurrentThread):

  • wtf/ThreadGroup.h: Copied from Source/JavaScriptCore/wasm/WasmMachineThreads.cpp.

(WTF::ThreadGroup::create):
(WTF::ThreadGroup::threads):
(WTF::ThreadGroup::getLock):

  • wtf/Threading.cpp:

(WTF::Thread::didExit):
(WTF::Thread::addToThreadGroup):
(WTF::Thread::removeFromThreadGroup):

  • wtf/Threading.h:

(WTF::Thread::canAddToThreadGroup):

Tools:

Add WTF::ThreadGroup tests.

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

(TestWebKitAPI::TEST):

9:42 PM Changeset in webkit [219237] by Yusuke Suzuki
  • 148 edits
    1 delete in trunk

[WTF] Clean up StringStatics.cpp by using LazyNeverDestroyed<> for Atoms
https://bugs.webkit.org/show_bug.cgi?id=174150

Reviewed by Mark Lam.

Source/WebCore:

  • Modules/mediacontrols/MediaControlsHost.cpp:

(WebCore::MediaControlsHost::captionDisplayMode):

  • Modules/mediastream/RTCDataChannel.cpp:

(WebCore::RTCDataChannel::binaryType):

  • accessibility/AXObjectCache.cpp:

(WebCore::createFromRenderer):

  • accessibility/AccessibilityMediaControls.cpp:

(WebCore::AccessibilityMediaControl::controlTypeName):

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::language):
(WebCore::AccessibilityObject::defaultLiveRegionStatusForRole):
(WebCore::AccessibilityObject::actionVerb):
(WebCore::AccessibilityObject::getAttribute):
(WebCore::AccessibilityObject::placeholderValue):

  • accessibility/AccessibilityObject.h:

(WebCore::AccessibilityObject::accessKey):
(WebCore::AccessibilityObject::ariaLiveRegionRelevant):

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::accessKey):
(WebCore::AccessibilityRenderObject::actionVerb):

  • bindings/js/JSCustomElementInterface.cpp:

(WebCore::JSCustomElementInterface::constructElementWithFallback):

  • bindings/js/JSCustomElementRegistryCustom.cpp:

(WebCore::JSCustomElementRegistry::define):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateDefaultValue):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAtomicStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAtomicStringIsNullBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAtomicStringIsEmptyStringBody):

  • css/CSSPageRule.cpp:

(WebCore::CSSPageRule::selectorText):

  • css/CSSPrimitiveValue.cpp:

(WebCore::valueName):

  • css/CSSSelector.cpp:

(WebCore::simpleSelectorSpecificityInternal):
(WebCore::CSSSelector::specificityForPage):
(WebCore::CSSSelector::RareData::RareData):

  • css/CSSSelector.h:

(WebCore::CSSSelector::argument):

  • css/CSSSelectorList.cpp:

(WebCore::SelectorNeedsNamespaceResolutionFunctor::operator()):

  • css/PageRuleCollector.cpp:

(WebCore::checkPageSelectorComponents):

  • css/RuleSet.cpp:

(WebCore::computeMatchBasedOnRuleHash):
(WebCore::RuleSet::addRule):

  • css/SelectorChecker.cpp:

(WebCore::tagMatches):

  • css/SelectorFilter.cpp:

(WebCore::collectDescendantSelectorIdentifierHashes):

  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertStringOrAuto):
(WebCore::StyleBuilderConverter::convertStringOrNone):

  • css/StyleBuilderCustom.h:

(WebCore::StyleBuilderCustom::applyValueWebkitLocale):
(WebCore::StyleBuilderCustom::applyValueWebkitTextEmphasisStyle):
(WebCore::StyleBuilderCustom::applyValueContent):
(WebCore::StyleBuilderCustom::applyValueAlt):

  • css/StyleSheetContents.cpp:

(WebCore::StyleSheetContents::StyleSheetContents):
(WebCore::StyleSheetContents::namespaceURIFromPrefix):

  • css/makeprop.pl:
  • css/parser/CSSParserImpl.cpp:

(WebCore::CSSParserImpl::parsePageSelector):

  • css/parser/CSSSelectorParser.cpp:

(WebCore::CSSSelectorParser::consumeCompoundSelector):
(WebCore::CSSSelectorParser::consumeName):
(WebCore::CSSSelectorParser::consumeAttribute):
(WebCore::CSSSelectorParser::defaultNamespace):
(WebCore::CSSSelectorParser::determineNamespace):
(WebCore::CSSSelectorParser::prependTypeSelectorIfNeeded):

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::attributeNameTestingRequiresNamespaceRegister):
(WebCore::SelectorCompiler::equalTagNames):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeMatching):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementHasTagName):

  • dom/Attr.cpp:

(WebCore::Attr::setPrefix):
(WebCore::Attr::attachToElement):

  • dom/Attribute.h:

(WebCore::Attribute::nameMatchesFilter):

  • dom/ConstantPropertyMap.cpp:

(WebCore::ConstantPropertyMap::nameForProperty):

  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::getElementsByTagName):
(WebCore::ContainerNode::getElementsByTagNameNS):

  • dom/CustomElementReactionQueue.cpp:

(WebCore::CustomElementReactionQueue::enqueuePostUpgradeReactions):

  • dom/DatasetDOMStringMap.cpp:

(WebCore::convertPropertyNameToAttributeName):

  • dom/Document.cpp:

(WebCore::createUpgradeCandidateElement):
(WebCore::Document::createElementForBindings):
(WebCore::Document::importNode):
(WebCore::Document::hasValidNamespaceForElements):
(WebCore::Document::processBaseElement):
(WebCore::Document::dir):
(WebCore::Document::bgColor):
(WebCore::Document::fgColor):
(WebCore::Document::alinkColor):
(WebCore::Document::linkColorForBindings):
(WebCore::Document::vlinkColor):

  • dom/Document.h:
  • dom/Element.cpp:

(WebCore::Element::setBooleanAttribute):
(WebCore::Element::synchronizeAttribute):
(WebCore::Element::getAttribute):
(WebCore::Element::getAttributeNS):
(WebCore::Element::setAttribute):
(WebCore::Element::parserSetAttributes):
(WebCore::Element::didMoveToNewDocument):
(WebCore::Element::setPrefix):
(WebCore::Element::insertedInto):
(WebCore::Element::removedFrom):
(WebCore::Element::removeAttributeInternal):
(WebCore::Element::addAttributeInternal):
(WebCore::Element::removeAttributeNS):
(WebCore::Element::getAttributeNodeNS):
(WebCore::Element::hasAttributeNS):
(WebCore::Element::computeInheritedLanguage):
(WebCore::Element::updateNameForDocument):
(WebCore::Element::updateIdForDocument):
(WebCore::Element::didAddAttribute):
(WebCore::Element::didRemoveAttribute):
(WebCore::Element::cloneAttributesFromElement):

  • dom/Element.h:

(WebCore::Element::attributeWithoutSynchronization):
(WebCore::Element::idForStyleResolution):
(WebCore::Element::getIdAttribute):
(WebCore::Element::getNameAttribute):

  • dom/EventTarget.cpp:

(WebCore::legacyType):

  • dom/MutationRecord.h:

(WebCore::MutationRecord::attributeName):
(WebCore::MutationRecord::attributeNamespace):

  • dom/NamedNodeMap.cpp:

(WebCore::NamedNodeMap::removeNamedItemNS):

  • dom/Node.cpp:

(WebCore::Node::prefix):
(WebCore::Node::localName):
(WebCore::Node::namespaceURI):
(WebCore::Node::checkSetPrefix):
(WebCore::locateDefaultNamespace):
(WebCore::Node::isDefaultNamespace):
(WebCore::Node::lookupNamespaceURI):
(WebCore::locateNamespacePrefix):
(WebCore::Node::lookupPrefix):

  • dom/NodeRareData.h:

(WebCore::NodeListsNodeData::addCachedTagCollectionNS):
(WebCore::NodeListsNodeData::addCachedCollection):
(WebCore::NodeListsNodeData::cachedCollection):
(WebCore::NodeListsNodeData::removeCacheWithAtomicName):
(WebCore::NodeListsNodeData::removeCachedTagCollectionNS):
(WebCore::NodeListsNodeData::removeCachedCollection):

  • dom/PseudoElement.cpp:

(WebCore::pseudoElementTagName):

  • dom/QualifiedName.cpp:

(WebCore::QualifiedName::init):
(WebCore::nullQName):
(WebCore::createQualifiedName):

  • dom/QualifiedName.h:

(WebCore::QualifiedName::hasPrefix):

  • dom/SelectorQuery.cpp:

(WebCore::SelectorDataList::executeSingleTagNameSelectorData):

  • dom/SlotAssignment.cpp:

(WebCore::slotNameFromAttributeValue):

  • dom/SlotAssignment.h:

(WebCore::SlotAssignment::defaultSlotName):
(WebCore::ShadowRoot::didRemoveAllChildrenOfShadowHost):
(WebCore::ShadowRoot::didChangeDefaultSlot):

  • dom/TagCollection.cpp:

(WebCore::TagCollection::TagCollection):
(WebCore::HTMLTagCollection::HTMLTagCollection):

  • dom/TagCollection.h:

(WebCore::TagCollectionNS::elementMatches):

  • dom/make_names.pl:

(printNamesCppFile):
(printDefinitions):
(printFactoryCppFile):

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::removeNodeAttribute):

  • editing/Editing.cpp:

(WebCore::createHTMLElement):

  • editing/MarkupAccumulator.cpp:

(WebCore::MarkupAccumulator::serializeNodesWithNamespaces):
(WebCore::MarkupAccumulator::shouldAddNamespaceElement):
(WebCore::MarkupAccumulator::shouldAddNamespaceAttribute):
(WebCore::MarkupAccumulator::appendNamespace):
(WebCore::MarkupAccumulator::appendOpenTag):
(WebCore::MarkupAccumulator::appendAttribute):

  • editing/gtk/EditorGtk.cpp:

(WebCore::elementURL):

  • editing/markup.cpp:

(WebCore::AttributeChange::AttributeChange):

  • html/Autocapitalize.cpp:

(WebCore::stringForAutocapitalizeType):

  • html/Autofill.cpp:

(WebCore::AutofillData::createFromHTMLFormControlElement):

  • html/DOMTokenList.h:

(WebCore::DOMTokenList::item):

  • html/FormAssociatedElement.cpp:

(WebCore::FormAssociatedElement::name):

  • html/HTMLButtonElement.cpp:

(WebCore::HTMLButtonElement::formControlType):

  • html/HTMLDetailsElement.cpp:

(WebCore::HTMLDetailsElement::toggleOpen):

  • html/HTMLDocument.cpp:

(WebCore::HTMLDocument::isCaseSensitiveAttribute):

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::eventNameForEventHandlerAttribute):
(WebCore::toValidDirValue):

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::name):
(WebCore::HTMLInputElement::updateType):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::doesHaveAttribute):

  • html/HTMLOptionElement.cpp:

(WebCore::HTMLOptionElement::createForJSConstructor):

  • html/HTMLParamElement.cpp:

(WebCore::HTMLParamElement::name):

  • html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::setMultiple):

  • html/HTMLTableCellElement.cpp:

(WebCore::HTMLTableCellElement::scope):

  • html/HTMLTrackElement.cpp:

(WebCore::HTMLTrackElement::mediaElementCrossOriginAttribute):

  • html/LabelableElement.cpp:

(WebCore::LabelableElement::labels):

  • html/LabelsNodeList.cpp:

(WebCore::LabelsNodeList::~LabelsNodeList):

  • html/MediaController.cpp:

(MediaController::playbackState):
(eventNameForReadyState):

  • html/MediaDocument.cpp:

(WebCore::MediaDocumentParser::createDocumentStructure):

  • html/parser/AtomicHTMLToken.h:

(WebCore::AtomicHTMLToken::initializeAttributes):

  • html/parser/HTMLConstructionSite.cpp:

(WebCore::HTMLConstructionSite::createElement):
(WebCore::HTMLConstructionSite::createHTMLElementOrFindCustomElementInterface):

  • html/parser/HTMLParserIdioms.cpp:

(WebCore::stripLeadingAndTrailingHTMLSpaces):
(WebCore::parseHTMLHashNameReference):

  • html/parser/HTMLTreeBuilder.cpp:

(WebCore::createForeignAttributesMap):

  • html/track/InbandTextTrack.cpp:

(WebCore::InbandTextTrack::InbandTextTrack):

  • html/track/LoadableTextTrack.cpp:

(WebCore::LoadableTextTrack::id):

  • html/track/TextTrack.cpp:

(WebCore::TextTrack::captionMenuOffItem):
(WebCore::TextTrack::captionMenuAutomaticItem):

  • html/track/TrackBase.cpp:

(WebCore::MediaTrackBase::setKindInternal):

  • html/track/VTTRegion.cpp:

(WebCore::VTTRegion::scroll):

  • html/track/WebVTTElement.cpp:

(WebCore::nodeTypeToTagName):

  • html/track/WebVTTElement.h:
  • html/track/WebVTTToken.h:

(WebCore::WebVTTToken::StartTag):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::clear):

  • loader/FrameLoader.h:
  • loader/ImageLoader.cpp:

(WebCore::ImageLoader::clearFailedLoadURL):

  • loader/NavigationAction.h:
  • loader/PolicyChecker.cpp:

(WebCore::PolicyChecker::checkNavigationPolicy):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::showModalDialog):

  • page/EventHandler.cpp:

(WebCore::eventNameForTouchPointState):

  • page/FrameTree.cpp:

(WebCore::FrameTree::setName):
(WebCore::FrameTree::clearName):

  • page/Page.cpp:

(WebCore::Page::groupName):

  • platform/graphics/ComplexTextController.cpp:

(WebCore::ComplexTextController::offsetForPosition):

  • platform/graphics/FontCache.cpp:

(WebCore::FontCache::alternateFamilyName):

  • platform/graphics/FontDescription.h:

(WebCore::FontCascadeDescription::initialLocale):

  • platform/graphics/FontGenericFamilies.cpp:

(WebCore::genericFontFamilyForScript):

  • platform/graphics/InbandTextTrackPrivate.h:

(WebCore::InbandTextTrackPrivate::inBandMetadataTrackDispatchType):

  • platform/graphics/TrackPrivateBase.h:

(WebCore::TrackPrivateBase::id):
(WebCore::TrackPrivateBase::label):
(WebCore::TrackPrivateBase::language):

  • platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.mm:

(WebCore::AVTrackPrivateAVFObjCImpl::id):
(WebCore::AVTrackPrivateAVFObjCImpl::label):
(WebCore::AVTrackPrivateAVFObjCImpl::language):

  • platform/graphics/avfoundation/InbandMetadataTextTrackPrivateAVF.h:
  • platform/graphics/avfoundation/cf/InbandTextTrackPrivateAVCF.cpp:

(WebCore::InbandTextTrackPrivateAVCF::label):
(WebCore::InbandTextTrackPrivateAVCF::language):

  • platform/graphics/avfoundation/cf/InbandTextTrackPrivateLegacyAVCF.cpp:

(WebCore::InbandTextTrackPrivateLegacyAVCF::label):
(WebCore::InbandTextTrackPrivateLegacyAVCF::language):

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

(WebCore::InbandTextTrackPrivateAVFObjC::label):
(WebCore::InbandTextTrackPrivateAVFObjC::language):

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

(WebCore::InbandTextTrackPrivateLegacyAVFObjC::label):
(WebCore::InbandTextTrackPrivateLegacyAVFObjC::language):

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

(WebCore::metadataType):
(WebCore::MediaPlayerPrivateAVFoundationObjC::metadataDidArrive):

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::FontCache::platformAlternateFamilyName):

  • platform/graphics/cocoa/FontDescriptionCocoa.cpp:

(WebCore::FontCascadeDescription::effectiveFamilyAt):

  • platform/graphics/freetype/FontCacheFreeType.cpp:

(WebCore::FontCache::platformAlternateFamilyName):

  • platform/graphics/gstreamer/InbandMetadataTextTrackPrivateGStreamer.h:

(WebCore::InbandMetadataTextTrackPrivateGStreamer::create):

  • platform/graphics/win/FontCacheWin.cpp:

(WebCore::FontCache::platformAlternateFamilyName):

  • platform/mediastream/AudioTrackPrivateMediaStream.h:
  • platform/mediastream/RealtimeMediaSourceSettings.cpp:

(WebCore::RealtimeMediaSourceSettings::facingMode):

  • platform/mediastream/VideoTrackPrivateMediaStream.h:
  • rendering/HitTestResult.cpp:

(WebCore::HitTestResult::linkSuggestedFilename):

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::paint):

  • rendering/RenderListItem.cpp:

(WebCore::RenderListItem::markerText):

  • rendering/RenderText.cpp:

(WebCore::RenderText::previousOffset):
(WebCore::RenderText::nextOffset):

  • rendering/RenderTreeAsText.cpp:

(WebCore::RenderTreeAsText::writeRenderObject):

  • rendering/TextPainter.cpp:

(WebCore::TextPainter::paintTextAndEmphasisMarksIfNeeded):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::textEmphasisMarkString):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::initialHyphenationString):
(WebCore::RenderStyle::initialTextEmphasisCustomMark):
(WebCore::RenderStyle::initialContentAltText):
(WebCore::RenderStyle::initialLineGrid):
(WebCore::RenderStyle::initialFlowThread):
(WebCore::RenderStyle::initialRegionThread):

  • style/StyleScope.cpp:

(WebCore::Style::Scope::collectActiveStyleSheets):

  • svg/SVGElement.cpp:

(WebCore::SVGElement::getPresentationAttribute):

  • svg/SVGElement.h:

(WebCore::SVGAttributeHashTranslator::hash):

  • svg/SVGUseElement.cpp:

(WebCore::SVGUseElement::transferSizeAttributesToTargetClone):

  • svg/animation/SVGSMILElement.cpp:

(WebCore::SVGSMILElement::constructAttributeName):

  • testing/MockCDMFactory.cpp:

(WebCore::MockCDMInstance::requestLicense):

  • xml/XMLErrors.cpp:

(WebCore::createXHTMLParserErrorHeader):

  • xml/XPathStep.cpp:

(WebCore::XPath::nodeMatchesBasicTest):
(WebCore::XPath::Step::nodesInAxis):

  • xml/parser/XMLDocumentParserLibxml2.cpp:

(WebCore::XMLDocumentParser::XMLDocumentParser):
(WebCore::handleNamespaceAttributes):
(WebCore::handleElementAttributes):

Source/WebKit/mac:

  • DOM/DOM.mm:

(lookupElementClass):

Source/WTF:

This patch cleans up StringStatics.cpp and remove it from the tree.

  1. Move StringImpl methods to appropriate place, "StringImpl.cpp".

StringImpl::hashSlowCase() and StringImpl::concurrentHash() are defined in
StringStatics.cpp. But they should be defined in StringImpl.cpp.
This patch just moves them to StringImpl.cpp.

  1. Use LazyNeverDestroyed to initialize AtomicString atoms like emptyAtom.

Previously, we initialized AtomicString atoms like emptyAtom in a hacky way.
We first define them as extern global variables. However, AtomicString has
a non-trivial constructor. Thus, we cannot do this because it requires global
constructor calls. This is why we have StringStatics.cpp. In this file, we
include "StaticConstructors.h". After including this file, all the global
constructor call disabled in Windows. And in GCC environment, we allocate
void* storage for that variable. And we use placement new in AtomicString::init()
to initialize these storage.
However, we already have better way for that: LazyNeverDestroyed. It just allocates
storage like the above. And it does not have any global constructors. Thus
we can just declare it as a global variable. And we initialize them lazily in
AtomicString::init(). This way effectively avoids "StaticConstructors.h" hacky way.
And it makes "StringStatics.cpp" unnecessary.
Then, we just move these variables and AtomicString::init() to AtomicString.cpp.

And we also change emptyAtom to emptyAtom() to get the value from LazyNeverDestroyed<>.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/text/AtomicString.cpp:

(WTF::AtomicString::convertASCIICase):
(WTF::AtomicString::fromUTF8Internal):
(WTF::AtomicString::init):

  • wtf/text/AtomicString.h:

(WTF::nullAtom):
(WTF::emptyAtom):
(WTF::starAtom):
(WTF::xmlAtom):
(WTF::xmlnsAtom):
(WTF::AtomicString::fromUTF8):

  • wtf/text/StringBuilder.h:

(WTF::StringBuilder::toAtomicString):

  • wtf/text/StringImpl.cpp:

(WTF::StringImpl::hashSlowCase):
(WTF::StringImpl::concurrentHash):

  • wtf/text/StringStatics.cpp: Removed.

Tools:

  • TestWebKitAPI/Tests/WTF/StringBuilder.cpp:

(TestWebKitAPI::TEST):

  • TestWebKitAPI/TestsController.cpp:

(TestWebKitAPI::TestsController::TestsController):

9:15 PM Changeset in webkit [219236] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

Drop unnecessary uses of targetStatistics.dataRecordsRemoved in ResourceLoadObserver
https://bugs.webkit.org/show_bug.cgi?id=174234

Reviewed by Brent Fulgham.

Drop unnecessary uses of targetStatistics.dataRecordsRemoved in ResourceLoadObserver. It is
always 0 since this member is only initialized later on, in the UIProcess.

  • loader/ResourceLoadObserver.cpp:

(WebCore::ResourceLoadObserver::logFrameNavigation):
(WebCore::ResourceLoadObserver::logSubresourceLoading):
(WebCore::ResourceLoadObserver::logWebSocketLoading):

9:13 PM Changeset in webkit [219235] by Lucas Forschler
  • 2 edits in trunk/Tools

Enabling uploading archives to S3.
https://bugs.webkit.org/show_bug.cgi?id=174198

Reviewed by Lucas Forschler.

  • BuildSlaveSupport/build.webkit.org-config/master.cfg:

(ArchiveMinifiedBuiltProduct): Create a minified archive from a full archive
(UploadMinifiedBuiltProduct): Upload minified archive to build master
(TransferToS3): Transfer full and minified archives to S3

8:37 PM Changeset in webkit [219234] by yoav@yoav.ws
  • 2 edits in trunk/Source/WebCore

[preload] Avoid reflecting "video" and "audio" when they are not supported as value
https://bugs.webkit.org/show_bug.cgi?id=174199

Reviewed by Youenn Fablet.

No new tests as video/audio is supported in tests. I tested this manually.

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::as): Make sure "video" and "audio" will not be reflected when they are not supported.

8:35 PM Changeset in webkit [219233] by keith_miller@apple.com
  • 3 edits in trunk/Source/WTF

Add extra insurance to prevent clang from making crash traces sad
https://bugs.webkit.org/show_bug.cgi?id=174231

Reviewed by Saam Barati.

This patch makes it slightly harder for Clang to coalesce our crash calls.
Additionally, it also makes Clang never tail call the WTFCrashWithInfo so
our stack trace should always be "reasonable".

  • wtf/Assertions.h:
  • wtf/Compiler.h:
7:59 PM Changeset in webkit [219232] by rniwa@webkit.org
  • 3 edits in trunk/Websites/perf.webkit.org

Safari 10.1 fails to upload a patch on perf try bots page
https://bugs.webkit.org/show_bug.cgi?id=174214

Reviewed by Chris Dumez.

Added the workaround to make the analysis task page work on Safari 10.1

  • public/v3/components/instant-file-uploader.js:

(InstantFileUploader.prototype._uploadFiles): Convert files to an array since for-of doesn't work otherwise on Safari 10.1.

  • public/v3/models/uploaded-file.js:

(UploadedFile._computeSHA256Hash): Fallback to crypto.webkitSubtle since crypto.subtle isn't available on Safari 10.1 or 11.

7:44 PM Changeset in webkit [219231] by Chris Dumez
  • 9 edits in trunk/Source

Drop unused ResourceLoadStatistics members
https://bugs.webkit.org/show_bug.cgi?id=174226

Reviewed by Brent Fulgham.

Source/WebCore:

  • loader/ResourceLoadObserver.cpp:

(WebCore::ResourceLoadObserver::logFrameNavigation):
(WebCore::ResourceLoadObserver::logSubresourceLoading):
(WebCore::ResourceLoadObserver::logWebSocketLoading):
(WebCore::ResourceLoadObserver::isPrevalentResource): Deleted.

  • loader/ResourceLoadObserver.h:
  • loader/ResourceLoadStatistics.cpp:

(WebCore::ResourceLoadStatistics::encode):
(WebCore::ResourceLoadStatistics::decode):
(WebCore::ResourceLoadStatistics::toString):
(WebCore::ResourceLoadStatistics::merge):

  • loader/ResourceLoadStatistics.h:

Source/WebKit2:

  • Shared/WebCoreArgumentCoders.cpp:

(IPC::ArgumentCoder<ResourceLoadStatistics>::encode):
(IPC::ArgumentCoder<ResourceLoadStatistics>::decode):

  • UIProcess/Storage/ResourceLoadStatisticsStore.cpp:

(WebKit::ResourceLoadStatisticsStore::readDataFromDecoder):

6:56 PM Changeset in webkit [219230] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Rendering of WebRTC audio in AudioSampleDataSource may trigger crackles
https://bugs.webkit.org/show_bug.cgi?id=174223

Patch by Youenn Fablet <youenn@apple.com> on 2017-07-06
Reviewed by Eric Carlson.

We try reading too quickly and need to back off a little bit if we do not enough data.
This only affects real audio and not web audio, hence validated through manual testing only.

  • platform/audio/mac/AudioSampleDataSource.mm:

(WebCore::AudioSampleDataSource::pullSamplesInternal):

6:16 PM Changeset in webkit [219229] by commit-queue@webkit.org
  • 10 edits
    1 add
    1 delete in trunk/Source/WebCore

[WebIDL] Remove custom bindings for WebGL code dealing with WebGL extensions
https://bugs.webkit.org/show_bug.cgi?id=174186

Patch by Sam Weinig <sam@webkit.org> on 2017-07-06
Reviewed by Alex Christensen.

  • CMakeLists.txt:
  • WebCore.xcodeproj/project.pbxproj:

Update files. Categorize some of the remaining custom bindings into groups.

  • bindings/IDLTypes.h:

Add a IDLWebGLExtension type, to model the special WebGLExtension type. In
the future, WebGLExtension can probably be replaced by a Variant.

  • bindings/js/JSDOMConvertWebGL.cpp: Added.

Move WebGLAny's convertToJSValue and add a convertToJSValue for WebGLExtension.

  • bindings/js/JSDOMConvertWebGL.h:

(WebCore::convertToJSValue):
Since WebGLExtension is a wrapper type, we need both a pointer and reference variant
of the conversion.

(WebCore::JSConverter<IDLWebGLExtension>::convert):
Added.

  • bindings/js/JSWebGL2RenderingContextCustom.cpp:

(WebCore::toJS): Deleted.
(WebCore::JSWebGL2RenderingContext::getExtension): Deleted.
Remove custom operation and converter.

  • bindings/js/JSWebGLRenderingContextCustom.cpp:

(WebCore::toJS): Deleted.
(WebCore::JSWebGLRenderingContext::getExtension): Deleted.
Remove custom operation and converter.

  • bindings/scripts/CodeGeneratorJS.pm:

(AddToIncludesForIDLType):
(NativeToJSValueDOMConvertNeedsState):
(NativeToJSValueDOMConvertNeedsGlobalObject):
Add support for IDLWebGLExtension.

  • html/canvas/WebGLAny.cpp: Removed.
  • html/canvas/WebGLAny.h:

Moved convertToJSValue to the bindings where it belongs.

  • html/canvas/WebGLRenderingContextBase.idl:

Annotate getExtension with [OverrideIDLType=IDLWebGLExtension].

6:11 PM Changeset in webkit [219228] by commit-queue@webkit.org
  • 2 edits in trunk

[Win] Build precompiled header successfully with clang-cl
https://bugs.webkit.org/show_bug.cgi?id=174221

Patch by Stephan Szabo <stephan.szabo@sony.com> on 2017-07-06
Reviewed by Alex Christensen.

  • Source/cmake/WebKitMacros.cmake:
5:46 PM Changeset in webkit [219227] by clopez@igalia.com
  • 2 edits in trunk/Tools

[GTK][WPE] kill-old-process should kill more webkit related process
https://bugs.webkit.org/show_bug.cgi?id=174220

Reviewed by Michael Catanzaro.

Generate list of possible webkit-related process names and add
them to the list of process to kill.
Also update the possible system related process for GTK+/WPE.

  • BuildSlaveSupport/kill-old-processes:

(listAllWebKitPrograms):
(main):

5:00 PM Changeset in webkit [219226] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[Cocoa] CTParagraphStyle leak under WebCore::LinkImageLayout::LinkImageLayout
https://bugs.webkit.org/show_bug.cgi?id=174228

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-07-06
Reviewed by Andreas Kling.

  • platform/mac/DragImageMac.mm:

(WebCore::LinkImageLayout::LinkImageLayout):

4:59 PM Changeset in webkit [219225] by Wenson Hsieh
  • 3 edits in trunk/Source/WebKit2

Unreviewed, fix the internal iOS 11 build

It turns out, our internal bots are still on an older version of the iOS 11 SDK that's missing _UIDataOwner in
<UIKit/NSItemProvider+UIKitAdditions_Private.h>. To ensure that we can build on both current and slightly older
versions of the iOS 11 SDK, fall back to using NSInteger instead of _UIDataOwner.

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _dragInteraction:dataOwnerForSession:]):
(-[WKContentView _dropInteraction:dataOwnerForSession:]):

4:30 PM Changeset in webkit [219224] by Wenson Hsieh
  • 4 edits in trunk/Source/WebKit2

[iOS DnD] [WK2] Add delegate hooks for specifying the data owner for a drag or drop session
https://bugs.webkit.org/show_bug.cgi?id=174139
<rdar://problem/33126212>

Reviewed by Beth Dakin.

Add hooks to query the UI delegate for a _UIDataOwner on both drag and drop sides.

  • Platform/spi/ios/UIKitSPI.h:
  • UIProcess/API/Cocoa/WKUIDelegatePrivate.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _dragInteraction:dataOwnerForSession:]):
(-[WKContentView _dropInteraction:dataOwnerForSession:]):

4:04 PM Changeset in webkit [219223] by mmaxfield@apple.com
  • 4 edits
    2 adds in trunk

[Cocoa] Improve performance of font lookups
https://bugs.webkit.org/show_bug.cgi?id=173960
<rdar://problem/31996891>

Reviewed by Darin Adler.

PerformanceTests:

  • Layout/font-fallback-font-family.html: Added.
  • Layout/resources/font-fallback-font-family.html: Added.

Source/WebCore:

Looking up kCTFontPostScriptNameAttribute is faster than kCTFontNameAttribute.

No new tests because there is no behavior change.

  • platform/spi/cocoa/CoreTextSPI.h:
  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::FontDatabase::fontForPostScriptName):

3:50 PM Changeset in webkit [219222] by Lucas Forschler
  • 1 edit in trunk/Tools/BuildSlaveSupport/built-product-archive

Update help text.

3:09 PM Changeset in webkit [219221] by mmaxfield@apple.com
  • 6 edits
    4 adds in trunk

REGRESSION(r216944): Font loads can cause Chinese characters to draw as .notdef
https://bugs.webkit.org/show_bug.cgi?id=173962
<rdar://problem/32925318>

Reviewed by Simon Fraser.

Source/WebCore:

Previously, there was no signalling between our font loading code
which determined whether or not a font should be invisible (because
its in the middle of loading) and our system fallback code which
created fonts when we fall off the end of the fallback list. Because
of this, we were doing two things wrong:

  1. When we started downloading a font, we would try to use a fallback

font. However, if the fallback font didn't suppor the character we're
trying to render, we would just bail and draw .notdef

  1. Even if we continued down the fallback list, and fell of the end,

we wouldn't realize that the system fallback font should also be drawn
as invisible.

This patch solves these two problems by:

  1. Performing a search to find the best (local) fallback font with

which to fall systemFallbackFontForCharacter(). This way, if you say
"font-family: 'RemoteFont', 'Helvetica'" we will use Helvetica as
the lookup to ask the system to search for.

  1. Give the Font class an accessor which can create a duplicate, but

invisible font. Give FontCascadeFonts::glyphDataForVariant() the
correct tracking to know when to use this invisible duplicate.

Tests: fast/text/font-loading-system-fallback.html

http/tests/webfont/font-loading-system-fallback-visibility.html

  • platform/graphics/Font.cpp:

(WebCore::Font::invisibleFont):

  • platform/graphics/Font.h:
  • platform/graphics/FontCascadeFonts.cpp:

(WebCore::findBestFallbackFont):
(WebCore::FontCascadeFonts::glyphDataForSystemFallback):
(WebCore::FontCascadeFonts::glyphDataForVariant):

  • platform/graphics/FontCascadeFonts.h:

LayoutTests:

  • fast/text/font-loading-system-fallback-expected.html: Added.
  • fast/text/font-loading-system-fallback.html: Added.
  • http/tests/webfont/font-loading-system-fallback-visibility-expected.html: Added.
  • http/tests/webfont/font-loading-system-fallback-visibility.html: Added.
2:59 PM Changeset in webkit [219220] by Brent Fulgham
  • 5 edits in trunk/Source/WebKit2

[WK2] ResourceLoadStatistics should batch its writes
https://bugs.webkit.org/show_bug.cgi?id=174111
<rdar://problem/33115894>

Reviewed by Chris Dumez.

Revise the data writing operation to only write on a specific interval (currently
set to 5 minutes).

Also make 'writeStoreToDisk' simpler to use by moving the deleting (before write) and
creating (after write) of the FileMonitor into the method, rather than requiring this
knowledge in multiple places.

Make sure that we write our statistics file out before exiting so that we do not
lose any data if we exit before the five-minute window has elapsed.

  • UIProcess/Storage/ResourceLoadStatisticsStore.cpp:

(WebKit::ResourceLoadStatisticsStore::setWritePersistentStoreCallback): Deleted.

  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::processStatisticsAndDataRecords): Remove the stop
and start monitoring into 'writeStoreToDisk'. Also check if enough time has elapsed since
the last write to commit to disk.
(WebKit::WebResourceLoadStatisticsStore::registerSharedResourceLoadObserver): Remove the
stop and start monitoring into 'writeStoreToDisk'.
(WebKit::WebResourceLoadStatisticsStore::writeStoreToDisk): Add the stop and start monitoring
commands here, so callers don't have to know to do so.

2:45 PM Changeset in webkit [219219] by Chris Dumez
  • 9 edits in trunk

FileMonitor should not be ref counted
https://bugs.webkit.org/show_bug.cgi?id=174166

Reviewed by Brent Fulgham.

Source/WebCore:

Update FileMonitor to no longer be refcounted. It was previously easy to leak it
because the object would ref itself in various lambdas. The client would have to
explicitely call FileMonitor::stopMonitoring() which was fragile.

This patch also simplifies the code and API a bit since no longer actually
requires startMonitoring() / stopMonitoring() API.

No new tests, covered by API tests.

  • platform/FileMonitor.cpp:

(WebCore::FileMonitor::FileMonitor):
(WebCore::FileMonitor::~FileMonitor):
(WebCore::FileMonitor::create): Deleted.
(WebCore::FileMonitor::startMonitoring): Deleted.
(WebCore::FileMonitor::stopMonitoring): Deleted.

  • platform/FileMonitor.h:
  • platform/cocoa/FileMonitorCocoa.mm:

(WebCore::FileMonitor::FileMonitor):
(WebCore::FileMonitor::~FileMonitor):
(WebCore::FileMonitor::startMonitoring): Deleted.
(WebCore::FileMonitor::stopMonitoring): Deleted.

Source/WebKit2:

Update code using FileMonitor to reflect API change.

  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::startMonitoringStatisticsStorage):
(WebKit::WebResourceLoadStatisticsStore::stopMonitoringStatisticsStorage):

  • UIProcess/WebResourceLoadStatisticsStore.h:

Tools:

Update the API tests to reflect the API change.

  • TestWebKitAPI/Tests/WebCore/FileMonitor.cpp:

(TestWebKitAPI::TEST_F):

2:22 PM Changeset in webkit [219218] by mrajca@apple.com
  • 4 edits in trunk/Source

Fix build with VIDEO support disabled.
https://bugs.webkit.org/show_bug.cgi?id=174217

Unreviewed build fix.

Source/WebCore:

  • page/Page.cpp:

Source/WebKit2:

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updateWebsitePolicies):

2:20 PM Changeset in webkit [219217] by Matt Lewis
  • 3 edits
    2 deletes in trunk

Unreviewed, rolling out r219193.

The tests added with this revision were extreamly flaky on all
platforms.

Reverted changeset:

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

2:13 PM Changeset in webkit [219216] by Alan Bujtas
  • 14 edits in trunk/Source/WebCore

Use WTFLogAlways for debug logging so that it shows up in device system logs
https://bugs.webkit.org/show_bug.cgi?id=173450

Reviewed by Simon Fraser.

If you want to showRenderTree() on-device, the result doesn't show in system log so you can't see it.
Switch to WTFLogAlways to fix this, for showRenderTree and its dependencies.

  • platform/text/TextStream.cpp:

(WebCore::writeIndent):

  • rendering/InlineBox.cpp:

(WebCore::InlineBox::showLineTreeAndMark):
(WebCore::InlineBox::showLineBox):

  • rendering/InlineBox.h:
  • rendering/InlineFlowBox.cpp:

(WebCore::InlineFlowBox::showLineTreeAndMark):

  • rendering/InlineFlowBox.h:
  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::showLineBox):

  • rendering/InlineTextBox.h:
  • rendering/RenderBlockFlow.cpp:

(WebCore::RenderBlockFlow::showLineTreeAndMark):

  • rendering/RenderBlockFlow.h:
  • rendering/RenderObject.cpp:

(WebCore::showRenderTreeLegend):
(WebCore::RenderObject::showRenderTreeForThis):
(WebCore::RenderObject::showLineTreeForThis):
(WebCore::RenderObject::showRegionsInformation):
(WebCore::RenderObject::showRenderObject):
(WebCore::RenderObject::showRenderSubTreeAndMark):

  • rendering/RenderObject.h:
  • rendering/SimpleLineLayoutFunctions.cpp:

(WebCore::SimpleLineLayout::printPrefix):
(WebCore::SimpleLineLayout::showLineLayoutForFlow):

  • rendering/SimpleLineLayoutFunctions.h:
2:07 PM Changeset in webkit [219215] by mmaxfield@apple.com
  • 3 edits in trunk/Source/WebCore

Unify FontCascadeFonts::glyphDataForVariant() and FontCascadeFonts::glyphDataForNormalVariant()
https://bugs.webkit.org/show_bug.cgi?id=174213

Reviewed by Zalan Bujtas.

They have almost identical code. This is in preparation for https://bugs.webkit.org/show_bug.cgi?id=173962

No new tests because there is no behavior change.

  • platform/graphics/FontCascadeFonts.cpp:

(WebCore::FontCascadeFonts::glyphDataForVariant):
(WebCore::FontCascadeFonts::glyphDataForCharacter):
(WebCore::FontCascadeFonts::glyphDataForNormalVariant): Deleted.

  • platform/graphics/FontCascadeFonts.h:
1:51 PM Changeset in webkit [219214] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Highlight matching canvas element when hovering contexts in the Resources tab
https://bugs.webkit.org/show_bug.cgi?id=174209

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/CanvasTreeElement.js:

(WebInspector.CanvasTreeElement.prototype.onattach):
(WebInspector.CanvasTreeElement.prototype._handleMouseOver):
(WebInspector.CanvasTreeElement.prototype._handleMouseOut):

1:23 PM Changeset in webkit [219213] by don.olmstead@sony.com
  • 18 edits
    3 moves
    2 adds in trunk/Source/WebCore

[PAL] Move KillRing into PAL
https://bugs.webkit.org/show_bug.cgi?id=173900

Reviewed by Myles C. Maxfield.

No new tests. No change in functionality.

Source/WebCore:

  • Configurations/WebCore.xcconfig:
  • PlatformGTK.cmake:
  • PlatformMac.cmake:
  • PlatformWPE.cmake:
  • PlatformWin.cmake:
  • WebCore.xcodeproj/project.pbxproj:
  • editing/Editor.cpp:

(WebCore::Editor::Editor):

  • editing/Editor.h:

(WebCore::Editor::killRing):

  • editing/EditorCommand.cpp:

Source/WebCore/PAL:

  • Configurations/PAL.xcconfig:
  • PAL.xcodeproj/project.pbxproj:
  • pal/CMakeLists.txt:
  • pal/PlatformGTK.cmake:
  • pal/PlatformMac.cmake:
  • pal/PlatformWPE.cmake:
  • pal/PlatformWin.cmake:
  • pal/text/KillRing.h: Renamed from Source/WebCore/platform/KillRing.h.
  • pal/text/KillRingNone.cpp: Renamed from Source/WebCore/platform/KillRingNone.cpp.
  • pal/text/mac/KillRingMac.mm: Renamed from Source/WebCore/platform/mac/KillRingMac.mm.
1:03 PM Changeset in webkit [219212] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Marked js/slow-stress/Int32Array-alloc-huge.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=173010

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
12:22 PM Changeset in webkit [219211] by Chris Dumez
  • 3 edits in trunk/Source/WebKit2

Crash under WebResourceLoadStatisticsStore::persistentStoragePath(WTF::String const&)
https://bugs.webkit.org/show_bug.cgi?id=174205
<rdar://problem/33093552>

Reviewed by Brent Fulgham.

Make sure we isolateCopy() m_statisticsStoragePath before using it from the background
thread.

  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::readDataFromDiskIfNeeded):
(WebKit::WebResourceLoadStatisticsStore::refreshFromDisk):
(WebKit::WebResourceLoadStatisticsStore::resourceLogFilePath):
(WebKit::WebResourceLoadStatisticsStore::statisticsFilePath):
(WebKit::WebResourceLoadStatisticsStore::writeStoreToDisk):
(WebKit::WebResourceLoadStatisticsStore::writeEncoderToDisk):
(WebKit::WebResourceLoadStatisticsStore::deleteStoreFromDisk):
(WebKit::WebResourceLoadStatisticsStore::startMonitoringStatisticsStorage):
(WebKit::WebResourceLoadStatisticsStore::syncWithExistingStatisticsStorageIfNeeded):
(WebKit::WebResourceLoadStatisticsStore::persistentStoragePath): Deleted.

  • UIProcess/WebResourceLoadStatisticsStore.h:
11:50 AM Changeset in webkit [219210] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix CFURLRequestRef serialization after r207330
https://bugs.webkit.org/show_bug.cgi?id=163332

  • Shared/mac/WebCoreArgumentCodersMac.mm:

(IPC::ArgumentCoder<ResourceRequest>::encodePlatformData):
The CFURLConnection code was not updated.
We did not catch this because nobody uses the WebKit2 CFURLConnection code, but I need to use it to debug something.

11:43 AM Changeset in webkit [219209] by sbarati@apple.com
  • 4 edits
    1 add in trunk

We are missing places where we invalidate the for-in context
https://bugs.webkit.org/show_bug.cgi?id=174184

Reviewed by Geoffrey Garen.

JSTests:

  • stress/for-in-invalidate-context-weird-assignments.js: Added.

(assert):
(test):

Source/JavaScriptCore:

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::invalidateForInContextForLocal):

  • bytecompiler/NodesCodegen.cpp:

(JSC::EmptyLetExpression::emitBytecode):
(JSC::ForInNode::emitLoopHeader):
(JSC::ForOfNode::emitBytecode):
(JSC::BindingNode::bindValue):

11:35 AM Changeset in webkit [219208] by Devin Rousso
  • 7 edits
    6 adds
    2 deletes in trunk

Web Inspector: Support getting the content of WebGL/WebGL2 contexts
https://bugs.webkit.org/show_bug.cgi?id=173569
<rdar://problem/33112420>

Reviewed by Joseph Pecoraro.

Source/WebCore:

Tests: inspector/canvas/requestContent-2d.html

inspector/canvas/requestContent-webgl.html
inspector/canvas/requestContent-webgl2.html

  • html/canvas/WebGLRenderingContextBase.cpp:

(WebCore::WebGLRenderingContextBase::clearIfComposited):

  • html/canvas/WebGLRenderingContextBase.h:

(WebCore::WebGLRenderingContextBase::preventBufferClearForInspector):
(WebCore::WebGLRenderingContextBase::setPreventBufferClearForInspector):
Add a flag that will prevent the context buffer from being cleared, allowing it to be copied
within a toDataURL call. This is currently only used by InspectorCanvasAgent::requestContent.

  • inspector/InspectorCanvasAgent.cpp:

(WebCore::InspectorCanvasAgent::requestContent):
Since toDataURL attempts to force the canvas to redraw, we can preserve the buffer after it
finishes drawing so that it can be copied, instead of it normally being swapped out.

LayoutTests:

  • inspector/canvas/requestContent-2d-expected.txt: Added.
  • inspector/canvas/requestContent-2d.html: Added.
  • inspector/canvas/requestContent-webgl-expected.txt: Added.
  • inspector/canvas/requestContent-webgl.html: Added.
  • inspector/canvas/requestContent-webgl2-expected.txt: Added.
  • inspector/canvas/requestContent-webgl2.html: Added.
  • inspector/canvas/requestContent-expected.txt: Removed.
  • inspector/canvas/requestContent.html: Removed.
  • platform/gtk/TestExpectations:
  • platform/win/TestExpectations:

Split the existing canvas content tests into one for each context type. This allows
platforms that don't support certain context types to ignore just those tests (e.g. WebGL2).

11:28 AM Changeset in webkit [219207] by Chris Dumez
  • 6 edits in trunk/Source

Move ResourceLoadObserver notification throttling logic from WebProcess class to ResourceLoadObserver
https://bugs.webkit.org/show_bug.cgi?id=174194

Reviewed by Brent Fulgham.

Move ResourceLoadObserver notification throttling logic from WebProcess class to
ResourceLoadObserver. This makes more sense and decreases the complexity of the
WebProcess class.

Source/WebCore:

  • loader/ResourceLoadObserver.cpp:

(WebCore::ResourceLoadObserver::setNotificationCallback):
(WebCore::ResourceLoadObserver::ResourceLoadObserver):
(WebCore::ResourceLoadObserver::logFrameNavigation):
(WebCore::ResourceLoadObserver::logSubresourceLoading):
(WebCore::ResourceLoadObserver::logWebSocketLoading):
(WebCore::ResourceLoadObserver::logUserInteractionWithReducedTimeResolution):
(WebCore::ResourceLoadObserver::scheduleNotificationIfNeeded):
(WebCore::ResourceLoadObserver::notificationTimerFired):

  • loader/ResourceLoadObserver.h:

Source/WebKit2:

  • WebProcess/WebProcess.cpp:

(WebKit::m_webSQLiteDatabaseTracker):
(WebKit::WebProcess::statisticsChangedTimerFired): Deleted.

  • WebProcess/WebProcess.h:
11:24 AM Changeset in webkit [219206] by clopez@igalia.com
  • 3 edits
    4 deletes in trunk/LayoutTests

[GTK] Layout test gardening.

Unreviewed.

  • platform/gtk/TestExpectations: Update WebRTC related expectations and mark a new emoji related test failing after r218371.
  • platform/gtk/fast/css/css2-system-fonts-expected.txt: Rebaseline after r218446.
  • platform/gtk/fast/css/getComputedStyle/computed-style-font-family-expected.txt: Removed. Rebaseline after r218446 (use the general expectation).
  • platform/gtk/fast/text/font-stretch-parse-expected.txt: Removed. Rebaseline after r218446 (use the general expectation).
  • platform/gtk/fast/text/font-style-parse-expected.txt: Removed. Rebaseline after r218446 (use the general expectation).
  • platform/gtk/fast/text/font-weight-parse-expected.txt: Removed Rebaseline after r218446 (use the general expectation).
11:22 AM Changeset in webkit [219205] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

REGRESSION(r208511): RenderImageResourceStyleImage should not assume image() won't return null if its m_cachedImage is valid
https://bugs.webkit.org/show_bug.cgi?id=174168

Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2017-07-06
Reviewed by Simon Fraser.

RenderImageResourceStyleImage::image() may return a null pointer even if
its m_cachedImage is not null. The revision r208511, changed the function
RenderImageResourceStyleImage::shutdown() so it calls Image::stopAnimation().
But this change assumes that if m_cachedImage is not null then image() will
return a valid pointer. This is not true because StyleCachedImage::isPending()
can return true and hence, RenderImageResourceStyleImage::image() will return
a null pointer.

  • rendering/RenderImageResourceStyleImage.cpp:

(WebCore::RenderImageResourceStyleImage::image): Like what RenderImageResource
does, return Image::nullImage() if m_styleImage->isPending().

11:10 AM Changeset in webkit [219204] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Unreviewed, rolling out r219201.
https://bugs.webkit.org/show_bug.cgi?id=174211

"Causes crashes on Release builds and API tests" (Requested by
ddkilzer on #webkit).

Reverted changeset:

"Add release assert to explore crash for
<rdar://problem/32908525>"
http://trac.webkit.org/changeset/219201

10:23 AM Changeset in webkit [219203] by Chris Dumez
  • 8 edits in trunk/Source/WebKit2

WebResourceLoadStatisticsStore should only be constructed when the feature is enabled
https://bugs.webkit.org/show_bug.cgi?id=174189

Reviewed by Brent Fulgham.

Delay the construction of the WebResourceLoadStatisticsStore until the feature gets
enabled via WebsiteDataStore::setResourceLoadStatisticsEnabled(). Previously, we would
always construct a store and then have a boolean on the store to indicate if it is
enabled or not.

Also simplify the initialization process of the WebResourceLoadStatisticsStore, we
used to have:

  1. WebResourceLoadStatisticsStore constructor
  2. WebResourceLoadStatisticsStore::registerSharedResourceLoadObserver()
  3. WebResourceLoadStatisticsStore::setResourceLoadStatisticsEnabled(true)

All 3 steps are now taken care of by the WebResourceLoadStatisticsStore constructor.

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitialize):

  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore):
(WebKit::WebResourceLoadStatisticsStore::readDataFromDiskIfNeeded):

  • UIProcess/WebResourceLoadStatisticsStore.h:
  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::platformInitialize):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::WebsiteDataStore):
(WebKit::WebsiteDataStore::resourceLoadStatisticsEnabled):
(WebKit::WebsiteDataStore::setResourceLoadStatisticsEnabled):

  • UIProcess/WebsiteData/WebsiteDataStore.h:

(WebKit::WebsiteDataStore::resourceLoadStatistics):

  • UIProcess/wpe/WebProcessPoolWPE.cpp:

(WebKit::WebProcessPool::platformInitialize):

10:12 AM Changeset in webkit [219202] by commit-queue@webkit.org
  • 7 edits
    4 deletes in trunk

Unreviewed, rolling out r219194.
https://bugs.webkit.org/show_bug.cgi?id=174207

it broke some layout tests (Requested by clopez on #webkit).

Reverted changeset:

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

9:49 AM Changeset in webkit [219201] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebCore

Add release assert to explore crash for <rdar://problem/32908525>

Reviewed by Brady Eidson.

  • Modules/indexeddb/server/UniqueIDBDatabase.cpp:

(WebCore::IDBServer::UniqueIDBDatabase::~UniqueIDBDatabase): Add
release assert to catch cases when the IDBBackingStore is not
deleted before the UniqueIDBDatabase is destroyed. The
IDBBackingStore should always be released on the database
thread.

9:31 AM Changeset in webkit [219200] by beidson@apple.com
  • 3 edits in trunk/Source/WebKit/mac

Add logging to first attempt to use the WebIconDatabase class.
https://bugs.webkit.org/show_bug.cgi?id=174190

Reviewed by Andy Estes.

  • Misc/WebIconDatabase.mm:

(+[WebIconDatabase sharedIconDatabase]): On first call, log a warning of the bleak future of this non-API.

  • Misc/WebKitVersionChecks.h:
9:22 AM Changeset in webkit [219199] by Matt Lewis
  • 147 edits
    1 add in trunk

Unreviewed, rolling out r219178.

This caused a consistent failure with the API test
StringBuilderTest.ToAtomicStringOnEmpty on all Debug testers.

Reverted changeset:

"[WTF] Clean up StringStatics.cpp by using
LazyNeverDestroyed<> for Atoms"
https://bugs.webkit.org/show_bug.cgi?id=174150
http://trac.webkit.org/changeset/219178

9:00 AM Changeset in webkit [219198] by commit-queue@webkit.org
  • 1 edit
    3 adds in trunk/Source/WebInspectorUI

Web Inspector: Add another Protocol Version
https://bugs.webkit.org/show_bug.cgi?id=174193
<rdar://problem/33150053>

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

  • UserInterface/Protocol/Legacy/11.0/InspectorBackendCommands.js: Added.
  • Versions/Inspector-iOS-11.0.json: Added.
8:37 AM Changeset in webkit [219197] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Add CWD to Perl library path (no longer the default since 5.26.0)
https://bugs.webkit.org/show_bug.cgi?id=174200

Patch by Alicia Boya García <aboya@igalia.com> on 2017-07-06
Reviewed by Michael Catanzaro.

  • Scripts/webkitpy/tool/commands/setupgitclone.py:

(SetupGitClone._get_username_and_email):

7:45 AM Changeset in webkit [219196] by Gyuyoung Kim
  • 2 edits in trunk/Tools

Unreviewed, update my email address.

Patch by Gyuyoung Kim <Gyuyoung Kim> on 2017-07-06

  • Scripts/webkitpy/common/config/contributors.json:
6:35 AM Changeset in webkit [219195] by Claudio Saavedra
  • 4 edits in trunk/Source/WebKit2

[GTK] It should process MouseMoved events when the parent window is not active
https://bugs.webkit.org/show_bug.cgi?id=116691

Reviewed by Michael Catanzaro.

From reading the comments in the related code, only in Safari it
is desired that MouseMoved events are not processed when the
parent window is not active. In other ports, in particular those
targeting Linux, these events should be processed for consistency
with other browsers.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setCursor):

  • UIProcess/mac/PageClientImpl.mm:

(WebKit::PageClientImpl::setCursor):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::handleMouseEvent):
(WebKit::WebPage::mouseEvent): No need to always pass a boolean
parameter that is only checked for one type of event. Do the check
internally in handleMouseEvent() only when needed and only in Cocoa.

3:12 AM Changeset in webkit [219194] 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-06
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.
2:57 AM Changeset in webkit [219193] 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:
2:07 AM Changeset in webkit [219192] by Yusuke Suzuki
  • 6 edits in trunk/Source/JavaScriptCore

Unreviewed, suppress warnings in GCC environment

  • dfg/DFGObjectAllocationSinkingPhase.cpp:
  • runtime/IntlCollator.cpp:
  • runtime/IntlDateTimeFormat.cpp:
  • runtime/JSGlobalObject.cpp:
  • runtime/StringPrototype.cpp:

Jul 5, 2017:

10:51 PM Changeset in webkit [219191] by don.olmstead@sony.com
  • 154 edits
    1 copy
    2 moves in trunk

[WTF] Move SoftLinking.h into WTF
https://bugs.webkit.org/show_bug.cgi?id=174000

Reviewed by Alex Christensen.

Source/WebCore:

No new tests. No change in functionality

  • Modules/applepay/PaymentRequest.cpp:
  • Modules/applepay/cocoa/PaymentContactCocoa.mm:
  • Modules/applepay/cocoa/PaymentMerchantSessionCocoa.mm:
  • Modules/encryptedmedia/legacy/LegacyCDMPrivateMediaPlayer.cpp:
  • WebCore.xcodeproj/project.pbxproj:
  • editing/cocoa/EditorCocoa.mm:
  • editing/cocoa/HTMLConverter.mm:
  • editing/ios/EditorIOS.mm:
  • page/CaptionUserPreferencesMediaAF.cpp:
  • page/cocoa/SettingsCocoa.mm:
  • page/ios/UserAgentIOS.mm:
  • page/mac/ServicesOverlayController.mm:
  • platform/audio/ios/AudioDestinationIOS.cpp:
  • platform/audio/ios/AudioFileReaderIOS.cpp:
  • platform/audio/ios/AudioSessionIOS.mm:
  • platform/audio/ios/MediaSessionManagerIOS.mm:
  • platform/cf/CoreMediaSoftLink.cpp:
  • platform/cf/CoreMediaSoftLink.h:
  • platform/cf/MediaAccessibilitySoftLink.cpp:
  • platform/cf/MediaAccessibilitySoftLink.h:
  • platform/cocoa/ContentFilterUnblockHandlerCocoa.mm:
  • platform/cocoa/CoreVideoSoftLink.cpp:
  • platform/cocoa/CoreVideoSoftLink.h:
  • platform/cocoa/DataDetectorsCoreSoftLink.h:
  • platform/cocoa/NetworkExtensionContentFilter.mm:
  • platform/cocoa/ParentalControlsContentFilter.mm:
  • platform/cocoa/TelephoneNumberDetectorCocoa.cpp:
  • platform/cocoa/VideoToolboxSoftLink.cpp:
  • platform/cocoa/VideoToolboxSoftLink.h:
  • platform/cocoa/WebPlaybackSessionModelMediaElement.mm:
  • platform/cocoa/WebVideoFullscreenModelVideoElement.mm:
  • platform/gamepad/cocoa/GameControllerGamepadProvider.mm:
  • platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.mm:
  • platform/graphics/avfoundation/MediaPlaybackTargetMac.mm:
  • platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
  • platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.mm:
  • platform/graphics/avfoundation/cf/AVFoundationCFSoftLinking.h:
  • platform/graphics/avfoundation/cf/CDMSessionAVFoundationCF.cpp:
  • platform/graphics/avfoundation/cf/InbandTextTrackPrivateAVCF.cpp:
  • platform/graphics/avfoundation/cf/InbandTextTrackPrivateLegacyAVCF.cpp:
  • platform/graphics/avfoundation/cf/WebCoreAVCFResourceLoader.cpp:
  • platform/graphics/avfoundation/objc/CDMSessionAVContentKeySession.mm:
  • platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.mm:
  • platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.mm:
  • platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.mm:
  • platform/graphics/avfoundation/objc/InbandTextTrackPrivateLegacyAVFObjC.mm:
  • platform/graphics/avfoundation/objc/MediaPlaybackTargetPickerMac.mm:
  • platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
  • platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
  • platform/graphics/ca/cocoa/PlatformCALayerCocoa.mm:
  • platform/graphics/ca/win/WKCACFViewLayerTreeHost.cpp:
  • platform/graphics/cocoa/FontCascadeCocoa.mm:
  • platform/graphics/cocoa/FontFamilySpecificationCoreText.cpp:
  • platform/graphics/cv/PixelBufferConformerCV.cpp:
  • platform/graphics/ios/FontCacheIOS.mm:
  • platform/graphics/mac/ComplexTextControllerCoreText.mm:
  • platform/graphics/mac/FontCacheMac.mm:
  • platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
  • platform/graphics/mac/MediaTimeQTKit.mm:
  • platform/graphics/mac/PDFDocumentImageMac.mm:
  • platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:
  • platform/ios/DragImageIOS.mm:
  • platform/ios/PlatformPasteboardIOS.mm:
  • platform/ios/PlatformScreenIOS.mm:
  • platform/ios/PlatformSpeechSynthesizerIOS.mm:
  • platform/ios/QuickLookSoftLink.h:
  • platform/ios/QuickLookSoftLink.mm:
  • platform/ios/RemoteCommandListenerIOS.mm:
  • platform/ios/ThemeIOS.mm:
  • platform/ios/ValidationBubbleIOS.mm:
  • platform/ios/WebCoreMotionManager.mm:
  • platform/ios/WebItemProviderPasteboard.mm:
  • platform/ios/WebVideoFullscreenControllerAVKit.mm:
  • platform/mac/DragImageMac.mm:
  • platform/mac/MediaRemoteSoftLink.cpp:
  • platform/mac/MediaRemoteSoftLink.h:
  • platform/mac/SerializedPlatformRepresentationMac.mm:
  • platform/mac/WebPlaybackControlsManager.mm:
  • platform/mac/WebVideoFullscreenController.mm:
  • platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm:
  • platform/mediastream/ios/CoreAudioCaptureSourceIOS.mm:
  • platform/mediastream/libwebrtc/H264VideoToolBoxEncoder.mm:
  • platform/mediastream/mac/AVCaptureDeviceManager.mm:
  • platform/network/cf/CookieJarCFNet.cpp:
  • platform/network/ios/NetworkStateNotifierIOS.mm:
  • platform/network/ios/PreviewConverter.mm:
  • platform/network/mac/BlobDataFileReferenceMac.mm:
  • platform/spi/cocoa/AVKitSPI.h:

(-[AVTouchBarPlaybackControlsControlling NS_ENUM]): Deleted.

  • platform/spi/cocoa/NSAttributedStringSPI.h:
  • platform/spi/ios/DataDetectorsUISPI.h:
  • platform/spi/mac/AVFoundationSPI.h:
  • platform/spi/mac/DataDetectorsSPI.h:
  • platform/spi/mac/LookupSPI.h:
  • platform/spi/mac/TUCallSPI.h:
  • platform/win/ScrollbarThemeWin.cpp:
  • rendering/RenderThemeCocoa.mm:
  • rendering/RenderThemeIOS.mm:
  • rendering/RenderThemeWin.cpp:
  • testing/Internals.mm:
  • xml/XSLStyleSheetLibxslt.cpp:
  • xml/XSLTExtensions.cpp:
  • xml/XSLTProcessorLibxslt.cpp:
  • xml/XSLTUnicodeSort.cpp:

Source/WebKit/ios:

  • Misc/WebGeolocationCoreLocationProvider.mm:
  • WebView/WebPDFViewPlaceholder.mm:

Source/WebKit/mac:

  • Plugins/WebNetscapePluginView.mm:
  • Plugins/WebPluginController.mm:
  • WebCoreSupport/WebInspectorClient.mm:
  • WebView/WebFullScreenController.mm:
  • WebView/WebImmediateActionController.mm:
  • WebView/WebView.mm:

Source/WebKit/win:

  • WebKitClassFactory.cpp:
  • WebView.cpp:

Source/WebKit2:

  • Platform/mac/StringUtilities.mm:
  • Platform/spi/ios/ManagedConfigurationSPI.h:
  • Shared/Cocoa/DataDetectionResult.mm:
  • Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:
  • Shared/ios/InteractionInformationAtPosition.mm:
  • Shared/ios/WebIconUtilities.mm:
  • Shared/mac/CookieStorageShim.mm:
  • Shared/mac/WebCoreArgumentCodersMac.mm:
  • UIProcess/API/Cocoa/_WKElementAction.mm:
  • UIProcess/ApplePay/cocoa/WebPaymentCoordinatorProxyCocoa.mm:
  • UIProcess/ApplePay/ios/WebPaymentCoordinatorProxyIOS.mm:
  • UIProcess/ApplePay/mac/WebPaymentCoordinatorProxyMac.mm:
  • UIProcess/Cocoa/UIDelegate.mm:
  • UIProcess/Cocoa/WebViewImpl.mm:
  • UIProcess/Launcher/mac/ProcessLauncherMac.mm:
  • UIProcess/ios/WKActionSheetAssistant.mm:
  • UIProcess/ios/WKContentViewInteraction.mm:
  • UIProcess/ios/forms/WKAirPlayRoutePicker.mm:
  • UIProcess/ios/forms/WKFileUploadPanel.mm:
  • UIProcess/mac/WKImmediateActionController.mm:
  • UIProcess/mac/WebInspectorProxyMac.mm:
  • WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.mm:
  • WebProcess/WebPage/mac/WebInspectorUIMac.mm:
  • WebProcess/cocoa/WebProcessCocoa.mm:

Source/WTF:

  • WTF.xcodeproj/project.pbxproj:
  • wtf/SoftLinking.h: Copied from Source/WebCore/platform/ios/QuickLookSoftLink.mm.
  • wtf/cocoa/SoftLinking.h: Renamed from Source/WebCore/platform/cocoa/SoftLinking.h.
  • wtf/win/SoftLinking.h: Renamed from Source/WebCore/platform/win/SoftLinking.h.

Tools:

  • DumpRenderTree/mac/TestRunnerMac.mm:
  • Scripts/webkitpy/style/checkers/cpp_unittest.py:

(test_primary_header):
(ErrorCollector.init): Deleted.
(ErrorCollector.call): Deleted.
(ErrorCollector.results): Deleted.
(ErrorCollector.result_list): Deleted.
(ErrorCollector.verify_all_categories_are_seen): Deleted.
(MockIo.open): Deleted.
(CppFunctionsTest.test_convert_to_lower_with_underscores): Deleted.
(CppFunctionsTest.test_create_acronym): Deleted.
(CppFunctionsTest.test_is_c_or_objective_c): Deleted.
(CppFunctionsTest.test_parameter): Deleted.
(CppFunctionsTest.test_single_line_view): Deleted.
(CppFunctionsTest.test_create_skeleton_parameters): Deleted.
(CppFunctionsTest.test_find_parameter_name_index): Deleted.
(CppFunctionsTest.test_parameter_list): Deleted.
(CppFunctionsTest.test_check_parameter_against_text): Deleted.
(CppStyleTestBase.process_file_data): Deleted.
(CppStyleTestBase.perform_lint): Deleted.
(CppStyleTestBase.perform_single_line_lint): Deleted.
(CppStyleTestBase.perform_multi_line_lint): Deleted.
(CppStyleTestBase.perform_language_rules_check): Deleted.
(CppStyleTestBase.perform_function_lengths_check): Deleted.
(CppStyleTestBase.perform_pass_ptr_check): Deleted.
(CppStyleTestBase.perform_leaky_pattern_check): Deleted.
(CppStyleTestBase.perform_include_what_you_use): Deleted.
(CppStyleTestBase.perform_header_guard_check): Deleted.
(CppStyleTestBase.assert_lint): Deleted.
(CppStyleTestBase.assert_lint_one_of_many_errors_re): Deleted.
(CppStyleTestBase.assert_multi_line_lint): Deleted.
(CppStyleTestBase.assert_multi_line_lint_re): Deleted.
(CppStyleTestBase.assert_language_rules_check): Deleted.
(CppStyleTestBase.assert_include_what_you_use): Deleted.
(CppStyleTestBase.assert_header_guard): Deleted.
(CppStyleTestBase.assert_blank_lines_check): Deleted.
(CppStyleTestBase.assert_positions_equal): Deleted.
(FunctionDetectionTest.test_basic_function_detection): Deleted.
(FunctionDetectionTest.test_function_declaration_detection): Deleted.
(FunctionDetectionTest.test_pure_function_detection): Deleted.
(FunctionDetectionTest.test_override_and_final_function_detection): Deleted.
(FunctionDetectionTest.test_ignore_macros): Deleted.
(FunctionDetectionTest.test_non_functions): Deleted.
(FunctionDetectionTest.test_non_functions.Stuff): Deleted.
(FunctionDetectionTest.test_parameter_list): Deleted.
(Cpp11StyleTest.test_rvaule_reference_in_parameter_pack): Deleted.
(CppStyleTest.test_asm_lines_ignored): Deleted.
(CppStyleTest.test_get_line_width): Deleted.
(CppStyleTest.test_find_next_multi_line_comment_start): Deleted.
(CppStyleTest.test_find_next_multi_line_comment_end): Deleted.
(CppStyleTest.test_remove_multi_line_comments_from_range): Deleted.
(CppStyleTest.test_position): Deleted.
(CppStyleTest.test_rfind_in_lines): Deleted.
(CppStyleTest.test_close_expression): Deleted.
(CppStyleTest.test_spaces_at_end_of_line): Deleted.
(CppStyleTest.test_cstyle_cast): Deleted.
(CppStyleTest.test_runtime_casting): Deleted.
(CppStyleTest.test_runtime_selfinit): Deleted.
(CppStyleTest.test_runtime_rtti): Deleted.
(CppStyleTest.test_static_cast_readability): Deleted.
(CppStyleTest.test_check_for_unnamed_params): Deleted.
(CppStyleTest.void): Deleted.
(CppStyleTest.test_deprecated_cast): Deleted.
(CppStyleTest.test_mock_method): Deleted.
(CppStyleTest.test_sizeof_type): Deleted.
(CppStyleTest.cases): Deleted.
(CppStyleTest.for): Deleted.
(CppStyleTest.test_typedef_for_pointer_to_function): Deleted.
(CppStyleTest.test_typedef_for_pointer_to_function.void): Deleted.
(CppStyleTest.test_include_what_you_use_no_implementation_files): Deleted.
(CppStyleTest.test_include_what_you_use): Deleted.
(CppStyleTest.test_files_belong_to_same_module): Deleted.
(CppStyleTest.test_cleanse_line): Deleted.
(CppStyleTest.test_multi_line_comments): Deleted.
(CppStyleTest.test_multi_line_comments.Foo): Deleted.
(CppStyleTest.test_multiline_strings): Deleted.
(CppStyleTest.test_platformh_comments): Deleted.
(CppStyleTest.test_explicit_single_argument_constructors): Deleted.
(CppStyleTest.test_explicit_single_argument_constructors.Foo): Deleted.
(CppStyleTest.test_explicit_single_argument_constructors.Qualifier): Deleted.
(CppStyleTest.test_explicit_single_argument_constructors.definition): Deleted.
(CppStyleTest.test_slash_star_comment_on_single_line): Deleted.
(CppStyleTest.test_suspicious_usage_of_if): Deleted.
(CppStyleTest.test_suspicious_usage_of_memset): Deleted.
(CppStyleTest.test_check_posix_threading): Deleted.
(CppStyleTest.test_insecure_string_operations): Deleted.
(CppStyleTest.test_format_strings): Deleted.
(CppStyleTest.test_insecure_temp_file): Deleted.
(CppStyleTest.test_variable_length_array_detection): Deleted.
(CppStyleTest.test_braces): Deleted.
(CppStyleTest.test_check_check): Deleted.
(CppStyleTest.test_brace_at_begin_of_line): Deleted.
(CppStyleTest.test_mismatching_spaces_in_parens): Deleted.
(CppStyleTest.test_spacing_for_fncall): Deleted.
(CppStyleTest.test_spacing_for_fncall.foo): Deleted.
(CppStyleTest.test_spacing_before_braces): Deleted.
(CppStyleTest.test_spacing_between_braces): Deleted.
(CppStyleTest.test_spacing_before_brackets): Deleted.
(CppStyleTest.test_cpp_lambda_functions): Deleted.
(CppStyleTest.test_objective_c_block): Deleted.
(CppStyleTest.test_objective_c_block_as_argument): Deleted.
(CppStyleTest.test_spacing_around_else): Deleted.
(CppStyleTest.test_spacing_for_binary_ops): Deleted.
(CppStyleTest.test_spacing_for_binary_ops.hash_map): Deleted.
(CppStyleTest.test_operator_methods): Deleted.
(CppStyleTest.test_spacing_in_objective_c_properties): Deleted.
(CppStyleTest.test_spacing_before_last_semicolon): Deleted.
(CppStyleTest.test_static_or_global_stlstrings): Deleted.
(CppStyleTest.test_no_spaces_in_function_calls): Deleted.
(CppStyleTest.test_one_spaces_between_code_and_comments): Deleted.
(CppStyleTest.test_one_spaces_after_punctuation_in_comments): Deleted.
(CppStyleTest.test_space_after_comment_marker): Deleted.
(CppStyleTest.test_newline_at_eof): Deleted.
(CppStyleTest.test_newline_at_eof.do_test): Deleted.
(CppStyleTest.test_extra_newlines_at_eof): Deleted.
(CppStyleTest.test_extra_newlines_at_eof.do_test): Deleted.
(CppStyleTest.test_invalid_utf8): Deleted.
(CppStyleTest.test_invalid_utf8.do_test): Deleted.
(CppStyleTest.test_is_blank_line): Deleted.
(CppStyleTest.test_blank_lines_check): Deleted.
(CppStyleTest.test_allow_blank_line_before_closing_namespace): Deleted.
(CppStyleTest.test_allow_blank_line_before_if_else_chain): Deleted.
(CppStyleTest.test_else_on_same_line_as_closing_braces): Deleted.
(CppStyleTest.test_else_clause_not_on_same_line_as_else): Deleted.
(CppStyleTest.test_comma): Deleted.
(CppStyleTest.test_declaration): Deleted.
(CppStyleTest.test_pointer_reference_marker_location): Deleted.
(CppStyleTest.test_indent): Deleted.
(CppStyleTest.test_indent.Foo): Deleted.
(CppStyleTest.test_not_alabel): Deleted.
(CppStyleTest.test_tab): Deleted.
(CppStyleTest.test_unnamed_namespaces_in_headers): Deleted.
(CppStyleTest.test_build_class): Deleted.
(CppStyleTest.test_build_class.definitions): Deleted.
(CppStyleTest.test_build_class.Foo): Deleted.
(CppStyleTest.test_build_class.DERIVE_FROM_GOO): Deleted.
(CppStyleTest.test_build_end_comment): Deleted.
(CppStyleTest.test_build_forward_decl): Deleted.
(CppStyleTest.test_build_forward_decl.Foo): Deleted.
(CppStyleTest.test_build_header_guard): Deleted.
(CppStyleTest.test_build_header_guard.Foo_h): Deleted.
(CppStyleTest.test_build_header_guard.Foo_h.for): Deleted.
(CppStyleTest.test_build_printf_format): Deleted.
(CppStyleTest.test_runtime_printf_format): Deleted.
(CppStyleTest.assert_lintLogCodeOnError): Deleted.
(CppStyleTest.test_build_storage_class): Deleted.
(CppStyleTest.test_build_storage_class.unsignedLongLong): Deleted.
(CppStyleTest.test_build_storage_class.declaration): Deleted.
(CppStyleTest.test_build_storage_class.after): Deleted.
(CppStyleTest.test_build_storage_class.is): Deleted.
(CppStyleTest.test_legal_copyright): Deleted.
(CppStyleTest.test_invalid_increment): Deleted.
(CppStyleTest.test_enum_bitfields): Deleted.
(CppStyleTest.test_plain_integral_bitfields): Deleted.
(CleansedLinesTest.test_init_empty): Deleted.
(CleansedLinesTest.test_collapse_strings): Deleted.
(OrderOfIncludesTest.tearDown): Deleted.
(OrderOfIncludesTest.test_check_next_include_orderno_config): Deleted.
(OrderOfIncludesTest.test_check_next_include_order
no_self): Deleted.
(OrderOfIncludesTest.test_check_next_include_orderlikely_then_config): Deleted.
(OrderOfIncludesTest.test_check_next_include_order
other_then_config): Deleted.
(OrderOfIncludesTest.test_check_next_include_orderconfig_then_other_then_likely): Deleted.
(OrderOfIncludesTest.test_check_alphabetical_include_order): Deleted.
(OrderOfIncludesTest.test_check_alphabetical_include_order_errors_reported_for_both_lines): Deleted.
(OrderOfIncludesTest.test_check_line_break_after_own_header): Deleted.
(OrderOfIncludesTest.test_check_line_break_before_own_header): Deleted.
(OrderOfIncludesTest.test_check_preprocessor_in_include_section): Deleted.
(OrderOfIncludesTest.test_check_preprocessor_in_include_section.BAZ): Deleted.
(OrderOfIncludesTest.test_check_preprocessor_in_include_section.FOOBAR): Deleted.
(OrderOfIncludesTest.test_primary_header): Deleted.
(OrderOfIncludesTest.test_public_primary_header): Deleted.
(OrderOfIncludesTest.test_check_wtf_includes): Deleted.
(OrderOfIncludesTest.test_classify_include): Deleted.
(OrderOfIncludesTest.test_try_drop_common_suffixes): Deleted.
(CheckForFunctionLengthsTest.tearDown): Deleted.
(CheckForFunctionLengthsTest.set_min_confidence): Deleted.
(CheckForFunctionLengthsTest.assert_function_lengths_check): Deleted.
(CheckForFunctionLengthsTest.trigger_lines): Deleted.
(CheckForFunctionLengthsTest.trigger_test_lines): Deleted.
(CheckForFunctionLengthsTest.assert_function_length_check_definition): Deleted.
(CheckForFunctionLengthsTest.assert_function_length_check_definition_ok): Deleted.
(CheckForFunctionLengthsTest.assert_function_length_check_at_error_level): Deleted.
(CheckForFunctionLengthsTest.assert_function_length_check_below_error_level): Deleted.
(CheckForFunctionLengthsTest.assert_function_length_check_above_error_level): Deleted.
(CheckForFunctionLengthsTest.function_body): Deleted.
(CheckForFunctionLengthsTest.function_body_with_blank_lines): Deleted.
(CheckForFunctionLengthsTest.function_body_with_no_lints): Deleted.
(CheckForFunctionLengthsTest.test_function_length_check_declaration): Deleted.
(CheckForFunctionLengthsTest.test_function_length_check_declaration_with_block_following): Deleted.
(CheckForFunctionLengthsTest.test_function_length_check_class_definition): Deleted.
(CheckForFunctionLengthsTest.test_function_length_check_class_definition.Test): Deleted.
(CheckForFunctionLengthsTest.test_function_length_check_trivial): Deleted.
(CheckForFunctionLengthsTest.test_function_length_check_empty): Deleted.
(CheckForFunctionLengthsTest.test_function_length_check_definition_below_severity0): Deleted.
(CheckForFunctionLengthsTest.test_function_length_check_definition_at_severity0): Deleted.
(CheckForFunctionLengthsTest.test_function_length_check_definition_above_severity0): Deleted.
(CheckForFunctionLengthsTest.test_function_length_check_definition_below_severity1v0): Deleted.
(CheckForFunctionLengthsTest.test_function_length_check_definition_at_severity1v0): Deleted.
(CheckForFunctionLengthsTest.test_function_length_check_definition_below_severity1): Deleted.
(CheckForFunctionLengthsTest.test_function_length_check_definition_at_severity1): Deleted.
(CheckForFunctionLengthsTest.test_function_length_check_definition_above_severity1): Deleted.
(CheckForFunctionLengthsTest.test_function_length_check_definition_severity1_plus_indented): Deleted.
(CheckForFunctionLengthsTest.test_function_length_check_definition_severity1_plus_blanks): Deleted.
(CheckForFunctionLengthsTest.test_function_length_check_complex_definition_severity1): Deleted.
(CheckForFunctionLengthsTest.test_function_length_check_definition_severity1_for_test): Deleted.
(CheckForFunctionLengthsTest.test_function_length_check_definition_severity1_for_split_line_test): Deleted.
(CheckForFunctionLengthsTest.test_function_length_check_definition_severity1_for_bad_test_doesnt_break): Deleted.
(CheckForFunctionLengthsTest.test_function_length_check_definition_severity1_with_embedded_no_lints): Deleted.
(CheckForFunctionLengthsTest.test_function_length_check_definition_severity1_with_no_lint): Deleted.
(CheckForFunctionLengthsTest.test_function_length_check_definition_below_severity2): Deleted.
(CheckForFunctionLengthsTest.test_function_length_check_definition_severity2): Deleted.
(CheckForFunctionLengthsTest.test_function_length_check_definition_above_severity2): Deleted.
(CheckForFunctionLengthsTest.test_function_length_check_definition_below_severity3): Deleted.
(CheckForFunctionLengthsTest.test_function_length_check_definition_severity3): Deleted.
(CheckForFunctionLengthsTest.test_function_length_check_definition_above_severity3): Deleted.
(CheckForFunctionLengthsTest.test_function_length_check_definition_below_severity4): Deleted.
(CheckForFunctionLengthsTest.test_function_length_check_definition_severity4): Deleted.
(CheckForFunctionLengthsTest.test_function_length_check_definition_above_severity4): Deleted.
(CheckForFunctionLengthsTest.test_function_length_check_definition_below_severity5): Deleted.
(CheckForFunctionLengthsTest.test_function_length_check_definition_at_severity5): Deleted.
(CheckForFunctionLengthsTest.test_function_length_check_definition_above_severity5): Deleted.
(CheckForFunctionLengthsTest.test_function_length_check_definition_huge_lines): Deleted.
(CheckForFunctionLengthsTest.test_function_length_not_determinable): Deleted.
(NoNonVirtualDestructorsTest.test_no_error): Deleted.
(NoNonVirtualDestructorsTest.test_no_error.Foo): Deleted.
(NoNonVirtualDestructorsTest.test_no_error.MyClass): Deleted.
(NoNonVirtualDestructorsTest.test_no_error.Qualified): Deleted.
(NoNonVirtualDestructorsTest.test_no_destructor_when_virtual_needed): Deleted.
(NoNonVirtualDestructorsTest.test_no_destructor_when_virtual_needed.Foo): Deleted.
(NoNonVirtualDestructorsTest.test_enum_casing): Deleted.
(NoNonVirtualDestructorsTest.test_enum_casing.Foo): Deleted.
(NoNonVirtualDestructorsTest.test_enum_casing.Enum123): Deleted.
(NoNonVirtualDestructorsTest.test_enum_trailing_semicolon): Deleted.
(NoNonVirtualDestructorsTest.test_enum_trailing_semicolon.CPP11EnumClass): Deleted.
(NoNonVirtualDestructorsTest.test_enum_trailing_semicolon.MyEnum): Deleted.
(NoNonVirtualDestructorsTest.test_destructor_non_virtual_when_virtual_needed): Deleted.
(NoNonVirtualDestructorsTest.test_destructor_non_virtual_when_virtual_needed.Foo): Deleted.
(NoNonVirtualDestructorsTest.test_no_warn_when_derived): Deleted.
(NoNonVirtualDestructorsTest.test_no_warn_when_derived.Foo): Deleted.
(NoNonVirtualDestructorsTest.test_internal_braces): Deleted.
(NoNonVirtualDestructorsTest.test_internal_braces.Foo): Deleted.
(NoNonVirtualDestructorsTest.test_inner_class_needs_virtual_destructor): Deleted.
(NoNonVirtualDestructorsTest.test_inner_class_needs_virtual_destructor.Foo): Deleted.
(NoNonVirtualDestructorsTest.test_inner_class_needs_virtual_destructor.Foo.Goo): Deleted.
(NoNonVirtualDestructorsTest.test_inner_class_needs_virtual_destructor.Goo): Deleted.
(NoNonVirtualDestructorsTest.test_outer_class_needs_virtual_destructor): Deleted.
(NoNonVirtualDestructorsTest.test_outer_class_needs_virtual_destructor.Foo): Deleted.
(NoNonVirtualDestructorsTest.test_outer_class_needs_virtual_destructor.Foo.Goo): Deleted.
(NoNonVirtualDestructorsTest.test_qualified_class_needs_virtual_destructor): Deleted.
(NoNonVirtualDestructorsTest.test_qualified_class_needs_virtual_destructor.Qualified): Deleted.
(NoNonVirtualDestructorsTest.test_multi_line_declaration_no_error): Deleted.
(NoNonVirtualDestructorsTest.test_multi_line_declaration_no_error.Foo): Deleted.
(NoNonVirtualDestructorsTest.test_multi_line_declaration_with_error): Deleted.
(NoNonVirtualDestructorsTest.test_multi_line_declaration_with_error.Foo): Deleted.
(LeakyPatternTest.assert_leaky_pattern_check): Deleted.
(LeakyPatternTest.test_get_dc): Deleted.
(LeakyPatternTest.test_get_dc.HWndDC): Deleted.
(LeakyPatternTest.test_own_get_dc): Deleted.
(LeakyPatternTest.test_create_dc): Deleted.
(LeakyPatternTest.test_create_compatible_dc): Deleted.
(WebKitStyleTest.test_indentation): Deleted.
(WebKitStyleTest.test_indentation.Foo): Deleted.
(WebKitStyleTest.test_indentation.Document): Deleted.
(WebKitStyleTest.test_spacing): Deleted.
(WebKitStyleTest.test_line_breaking): Deleted.
(WebKitStyleTest.test_braces): Deleted.
(WebKitStyleTest.test_braces.MyClass): Deleted.
(WebKitStyleTest.test_braces.NS_ENUM): Deleted.
(WebKitStyleTest.test_braces.CPP11EnumClass): Deleted.
(WebKitStyleTest.test_braces.SOMETHING): Deleted.
(WebKitStyleTest.test_null_false_zero): Deleted.
(WebKitStyleTest.test_directive_indentation): Deleted.
(WebKitStyleTest.test_using_std): Deleted.
(WebKitStyleTest.test_using_namespace): Deleted.
(WebKitStyleTest.test_max_macro): Deleted.
(WebKitStyleTest.test_min_macro): Deleted.
(WebKitStyleTest.test_wtf_move): Deleted.
(WebKitStyleTest.test_ctype_fucntion): Deleted.
(WebKitStyleTest.test_names): Deleted.
(WebKitStyleTest.test_names.HTMLDocument): Deleted.
(WebKitStyleTest.test_names.WebWindowFadeAnimation): Deleted.
(WebKitStyleTest.test_names.declarations): Deleted.
(WebKitStyleTest.test_names.struct): Deleted.
(WebKitStyleTest.test_names.VectorType): Deleted.
(WebKitStyleTest.test_parameter_names): Deleted.
(WebKitStyleTest.test_comments): Deleted.
(WebKitStyleTest.test_webkit_export_check): Deleted.
(WebKitStyleTest.test_member_initialization_list): Deleted.
(WebKitStyleTest.test_member_initialization_list.MyClass): Deleted.
(WebKitStyleTest.test_other): Deleted.
(CppCheckerTest.mock_handle_style_error): Deleted.
(CppCheckerTest._checker): Deleted.
(CppCheckerTest.test_init): Deleted.
(CppCheckerTest.test_eq): Deleted.
(CppCheckerTest.test_eq.mock_handle_style_error2): Deleted.
(CppCheckerTest.test_ne): Deleted.

  • TestWebKitAPI/Tests/WebKit/ios/AudioSessionCategoryIOS.mm:
  • TestWebKitAPI/Tests/ios/UIPasteboardTests.mm:
  • TestWebKitAPI/cocoa/TestWKWebView.mm:
  • TestWebKitAPI/ios/DataInteractionSimulator.mm:
  • WebKitTestRunner/InjectedBundle/mac/TestRunnerMac.mm:
  • WebKitTestRunner/ios/HIDEventGenerator.mm:
10:49 PM Changeset in webkit [219190] by Alan Bujtas
  • 3 edits
    2 adds in trunk

REGRESSION: Stack overflow in RenderBlockFlow::layoutBlock after increasing the font size to max in some RTL vertical books.
https://bugs.webkit.org/show_bug.cgi?id=174144
<rdar://problem/32781038>

Reviewed by Simon Fraser.

Source/WebCore:

We set the start/end margin on the ruby renderer to support overhanging content. The margins ensure that
adjacent boxes on the line are placed properly respecting the overhanging content.
The line breaking algorithm also takes this value into account as it affects the line's available width.
We need to reset this value before laying out the lines, otherwise we might end up using this value on the line twice;
first as the renderer's margins (as the result of the previous layout) and second as the renderer's overhanging value.
Since this is not strictly part of the renderer's layout context (i.e. we set them during the line layout and not at
RenderRubyRun::layout) we can't rely on the ruby's layout logic to reset them.

Test: fast/ruby/ruby-overhang-margin-crash.html

  • rendering/RenderBlockLineLayout.cpp:

(WebCore::RenderBlockFlow::layoutLineBoxes):

LayoutTests:

  • fast/ruby/ruby-overhang-margin-crash-expected.txt: Added.
  • fast/ruby/ruby-overhang-margin-crash.html: Added.
10:33 PM Changeset in webkit [219189] by jmarcell@apple.com
  • 2 edits in tags/Safari-604.1.29/Source/WebKit2

Cherry-pick r219157. rdar://problem/32956929

10:33 PM Changeset in webkit [219188] by jmarcell@apple.com
  • 5 edits in tags/Safari-604.1.29/Source

Cherry-pick r219144. rdar://problem/33086744

10:01 PM Changeset in webkit [219187] by sbarati@apple.com
  • 7 edits
    1 add in trunk

NewArray in FTLLowerDFGToB3 does not handle speculating on doubles when having a bad time
https://bugs.webkit.org/show_bug.cgi?id=174188
<rdar://problem/30581423>

Reviewed by Mark Lam.

JSTests:

  • stress/new-array-having-a-bad-time-double.js: Added.

(assert):
(foo):

Source/JavaScriptCore:

We were calling lowJSValue(edge) when we were speculating the
edge as double. This isn't allowed. We should have been using
lowDouble.

This patch also adds a new option, called useArrayAllocationProfiling,
which defaults to true. When false, it will make the array allocation
profile not actually sample seen arrays. It'll force the allocation
profile's predicted indexing type to be ArrayWithUndecided. Adding
this option made it trivial to write a test for this bug.

  • bytecode/ArrayAllocationProfile.cpp:

(JSC::ArrayAllocationProfile::updateIndexingType):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNewArray):

  • runtime/Options.h:

Tools:

  • Scripts/run-jsc-stress-tests:
9:51 PM Changeset in webkit [219186] by Yusuke Suzuki
  • 8 edits in trunk

Upgrade GCC baseline
https://bugs.webkit.org/show_bug.cgi?id=174155

Reviewed by Michael Catanzaro.

.:

This patch bumps the version of GCC from 4.9.0 to 5.0.0,
which is shipped with Ubuntu 16.04 LTS. And the latest
Debian stable (stretch) already ships newer GCC (6.3.0).
Remove workaround for old GCC. And move GCC version check
to the top-level CMakeLists.txt.

  • CMakeLists.txt:
  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/WebKitHelpers.cmake:

Source/WebCore:

Remove workaround for old GCC.

  • CMakeLists.txt:

Source/WTF:

  • wtf/Compiler.h:
8:42 PM Changeset in webkit [219185] by Devin Rousso
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Group Inspector Style Sheets as part of the Stylesheets folder
https://bugs.webkit.org/show_bug.cgi?id=173435

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/ResourceSidebarPanel.js:

(WebInspector.ResourceSidebarPanel.prototype.matchTreeElementAgainstCustomFilters.match):
Add special case for CSSStyleSheetTreeElement.

7:59 PM Changeset in webkit [219184] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Unreviewed attempt to fix iOS build after r219177.

  • page/ios/UserAgentIOS.mm:
  • platform/spi/ios/UIKitSPI.h:
7:49 PM Changeset in webkit [219183] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

Unreviewed attempt to fix iOS build after r219177.

  • page/ios/UserAgentIOS.mm:
  • platform/spi/ios/UIKitSPI.h:
7:31 PM Changeset in webkit [219182] by Yusuke Suzuki
  • 3 edits
    1 add in trunk

WTF::StringImpl::copyChars segfaults when built with GCC 7
https://bugs.webkit.org/show_bug.cgi?id=173407

Reviewed by Andreas Kling.

JSTests:

  • stress/string-repeat-copy-chars-crash.js: Added.

(shouldBe):

Source/WTF:

With GCC 7, StringImpl::copyChars() behaves as unexpected.
This function violates strict aliasing rule.

This optimization is originally introduced to improve performance
in SunSpider's string tests in 2008. When running it in my Linux
box, it no longer causes any observable difference. So, we just
remove this optimization.

baseline patched

string-base64 7.7544+-0.1761 7.6138+-0.2071 might be 1.0185x faster
string-fasta 10.5429+-0.2746 ? 10.7500+-0.2669 ? might be 1.0196x slower
string-tagcloud 14.8588+-0.2828 14.8039+-0.3039
string-unpack-code 36.1769+-0.4251 35.3397+-0.5398 might be 1.0237x faster
string-validate-input 8.5182+-0.2206 8.3514+-0.2179 might be 1.0200x faster

  • wtf/text/StringImpl.h:

(WTF::StringImpl::copyChars):

7:30 PM Changeset in webkit [219181] by commit-queue@webkit.org
  • 2 edits in trunk/Source/bmalloc

reinterpret_cast does not evaluate to constexpr
https://bugs.webkit.org/show_bug.cgi?id=173622

Patch by Daewoong Jang <daewoong.jang@navercorp.com> on 2017-07-05
Reviewed by Yusuke Suzuki.

  • bmalloc/Algorithm.h:

(bmalloc::mask):
(bmalloc::roundUpToMultipleOf):

7:29 PM Changeset in webkit [219180] by Devin Rousso
  • 2 edits
    1 move
    1 add in trunk/Source/WebInspectorUI

Web Inspector: Split Canvas.svg into icons for 2D and 3D
https://bugs.webkit.org/show_bug.cgi?id=174057

Reviewed by Matt Baker.

  • UserInterface/Images/Canvas2D.svg: Added.
  • UserInterface/Images/Canvas3D.svg: Renamed from Source/WebInspectorUI/UserInterface/Images/Canvas.svg.
  • UserInterface/Views/ResourceIcons.css:

(.canvas.canvas-2d .icon):
(.canvas:matches(.webgl, .webgl2, .webgpu) .icon):
(.canvas .icon): Deleted.

7:27 PM Changeset in webkit [219179] by Yusuke Suzuki
  • 8 edits in trunk/Source

Use std::lock_guard instead of std::unique_lock if move semantics and try_lock is not necessary
https://bugs.webkit.org/show_bug.cgi?id=174148

Reviewed by Mark Lam.

Source/WebCore:

  • platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm:

(WebCore::AudioSourceProviderAVFObjC::~AudioSourceProviderAVFObjC):

Source/WTF:

It is not necessary to use std::unique_lock if we do not use additional features compared to std::lock_guard.

(WTF::ThreadHolder::get):
(WTF::ThreadHolder::initialize):
(WTF::ThreadHolder::destruct):

  • wtf/Threading.cpp:

(WTF::Thread::didExit):

  • wtf/ThreadingPthreads.cpp:

(WTF::Thread::changePriority):
(WTF::Thread::waitForCompletion):
(WTF::Thread::detach):
(WTF::Thread::signal):
(WTF::Thread::resume):
(WTF::Thread::getRegisters):
(WTF::Thread::establish):

  • wtf/ThreadingWin.cpp:

(WTF::Thread::changePriority):
(WTF::Thread::waitForCompletion):
(WTF::Thread::detach):
(WTF::Thread::resume):
(WTF::Thread::getRegisters):
(WTF::Thread::establish):

  • wtf/WordLock.cpp:

(WTF::WordLockBase::unlockSlow):

7:02 PM Changeset in webkit [219178] by Yusuke Suzuki
  • 147 edits
    1 delete in trunk

[WTF] Clean up StringStatics.cpp by using LazyNeverDestroyed<> for Atoms
https://bugs.webkit.org/show_bug.cgi?id=174150

Reviewed by Mark Lam.

Source/WebCore:

  • Modules/mediacontrols/MediaControlsHost.cpp:

(WebCore::MediaControlsHost::captionDisplayMode):

  • Modules/mediastream/RTCDataChannel.cpp:

(WebCore::RTCDataChannel::binaryType):

  • accessibility/AXObjectCache.cpp:

(WebCore::createFromRenderer):

  • accessibility/AccessibilityMediaControls.cpp:

(WebCore::AccessibilityMediaControl::controlTypeName):

  • accessibility/AccessibilityObject.cpp:

(WebCore::AccessibilityObject::language):
(WebCore::AccessibilityObject::defaultLiveRegionStatusForRole):
(WebCore::AccessibilityObject::actionVerb):
(WebCore::AccessibilityObject::getAttribute):
(WebCore::AccessibilityObject::placeholderValue):

  • accessibility/AccessibilityObject.h:

(WebCore::AccessibilityObject::accessKey):
(WebCore::AccessibilityObject::ariaLiveRegionRelevant):

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::accessKey):
(WebCore::AccessibilityRenderObject::actionVerb):

  • bindings/js/JSCustomElementInterface.cpp:

(WebCore::JSCustomElementInterface::constructElementWithFallback):

  • bindings/js/JSCustomElementRegistryCustom.cpp:

(WebCore::JSCustomElementRegistry::define):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateDefaultValue):

  • bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAtomicStringBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAtomicStringIsNullBody):
(WebCore::jsTestObjPrototypeFunctionMethodWithOptionalAtomicStringIsEmptyStringBody):

  • css/CSSPageRule.cpp:

(WebCore::CSSPageRule::selectorText):

  • css/CSSPrimitiveValue.cpp:

(WebCore::valueName):

  • css/CSSSelector.cpp:

(WebCore::simpleSelectorSpecificityInternal):
(WebCore::CSSSelector::specificityForPage):
(WebCore::CSSSelector::RareData::RareData):

  • css/CSSSelector.h:

(WebCore::CSSSelector::argument):

  • css/CSSSelectorList.cpp:

(WebCore::SelectorNeedsNamespaceResolutionFunctor::operator()):

  • css/PageRuleCollector.cpp:

(WebCore::checkPageSelectorComponents):

  • css/RuleSet.cpp:

(WebCore::computeMatchBasedOnRuleHash):
(WebCore::RuleSet::addRule):

  • css/SelectorChecker.cpp:

(WebCore::tagMatches):

  • css/SelectorFilter.cpp:

(WebCore::collectDescendantSelectorIdentifierHashes):

  • css/StyleBuilderConverter.h:

(WebCore::StyleBuilderConverter::convertStringOrAuto):
(WebCore::StyleBuilderConverter::convertStringOrNone):

  • css/StyleBuilderCustom.h:

(WebCore::StyleBuilderCustom::applyValueWebkitLocale):
(WebCore::StyleBuilderCustom::applyValueWebkitTextEmphasisStyle):
(WebCore::StyleBuilderCustom::applyValueContent):
(WebCore::StyleBuilderCustom::applyValueAlt):

  • css/StyleSheetContents.cpp:

(WebCore::StyleSheetContents::StyleSheetContents):
(WebCore::StyleSheetContents::namespaceURIFromPrefix):

  • css/makeprop.pl:
  • css/parser/CSSParserImpl.cpp:

(WebCore::CSSParserImpl::parsePageSelector):

  • css/parser/CSSSelectorParser.cpp:

(WebCore::CSSSelectorParser::consumeCompoundSelector):
(WebCore::CSSSelectorParser::consumeName):
(WebCore::CSSSelectorParser::consumeAttribute):
(WebCore::CSSSelectorParser::defaultNamespace):
(WebCore::CSSSelectorParser::determineNamespace):
(WebCore::CSSSelectorParser::prependTypeSelectorIfNeeded):

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::attributeNameTestingRequiresNamespaceRegister):
(WebCore::SelectorCompiler::equalTagNames):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeMatching):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementHasTagName):

  • dom/Attr.cpp:

(WebCore::Attr::setPrefix):
(WebCore::Attr::attachToElement):

  • dom/Attribute.h:

(WebCore::Attribute::nameMatchesFilter):

  • dom/ConstantPropertyMap.cpp:

(WebCore::ConstantPropertyMap::nameForProperty):

  • dom/ContainerNode.cpp:

(WebCore::ContainerNode::getElementsByTagName):
(WebCore::ContainerNode::getElementsByTagNameNS):

  • dom/CustomElementReactionQueue.cpp:

(WebCore::CustomElementReactionQueue::enqueuePostUpgradeReactions):

  • dom/DatasetDOMStringMap.cpp:

(WebCore::convertPropertyNameToAttributeName):

  • dom/Document.cpp:

(WebCore::createUpgradeCandidateElement):
(WebCore::Document::createElementForBindings):
(WebCore::Document::importNode):
(WebCore::Document::hasValidNamespaceForElements):
(WebCore::Document::processBaseElement):
(WebCore::Document::dir):
(WebCore::Document::bgColor):
(WebCore::Document::fgColor):
(WebCore::Document::alinkColor):
(WebCore::Document::linkColorForBindings):
(WebCore::Document::vlinkColor):

  • dom/Document.h:
  • dom/Element.cpp:

(WebCore::Element::setBooleanAttribute):
(WebCore::Element::synchronizeAttribute):
(WebCore::Element::getAttribute):
(WebCore::Element::getAttributeNS):
(WebCore::Element::setAttribute):
(WebCore::Element::parserSetAttributes):
(WebCore::Element::didMoveToNewDocument):
(WebCore::Element::setPrefix):
(WebCore::Element::insertedInto):
(WebCore::Element::removedFrom):
(WebCore::Element::removeAttributeInternal):
(WebCore::Element::addAttributeInternal):
(WebCore::Element::removeAttributeNS):
(WebCore::Element::getAttributeNodeNS):
(WebCore::Element::hasAttributeNS):
(WebCore::Element::computeInheritedLanguage):
(WebCore::Element::updateNameForDocument):
(WebCore::Element::updateIdForDocument):
(WebCore::Element::didAddAttribute):
(WebCore::Element::didRemoveAttribute):
(WebCore::Element::cloneAttributesFromElement):

  • dom/Element.h:

(WebCore::Element::attributeWithoutSynchronization):
(WebCore::Element::idForStyleResolution):
(WebCore::Element::getIdAttribute):
(WebCore::Element::getNameAttribute):

  • dom/EventTarget.cpp:

(WebCore::legacyType):

  • dom/MutationRecord.h:

(WebCore::MutationRecord::attributeName):
(WebCore::MutationRecord::attributeNamespace):

  • dom/NamedNodeMap.cpp:

(WebCore::NamedNodeMap::removeNamedItemNS):

  • dom/Node.cpp:

(WebCore::Node::prefix):
(WebCore::Node::localName):
(WebCore::Node::namespaceURI):
(WebCore::Node::checkSetPrefix):
(WebCore::locateDefaultNamespace):
(WebCore::Node::isDefaultNamespace):
(WebCore::Node::lookupNamespaceURI):
(WebCore::locateNamespacePrefix):
(WebCore::Node::lookupPrefix):

  • dom/NodeRareData.h:

(WebCore::NodeListsNodeData::addCachedTagCollectionNS):
(WebCore::NodeListsNodeData::addCachedCollection):
(WebCore::NodeListsNodeData::cachedCollection):
(WebCore::NodeListsNodeData::removeCacheWithAtomicName):
(WebCore::NodeListsNodeData::removeCachedTagCollectionNS):
(WebCore::NodeListsNodeData::removeCachedCollection):

  • dom/PseudoElement.cpp:

(WebCore::pseudoElementTagName):

  • dom/QualifiedName.cpp:

(WebCore::QualifiedName::init):
(WebCore::nullQName):
(WebCore::createQualifiedName):

  • dom/QualifiedName.h:

(WebCore::QualifiedName::hasPrefix):

  • dom/SelectorQuery.cpp:

(WebCore::SelectorDataList::executeSingleTagNameSelectorData):

  • dom/SlotAssignment.cpp:

(WebCore::slotNameFromAttributeValue):

  • dom/SlotAssignment.h:

(WebCore::SlotAssignment::defaultSlotName):
(WebCore::ShadowRoot::didRemoveAllChildrenOfShadowHost):
(WebCore::ShadowRoot::didChangeDefaultSlot):

  • dom/TagCollection.cpp:

(WebCore::TagCollection::TagCollection):
(WebCore::HTMLTagCollection::HTMLTagCollection):

  • dom/TagCollection.h:

(WebCore::TagCollectionNS::elementMatches):

  • dom/make_names.pl:

(printNamesCppFile):
(printDefinitions):
(printFactoryCppFile):

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::removeNodeAttribute):

  • editing/Editing.cpp:

(WebCore::createHTMLElement):

  • editing/MarkupAccumulator.cpp:

(WebCore::MarkupAccumulator::serializeNodesWithNamespaces):
(WebCore::MarkupAccumulator::shouldAddNamespaceElement):
(WebCore::MarkupAccumulator::shouldAddNamespaceAttribute):
(WebCore::MarkupAccumulator::appendNamespace):
(WebCore::MarkupAccumulator::appendOpenTag):
(WebCore::MarkupAccumulator::appendAttribute):

  • editing/gtk/EditorGtk.cpp:

(WebCore::elementURL):

  • editing/markup.cpp:

(WebCore::AttributeChange::AttributeChange):

  • html/Autocapitalize.cpp:

(WebCore::stringForAutocapitalizeType):

  • html/Autofill.cpp:

(WebCore::AutofillData::createFromHTMLFormControlElement):

  • html/DOMTokenList.h:

(WebCore::DOMTokenList::item):

  • html/FormAssociatedElement.cpp:

(WebCore::FormAssociatedElement::name):

  • html/HTMLButtonElement.cpp:

(WebCore::HTMLButtonElement::formControlType):

  • html/HTMLDetailsElement.cpp:

(WebCore::HTMLDetailsElement::toggleOpen):

  • html/HTMLDocument.cpp:

(WebCore::HTMLDocument::isCaseSensitiveAttribute):

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::eventNameForEventHandlerAttribute):
(WebCore::toValidDirValue):

  • html/HTMLImageElement.cpp:

(WebCore::HTMLImageElement::bestFitSourceFromPictureElement):

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::name):
(WebCore::HTMLInputElement::updateType):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::doesHaveAttribute):

  • html/HTMLOptionElement.cpp:

(WebCore::HTMLOptionElement::createForJSConstructor):

  • html/HTMLParamElement.cpp:

(WebCore::HTMLParamElement::name):

  • html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::setMultiple):

  • html/HTMLTableCellElement.cpp:

(WebCore::HTMLTableCellElement::scope):

  • html/HTMLTrackElement.cpp:

(WebCore::HTMLTrackElement::mediaElementCrossOriginAttribute):

  • html/LabelableElement.cpp:

(WebCore::LabelableElement::labels):

  • html/LabelsNodeList.cpp:

(WebCore::LabelsNodeList::~LabelsNodeList):

  • html/MediaController.cpp:

(MediaController::playbackState):
(eventNameForReadyState):

  • html/MediaDocument.cpp:

(WebCore::MediaDocumentParser::createDocumentStructure):

  • html/parser/AtomicHTMLToken.h:

(WebCore::AtomicHTMLToken::initializeAttributes):

  • html/parser/HTMLConstructionSite.cpp:

(WebCore::HTMLConstructionSite::createElement):
(WebCore::HTMLConstructionSite::createHTMLElementOrFindCustomElementInterface):

  • html/parser/HTMLParserIdioms.cpp:

(WebCore::stripLeadingAndTrailingHTMLSpaces):
(WebCore::parseHTMLHashNameReference):

  • html/parser/HTMLTreeBuilder.cpp:

(WebCore::createForeignAttributesMap):

  • html/track/InbandTextTrack.cpp:

(WebCore::InbandTextTrack::InbandTextTrack):

  • html/track/LoadableTextTrack.cpp:

(WebCore::LoadableTextTrack::id):

  • html/track/TextTrack.cpp:

(WebCore::TextTrack::captionMenuOffItem):
(WebCore::TextTrack::captionMenuAutomaticItem):

  • html/track/TrackBase.cpp:

(WebCore::MediaTrackBase::setKindInternal):

  • html/track/VTTRegion.cpp:

(WebCore::VTTRegion::scroll):

  • html/track/WebVTTElement.cpp:

(WebCore::nodeTypeToTagName):

  • html/track/WebVTTElement.h:
  • html/track/WebVTTToken.h:

(WebCore::WebVTTToken::StartTag):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::clear):

  • loader/FrameLoader.h:
  • loader/ImageLoader.cpp:

(WebCore::ImageLoader::clearFailedLoadURL):

  • loader/NavigationAction.h:
  • loader/PolicyChecker.cpp:

(WebCore::PolicyChecker::checkNavigationPolicy):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::showModalDialog):

  • page/EventHandler.cpp:

(WebCore::eventNameForTouchPointState):

  • page/FrameTree.cpp:

(WebCore::FrameTree::setName):
(WebCore::FrameTree::clearName):

  • page/Page.cpp:

(WebCore::Page::groupName):

  • platform/graphics/ComplexTextController.cpp:

(WebCore::ComplexTextController::offsetForPosition):

  • platform/graphics/FontCache.cpp:

(WebCore::FontCache::alternateFamilyName):

  • platform/graphics/FontDescription.h:

(WebCore::FontCascadeDescription::initialLocale):

  • platform/graphics/FontGenericFamilies.cpp:

(WebCore::genericFontFamilyForScript):

  • platform/graphics/InbandTextTrackPrivate.h:

(WebCore::InbandTextTrackPrivate::inBandMetadataTrackDispatchType):

  • platform/graphics/TrackPrivateBase.h:

(WebCore::TrackPrivateBase::id):
(WebCore::TrackPrivateBase::label):
(WebCore::TrackPrivateBase::language):

  • platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.mm:

(WebCore::AVTrackPrivateAVFObjCImpl::id):
(WebCore::AVTrackPrivateAVFObjCImpl::label):
(WebCore::AVTrackPrivateAVFObjCImpl::language):

  • platform/graphics/avfoundation/InbandMetadataTextTrackPrivateAVF.h:
  • platform/graphics/avfoundation/cf/InbandTextTrackPrivateAVCF.cpp:

(WebCore::InbandTextTrackPrivateAVCF::label):
(WebCore::InbandTextTrackPrivateAVCF::language):

  • platform/graphics/avfoundation/cf/InbandTextTrackPrivateLegacyAVCF.cpp:

(WebCore::InbandTextTrackPrivateLegacyAVCF::label):
(WebCore::InbandTextTrackPrivateLegacyAVCF::language):

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

(WebCore::InbandTextTrackPrivateAVFObjC::label):
(WebCore::InbandTextTrackPrivateAVFObjC::language):

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

(WebCore::InbandTextTrackPrivateLegacyAVFObjC::label):
(WebCore::InbandTextTrackPrivateLegacyAVFObjC::language):

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

(WebCore::metadataType):
(WebCore::MediaPlayerPrivateAVFoundationObjC::metadataDidArrive):

  • platform/graphics/cocoa/FontCacheCoreText.cpp:

(WebCore::FontCache::platformAlternateFamilyName):

  • platform/graphics/cocoa/FontDescriptionCocoa.cpp:

(WebCore::FontCascadeDescription::effectiveFamilyAt):

  • platform/graphics/freetype/FontCacheFreeType.cpp:

(WebCore::FontCache::platformAlternateFamilyName):

  • platform/graphics/gstreamer/InbandMetadataTextTrackPrivateGStreamer.h:

(WebCore::InbandMetadataTextTrackPrivateGStreamer::create):

  • platform/graphics/win/FontCacheWin.cpp:

(WebCore::FontCache::platformAlternateFamilyName):

  • platform/mediastream/AudioTrackPrivateMediaStream.h:
  • platform/mediastream/RealtimeMediaSourceSettings.cpp:

(WebCore::RealtimeMediaSourceSettings::facingMode):

  • platform/mediastream/VideoTrackPrivateMediaStream.h:
  • rendering/HitTestResult.cpp:

(WebCore::HitTestResult::linkSuggestedFilename):

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::paint):

  • rendering/RenderListItem.cpp:

(WebCore::RenderListItem::markerText):

  • rendering/RenderText.cpp:

(WebCore::RenderText::previousOffset):
(WebCore::RenderText::nextOffset):

  • rendering/RenderTreeAsText.cpp:

(WebCore::RenderTreeAsText::writeRenderObject):

  • rendering/TextPainter.cpp:

(WebCore::TextPainter::paintTextAndEmphasisMarksIfNeeded):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::textEmphasisMarkString):

  • rendering/style/RenderStyle.h:

(WebCore::RenderStyle::initialHyphenationString):
(WebCore::RenderStyle::initialTextEmphasisCustomMark):
(WebCore::RenderStyle::initialContentAltText):
(WebCore::RenderStyle::initialLineGrid):
(WebCore::RenderStyle::initialFlowThread):
(WebCore::RenderStyle::initialRegionThread):

  • style/StyleScope.cpp:

(WebCore::Style::Scope::collectActiveStyleSheets):

  • svg/SVGElement.cpp:

(WebCore::SVGElement::getPresentationAttribute):

  • svg/SVGElement.h:

(WebCore::SVGAttributeHashTranslator::hash):

  • svg/SVGUseElement.cpp:

(WebCore::SVGUseElement::transferSizeAttributesToTargetClone):

  • svg/animation/SVGSMILElement.cpp:

(WebCore::SVGSMILElement::constructAttributeName):

  • testing/MockCDMFactory.cpp:

(WebCore::MockCDMInstance::requestLicense):

  • xml/XMLErrors.cpp:

(WebCore::createXHTMLParserErrorHeader):

  • xml/XPathStep.cpp:

(WebCore::XPath::nodeMatchesBasicTest):
(WebCore::XPath::Step::nodesInAxis):

  • xml/parser/XMLDocumentParserLibxml2.cpp:

(WebCore::XMLDocumentParser::XMLDocumentParser):
(WebCore::handleNamespaceAttributes):
(WebCore::handleElementAttributes):

Source/WebKit/mac:

  • DOM/DOM.mm:

(lookupElementClass):

Source/WTF:

This patch cleans up StringStatics.cpp and remove it from the tree.

  1. Move StringImpl methods to appropriate place, "StringImpl.cpp".

StringImpl::hashSlowCase() and StringImpl::concurrentHash() are defined in
StringStatics.cpp. But they should be defined in StringImpl.cpp.
This patch just moves them to StringImpl.cpp.

  1. Use LazyNeverDestroyed to initialize AtomicString atoms like emptyAtom.

Previously, we initialized AtomicString atoms like emptyAtom in a hacky way.
We first define them as extern global variables. However, AtomicString has
a non-trivial constructor. Thus, we cannot do this because it requires global
constructor calls. This is why we have StringStatics.cpp. In this file, we
include "StaticConstructors.h". After including this file, all the global
constructor call disabled in Windows. And in GCC environment, we allocate
void* storage for that variable. And we use placement new in AtomicString::init()
to initialize these storage.
However, we already have better way for that: LazyNeverDestroyed. It just allocates
storage like the above. And it does not have any global constructors. Thus
we can just declare it as a global variable. And we initialize them lazily in
AtomicString::init(). This way effectively avoids "StaticConstructors.h" hacky way.
And it makes "StringStatics.cpp" unnecessary.
Then, we just move these variables and AtomicString::init() to AtomicString.cpp.

And we also change emptyAtom to emptyAtom() to get the value from LazyNeverDestroyed<>.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/text/AtomicString.cpp:

(WTF::AtomicString::convertASCIICase):
(WTF::AtomicString::fromUTF8Internal):
(WTF::AtomicString::init):

  • wtf/text/AtomicString.h:

(WTF::nullAtom):
(WTF::emptyAtom):
(WTF::starAtom):
(WTF::xmlAtom):
(WTF::xmlnsAtom):
(WTF::AtomicString::fromUTF8):

  • wtf/text/StringBuilder.h:

(WTF::StringBuilder::toAtomicString):

  • wtf/text/StringImpl.cpp:

(WTF::StringImpl::hashSlowCase):
(WTF::StringImpl::concurrentHash):

  • wtf/text/StringStatics.cpp: Removed.

Tools:

  • TestWebKitAPI/Tests/WTF/StringBuilder.cpp:

(TestWebKitAPI::TEST):

7:01 PM Changeset in webkit [219177] by Chris Dumez
  • 3 edits in trunk/Source/WebCore

[iOS] User agent string incorrectly says "iPhone" instead of "iPad" on newer iPads
https://bugs.webkit.org/show_bug.cgi?id=174182
<rdar://problem/32868369>

Reviewed by Tim Horton.

In deviceNameForUserAgent() on iOS, we were forcefully returning "iPhone" if
[UIApplication _isClassic] returns true. Update check to return "iPad" if
[UIApplication _isClassic] returns true but [UIApplication _classMode] returns
UIApplicationSceneClassicModeOriginalPad.

  • page/ios/UserAgentIOS.mm:

(WebCore::isClassicPad):
(WebCore::isClassicPhone):
(WebCore::osNameForUserAgent):
(WebCore::deviceNameForUserAgent):

  • platform/spi/ios/UIKitSPI.h:
6:57 PM Changeset in webkit [219176] by Yusuke Suzuki
  • 21 edits in trunk/Source

WTF::Thread should have the threads stack bounds.
https://bugs.webkit.org/show_bug.cgi?id=173975

Reviewed by Keith Miller.

Source/JavaScriptCore:

There is a site in JSC that try to walk another thread's stack.
Currently, stack bounds are stored in WTFThreadData which is located
in TLS. Thus, only the thread itself can access its own WTFThreadData.
We workaround this situation by holding StackBounds in MachineThread in JSC,
but StackBounds should be put in WTF::Thread instead.

This patch moves StackBounds from WTFThreadData to WTF::Thread. StackBounds
information is tightly coupled with Thread. Thus putting it in WTF::Thread
is natural choice.

  • heap/MachineStackMarker.cpp:

(JSC::MachineThreads::MachineThread::MachineThread):
(JSC::MachineThreads::MachineThread::captureStack):

  • heap/MachineStackMarker.h:

(JSC::MachineThreads::MachineThread::stackBase):
(JSC::MachineThreads::MachineThread::stackEnd):

  • runtime/InitializeThreading.cpp:

(JSC::initializeThreading):

  • runtime/VM.cpp:

(JSC::VM::VM):
(JSC::VM::updateStackLimits):
(JSC::VM::committedStackByteCount):

  • runtime/VM.h:

(JSC::VM::isSafeToRecurse):

  • runtime/VMEntryScope.cpp:

(JSC::VMEntryScope::VMEntryScope):

  • runtime/VMInlines.h:

(JSC::VM::ensureStackCapacityFor):

  • runtime/VMTraps.cpp:
  • yarr/YarrPattern.cpp:

(JSC::Yarr::YarrPatternConstructor::isSafeToRecurse):

Source/WebCore:

When creating WebThread, we first allocate WebCore::ThreadGlobalData in UI thread
and share it with WebThread.
The problem is that WebCore::ThreadGlobalData has CachedResourceRequestInitiators.
It allocates AtomicString, which requires WTFThreadData.

Before this patch, it was OK because WTFThreadData does not touch threading related
things except for ThreadSpecific<>. However, after this patch, it touches
WTF::Thread::current() which requires WTF::initializeThreading().

In this patch, we call WTF::initializeThreading() before allocating WebCore::ThreadGlobalData.
And we also call AtomicString::init() before calling WebCore::ThreadGlobalData since
WebCore::ThreadGlobalData allocates AtomicString.

This fixes crashes in the iOS web threading environment (UIWebView).

  • platform/ios/wak/WebCoreThread.mm:

(StartWebThread):

Source/WTF:

We move StackBounds from WTFThreadData to WTF::Thread.
One important thing is that we should make valid StackBounds
visible to Thread::create() caller. When the caller get
WTF::Thread from Thread::create(), this WTF::Thread should
have a valid StackBounds. But StackBounds information can be
retrived only in the WTF::Thread's thread itself.

We also clean up WTF::initializeThreading. StringImpl::empty()
is now statically initialized by using constexpr constructor.
Thus we do not need to call StringImpl::empty() explicitly here.
And WTF::initializeThreading() does not have any main thread
affinity right now in all the platforms. So we fix the comment
in Threading.h. Then, now, WTF::initializeThreading() is called
in UI thread when using Web thread in iOS.

  • wtf/StackBounds.h:

(WTF::StackBounds::emptyBounds):
(WTF::StackBounds::StackBounds):

  • wtf/StackStats.cpp:

(WTF::StackStats::PerThreadStats::PerThreadStats):

  • wtf/Threading.cpp:

(WTF::threadEntryPoint):
(WTF::Thread::create):
(WTF::Thread::currentMayBeNull):
(WTF::Thread::initialize):
(WTF::initializeThreading):

  • wtf/Threading.h:

(WTF::Thread::stack):

  • wtf/ThreadingPthreads.cpp:

(WTF::Thread::initializeCurrentThreadEvenIfNonWTFCreated):
(WTF::Thread::current):
(WTF::initializeCurrentThreadEvenIfNonWTFCreated): Deleted.
(WTF::Thread::currentMayBeNull): Deleted.

  • wtf/ThreadingWin.cpp:

(WTF::Thread::initializeCurrentThreadEvenIfNonWTFCreated):
(WTF::Thread::initializeCurrentThreadInternal):
(WTF::Thread::current):

  • wtf/WTFThreadData.cpp:

(WTF::WTFThreadData::WTFThreadData):

  • wtf/WTFThreadData.h:

(WTF::WTFThreadData::stack): Deleted.

6:55 PM Changeset in webkit [219175] by jmarcell@apple.com
  • 7 edits
    1 add in tags/Safari-604.1.29

Cherry-pick r219154. rdar://problem/33067518

5:29 PM Changeset in webkit [219174] by Jonathan Bedard
  • 1 edit
    8 adds in trunk/LayoutTests

Move internal iOS 11 TestExpectations to OpenSource
<rdar://problem/32717028>

Unreviewed test gardening.

  • platform/ios-11/platform/ios/ios/fast/text/opticalFont-expected.txt: Added.
  • platform/ios-11/platform/ios/ios/fast/text/opticalFontWithTextStyle-expected.txt: Added.
  • platform/ios-11/platform/ios/ios/fast/text/opticalFontWithWeight-expected.txt: Added.
5:26 PM Changeset in webkit [219173] by mmaxfield@apple.com
  • 3 edits
    2 adds in trunk

CSSFontStyleValue::isItalic seems a bit bogus.
https://bugs.webkit.org/show_bug.cgi?id=174149

Reviewed by Tim Horton.

Source/WebCore:

Simple typo.

Test: editing/execCommand/italicizeByCharacter-normal.html

  • css/CSSFontStyleValue.h:

LayoutTests:

  • editing/execCommand/italicizeByCharacter-normal-expected.txt: Added.
  • editing/execCommand/italicizeByCharacter-normal.html: Added.
5:05 PM Changeset in webkit [219172] by keith_miller@apple.com
  • 7 edits in trunk/Source

Crashing with information should have an abort reason
https://bugs.webkit.org/show_bug.cgi?id=174185

Reviewed by Saam Barati.

Source/JavaScriptCore:

Add crash information for the abstract interpreter and add an enum
value for object allocation sinking.

  • assembler/AbortReason.h:
  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::verifyEdge):

  • dfg/DFGGraph.cpp:

(JSC::DFG::logDFGAssertionFailure):

  • dfg/DFGObjectAllocationSinkingPhase.cpp:

Source/WTF:

Fix an ifdef to actually work with X86_64. It turns out X64_64 is
not an architecture... Whoops.

  • wtf/Assertions.cpp:
5:05 PM Changeset in webkit [219171] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Skipped webgl/1.0.2/conformance/glsl/misc/shader-with-non-reserved-words.html.
https://bugs.webkit.org/show_bug.cgi?id=174100

Unreviewed test gardening.

  • platform/ios-simulator-wk2/TestExpectations:
5:01 PM Changeset in webkit [219170] by beidson@apple.com
  • 26 edits
    3 adds in trunk

Allow navigations in subframes to get a ShouldOpenExternalURLsPolicy of "ShouldAllow".
<rdar://problem/22485589> and https://bugs.webkit.org/show_bug.cgi?id=174178

Reviewed by Alex Christensen.

Source/WebCore:

Test: loader/navigation-policy/should-open-external-urls/subframe-navigated-programatically-by-main-frame.html

This patch introduces a new flag to FrameLoadRequest to track when it is known with certainty that a
FrameLoadRequest originates from the main frame.

Later, when calculating the final ShouldOpenExternalURLsPolicy, main frames navigating iframes get to propagate
their permissions to the iframe.

  • bindings/js/CommonVM.cpp:

(WebCore::lexicalFrameFromCommonVM): Helper to grab the current frame associated with the current JS callstack.

  • bindings/js/CommonVM.h:
  • inspector/InspectorFrontendClientLocal.cpp:

(WebCore::InspectorFrontendClientLocal::openInNewTab):

  • inspector/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::navigate):

Add the new flag to FrameLoadRequest (and force almost everybody to explicitly include the flag):

  • loader/FrameLoadRequest.cpp:

(WebCore::FrameLoadRequest::FrameLoadRequest):

  • loader/FrameLoadRequest.h:

(WebCore::FrameLoadRequest::FrameLoadRequest):
(WebCore::FrameLoadRequest::navigationInitiatedByMainFrame):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::urlSelected):
(WebCore::FrameLoader::loadURLIntoChildFrame):
(WebCore::shouldOpenExternalURLsPolicyToApply): Helper that takes the new flag into account when deciding

what the final ShouldOpenExternalURLsPolicy will be.

(WebCore::applyShouldOpenExternalURLsPolicyToNewDocumentLoader):
(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::load):
(WebCore::FrameLoader::loadWithNavigationAction):
(WebCore::FrameLoader::reloadWithOverrideEncoding):
(WebCore::FrameLoader::reload):
(WebCore::FrameLoader::loadPostRequest):
(WebCore::FrameLoader::continueLoadAfterNewWindowPolicy):
(WebCore::FrameLoader::loadDifferentDocumentItem):
(WebCore::createWindow):
(WebCore::FrameLoader::applyShouldOpenExternalURLsPolicyToNewDocumentLoader): Deleted.

  • loader/FrameLoader.h:
  • loader/FrameLoaderTypes.h:
  • loader/NavigationAction.h:

(WebCore::NavigationAction::navigationInitiatedByMainFrame):

  • loader/NavigationScheduler.cpp:

(WebCore::ScheduledNavigation::ScheduledNavigation): Grab the "initiating frame" at the time the

ScheduledNavigation is created, as it dictates the policy we decide later.

(WebCore::ScheduledNavigation::navigationInitiatedByMainFrame):
(WebCore::NavigationScheduler::scheduleLocationChange):

  • page/ContextMenuController.cpp:

(WebCore::openNewWindow):
(WebCore::ContextMenuController::contextMenuItemSelected):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::createWindow):

Source/WebKit/ios:

Adopt to the new constructor for FrameLoadRequest.

  • WebView/WebPDFViewPlaceholder.mm:

(-[WebPDFViewPlaceholder simulateClickOnLinkToURL:]):

Source/WebKit/mac:

Adopt to the new constructor for FrameLoadRequest.

  • WebView/WebPDFView.mm:

(-[WebPDFView PDFViewWillClickOnLink:withURL:]):

Source/WebKit/win:

Adopt to the new constructor for FrameLoadRequest.

  • Plugins/PluginView.cpp:

(WebCore::PluginView::start):
(WebCore::PluginView::getURLNotify):
(WebCore::PluginView::getURL):
(WebCore::PluginView::handlePost):

Source/WebKit2:

Adopt to the new constructor for FrameLoadRequest.

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::loadURL):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchCreatePage):

  • WebProcess/WebPage/WebInspector.cpp:

(WebKit::WebInspector::openInNewTab):

LayoutTests:

Added a new explicit test and updated expectations for an old one.

  • loader/navigation-policy/should-open-external-urls/resources/main-frame-with-subframe-main-programatically-navigates-subframe.html: Added.
  • loader/navigation-policy/should-open-external-urls/subframe-click-target-self-expected.txt:
  • loader/navigation-policy/should-open-external-urls/subframe-navigated-programatically-by-main-frame-expected.txt: Added.
  • loader/navigation-policy/should-open-external-urls/subframe-navigated-programatically-by-main-frame.html: Added.
4:56 PM Changeset in webkit [219169] by jmarcell@apple.com
  • 2 edits in tags/Safari-604.1.28.1.2/Source/WebKit2

Revert r218821. rdar://problem/33144483

4:54 PM Changeset in webkit [219168] by jmarcell@apple.com
  • 7 edits in tags/Safari-604.1.28.1.2/Source

Versioning.

4:44 PM Changeset in webkit [219167] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebKit2

Remove unnecessary forward declartions now that we include Foundation.h

  • UIProcess/API/Cocoa/WKContentRuleListStore.h:
4:44 PM Changeset in webkit [219166] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Marked animations/needs-layout.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=172397

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
4:40 PM Changeset in webkit [219165] by rniwa@webkit.org
  • 9 edits in trunk/Source

Make WebKit's public headers on Mac and iOS C++ module safe
https://bugs.webkit.org/show_bug.cgi?id=174175

Reviewed by Alex Christensen.

Fixed the header files.

Source/WebKit/mac:

  • Misc/WebDownload.h:
  • Misc/WebKitErrors.h:
  • Plugins/WebPluginContainer.h:
  • WebView/WebResourceLoadDelegate.h:

Source/WebKit2:

  • UIProcess/API/Cocoa/WKContentRuleList.h:
  • UIProcess/API/Cocoa/WKContentRuleListStore.h:
  • UIProcess/API/Cocoa/WKUIDelegate.h:
4:36 PM Changeset in webkit [219164] by jmarcell@apple.com
  • 1 copy in tags/Safari-604.1.28.2

Tag Safari-604.1.28.2.

4:30 PM Changeset in webkit [219163] by jmarcell@apple.com
  • 1 copy in tags/Safari-604.1.28.1.2

Tag Safari-604.1.28.1.2.

3:29 PM Changeset in webkit [219162] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Another build fix, for Mac.

  • platform/graphics/cocoa/IOSurface.mm:

(WebCore::IOSurface::surfaceID):

3:27 PM Changeset in webkit [219161] by Chris Dumez
  • 11 edits in trunk/Source/WebKit2

[WK2] WebsiteDataStore::setResourceLoadStatisticsEnabled() updates processPools the store is not associated with
https://bugs.webkit.org/show_bug.cgi?id=174174

Reviewed by Brent Fulgham.

WebsiteDataStore::setResourceLoadStatisticsEnabled() updates processPools the store is not associated with.
Fix this by iterating over WebsiteDataStore::processPools() instead of WebProcessPool::allProcessPools().

Also rename shouldPartitionCookiesForTopPrivatelyOwnedDomains methods / IPC messages to
updateCookiePartitioningForTopPrivatelyOwnedDomains since this is a setter, not a getter.

Finally, drop ShouldPartitionCookiesForTopPrivatelyOwnedDomains IPC message to the NetworkProcessProxy
as well as corresponding methods as those appear to be unused.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::updateCookiePartitioningForTopPrivatelyOwnedDomains):
(WebKit::NetworkProcess::shouldPartitionCookiesForTopPrivatelyOwnedDomains): Deleted.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::shouldPartitionCookiesForTopPrivatelyOwnedDomains): Deleted.

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::setResourceLoadStatisticsEnabled):

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::updateCookiePartitioningForTopPrivatelyOwnedDomains):
(WebKit::WebsiteDataStore::setResourceLoadStatisticsEnabled):
(WebKit::WebsiteDataStore::registerSharedResourceLoadObserver):
(WebKit::WebsiteDataStore::shouldPartitionCookiesForTopPrivatelyOwnedDomains): Deleted.

  • UIProcess/WebsiteData/WebsiteDataStore.h:
3:25 PM Changeset in webkit [219160] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Further attempts to fix the iOS public SDK build.

  • platform/graphics/cocoa/IOSurface.mm:

(WebCore::IOSurface::surfaceID):

  • platform/spi/cocoa/IOSurfaceSPI.h:
3:08 PM Changeset in webkit [219159] by jmarcell@apple.com
  • 3 edits
    2 adds in branches/safari-604.1.28-branch

Cherry-pick r219081. rdar://problem/33083972

2:52 PM Changeset in webkit [219158] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

Async Image Decoding: Image flashes away briefly when tapping on tab in iPad tab picker
https://bugs.webkit.org/show_bug.cgi?id=174173
<rdar://problem/32431952>

Reviewed by Geoffrey Garen.

  • WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::addTransactionCallbackID):
When a client uses e.g. doAfterNextPresentationUpdate (or internally,
dispatchAfterEnsuringDrawing), they're doing so in the hopes that the
callback is called after the page is well-painted -- for example, to
remove a snapshot (in the tab picker case, as well as for navigation
gestures), or to *take* a snapshot. In all of these cases, it is
preferable to do a synchronous decode, to ensure that the image does
not flash away temporarily.

Use the existing mechanism that was implemented for the synchronous
activity state change flush to also force synchronous image decoding
any time there is a post-commit transaction callback.

2:40 PM Changeset in webkit [219157] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit2

[iOS DnD] [WK2] 3D touch fails to recognize when UIDragInteraction is enabled on phone
https://bugs.webkit.org/show_bug.cgi?id=174171
<rdar://problem/32956929>

Reviewed by Tim Horton.

By default, UIKit defers all competing long press gesture recognizers if dragging is enabled. However, this
would cause 3D touch to be prevented, due to UIKit asking us whether or not we can proceed with the 3D touch
gesture in -_interactionShouldBeginFromPreviewItemController:forPosition:, while the highlight long press
gesture recognizer is being deferred. To address this, we use SPI on UIDragInteraction to allow the highlight
long press gesture recognizer to recognize alongside the drag lift gesture. We then (already) manually cancel
the highlight long press gesture in _dragInteraction:prepareForSession:completion:.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _dragInteraction:shouldDelayCompetingGestureRecognizer:]):

2:26 PM Changeset in webkit [219156] by don.olmstead@sony.com
  • 6 edits
    1 add in trunk

[WinCairo] Consolidate CMake code related to CURL
https://bugs.webkit.org/show_bug.cgi?id=170860

Reviewed by Alex Christensen.

.:

  • Source/cmake/OptionsWinCairo.cmake:

Source/WebCore:

No new tests. No change in functionality.

  • PlatformWinCairo.cmake:
  • platform/Curl.cmake: Added.

Source/WebKit:

  • PlatformWin.cmake:
2:13 PM Changeset in webkit [219155] by mmaxfield@apple.com
  • 23 edits
    16 copies
    117 adds
    3 deletes in trunk

Remove copy of ICU headers from WebKit
https://bugs.webkit.org/show_bug.cgi?id=116407

Reviewed by Alex Christensen.

Source/JavaScriptCore:

Use WTF's copy of ICU headers.

  • Configurations/Base.xcconfig:
  • icu/unicode/localpointer.h: Removed.
  • icu/unicode/parseerr.h: Removed.
  • icu/unicode/platform.h: Removed.
  • icu/unicode/ptypes.h: Removed.
  • icu/unicode/putil.h: Removed.
  • icu/unicode/uchar.h: Removed.
  • icu/unicode/ucnv.h: Removed.
  • icu/unicode/ucnv_err.h: Removed.
  • icu/unicode/ucol.h: Removed.
  • icu/unicode/uconfig.h: Removed.
  • icu/unicode/ucurr.h: Removed.
  • icu/unicode/uenum.h: Removed.
  • icu/unicode/uiter.h: Removed.
  • icu/unicode/uloc.h: Removed.
  • icu/unicode/umachine.h: Removed.
  • icu/unicode/unorm.h: Removed.
  • icu/unicode/unorm2.h: Removed.
  • icu/unicode/urename.h: Removed.
  • icu/unicode/uscript.h: Removed.
  • icu/unicode/uset.h: Removed.
  • icu/unicode/ustring.h: Removed.
  • icu/unicode/utf.h: Removed.
  • icu/unicode/utf16.h: Removed.
  • icu/unicode/utf8.h: Removed.
  • icu/unicode/utf_old.h: Removed.
  • icu/unicode/utypes.h: Removed.
  • icu/unicode/uvernum.h: Removed.
  • icu/unicode/uversion.h: Removed.
  • runtime/IntlCollator.cpp:
  • runtime/IntlDateTimeFormat.cpp:

(JSC::IntlDateTimeFormat::partTypeString):

  • runtime/JSGlobalObject.cpp:
  • runtime/StringPrototype.cpp:

(JSC::normalize):
(JSC::stringProtoFuncNormalize):

Source/WebCore:

Use WTF's copy of ICU headers.

No new tests because there is no behavior change.

  • Configurations/WebCore.xcconfig:
  • icu/unicode/bytestream.h: Removed.
  • icu/unicode/localpointer.h: Removed.
  • icu/unicode/parseerr.h: Removed.
  • icu/unicode/platform.h: Removed.
  • icu/unicode/ptypes.h: Removed.
  • icu/unicode/putil.h: Removed.
  • icu/unicode/rep.h: Removed.
  • icu/unicode/std_string.h: Removed.
  • icu/unicode/strenum.h: Removed.
  • icu/unicode/stringpiece.h: Removed.
  • icu/unicode/ubrk.h: Removed.
  • icu/unicode/uchar.h: Removed.
  • icu/unicode/ucnv.h: Removed.
  • icu/unicode/ucnv_err.h: Removed.
  • icu/unicode/ucol.h: Removed.
  • icu/unicode/uconfig.h: Removed.
  • icu/unicode/ucurr.h: Removed.
  • icu/unicode/uenum.h: Removed.
  • icu/unicode/uiter.h: Removed.
  • icu/unicode/uloc.h: Removed.
  • icu/unicode/umachine.h: Removed.
  • icu/unicode/unistr.h: Removed.
  • icu/unicode/unorm.h: Removed.
  • icu/unicode/unorm2.h: Removed.
  • icu/unicode/uobject.h: Removed.
  • icu/unicode/urename.h: Removed.
  • icu/unicode/uscript.h: Removed.
  • icu/unicode/uset.h: Removed.
  • icu/unicode/ustring.h: Removed.
  • icu/unicode/utext.h: Removed.
  • icu/unicode/utf.h: Removed.
  • icu/unicode/utf16.h: Removed.
  • icu/unicode/utf8.h: Removed.
  • icu/unicode/utf_old.h: Removed.
  • icu/unicode/utypes.h: Removed.
  • icu/unicode/uvernum.h: Removed.
  • icu/unicode/uversion.h: Removed.
  • platform/graphics/FontCache.h:

(WebCore::FontDescriptionKey::makeFlagsKey):

Source/WebKit/mac:

Use WTF's copy of ICU headers.

  • Configurations/WebKitLegacy.xcconfig:
  • icu/unicode/localpointer.h: Removed.
  • icu/unicode/parseerr.h: Removed.
  • icu/unicode/platform.h: Removed.
  • icu/unicode/ptypes.h: Removed.
  • icu/unicode/putil.h: Removed.
  • icu/unicode/uchar.h: Removed.
  • icu/unicode/uconfig.h: Removed.
  • icu/unicode/ucurr.h: Removed.
  • icu/unicode/uidna.h: Removed.
  • icu/unicode/uiter.h: Removed.
  • icu/unicode/umachine.h: Removed.
  • icu/unicode/unorm.h: Removed.
  • icu/unicode/unorm2.h: Removed.
  • icu/unicode/urename.h: Removed.
  • icu/unicode/uscript.h: Removed.
  • icu/unicode/ustring.h: Removed.
  • icu/unicode/utf.h: Removed.
  • icu/unicode/utf16.h: Removed.
  • icu/unicode/utf8.h: Removed.
  • icu/unicode/utf_old.h: Removed.
  • icu/unicode/utypes.h: Removed.
  • icu/unicode/uvernum.h: Removed.
  • icu/unicode/uversion.h: Removed.

Source/WebKit2:

  • Configurations/BaseTarget.xcconfig:

Source/WTF:

Add an extra rsync command to CopyWTFHeaders which copies the ICU headers
to DSTROOT/usr/local/include/. These headers already live inside a
"unicode" folder, so an example path of a header is
DSTROOT/usr/local/include/unicode/uchar.h. This is already in the search
path of the other WebKit projects, so those other projects can remove
their explicit listing of the old place these headers lived.

Also add the remaining ICU 55.1 headers which the other projects (like
WebCore) need. Revert any local changes to these headers in favor of
using the GCC_PREPROCESSOR_DEFINITIONS build setting. This is so we can
compile the same way against unmodified headers.

  • Configurations/Base.xcconfig:
  • Configurations/CopyWTFHeaders.xcconfig:
  • WTF.xcodeproj/project.pbxproj:
  • icu/unicode/alphaindex.h: Added.
  • icu/unicode/appendable.h: Added.
  • icu/unicode/basictz.h: Added.
  • icu/unicode/brkiter.h: Added.

(BreakIterator::isBufferClone):

  • icu/unicode/bytestrie.h: Added.
  • icu/unicode/bytestriebuilder.h: Added.
  • icu/unicode/calendar.h: Added.

(Calendar::createInstance):
(Calendar::roll):
(Calendar::internalSet):
(Calendar::weekNumber):

  • icu/unicode/caniter.h: Added.
  • icu/unicode/chariter.h: Renamed from Source/WebCore/icu/unicode/chariter.h.
  • icu/unicode/choicfmt.h: Added.
  • icu/unicode/coleitr.h: Added.

(CollationElementIterator::primaryOrder):
(CollationElementIterator::secondaryOrder):
(CollationElementIterator::tertiaryOrder):
(CollationElementIterator::isIgnorable):

  • icu/unicode/coll.h: Added.
  • icu/unicode/compactdecimalformat.h: Added.
  • icu/unicode/curramt.h: Added.

(CurrencyAmount::getCurrency):
(CurrencyAmount::getISOCurrency):

  • icu/unicode/currpinf.h: Added.

(CurrencyPluralInfo::operator!=):

  • icu/unicode/currunit.h: Added.

(CurrencyUnit::getISOCurrency):

  • icu/unicode/datefmt.h: Added.
  • icu/unicode/dbbi.h: Added.
  • icu/unicode/dcfmtsym.h: Added.

(DecimalFormatSymbols::getSymbol):
(DecimalFormatSymbols::getConstSymbol):
(DecimalFormatSymbols::setSymbol):
(DecimalFormatSymbols::getLocale):
(DecimalFormatSymbols::getCurrencyPattern):

  • icu/unicode/decimfmt.h: Added.

(DecimalFormat::getConstSymbol):

  • icu/unicode/docmain.h: Added.
  • icu/unicode/dtfmtsym.h: Added.
  • icu/unicode/dtintrv.h: Added.

(DateInterval::getFromDate):
(DateInterval::getToDate):
(DateInterval::operator!=):

  • icu/unicode/dtitvfmt.h: Added.

(DateIntervalFormat::operator!=):

  • icu/unicode/dtitvinf.h: Added.

(DateIntervalInfo::operator!=):

  • icu/unicode/dtptngen.h: Added.
  • icu/unicode/dtrule.h: Added.
  • icu/unicode/enumset.h: Added.

(EnumSet::EnumSet):
(EnumSet::~EnumSet):
(EnumSet::clear):
(EnumSet::add):
(EnumSet::remove):
(EnumSet::contains):
(EnumSet::set):
(EnumSet::get):
(EnumSet::isValidEnum):
(EnumSet::isValidValue):
(EnumSet::operator=):
(EnumSet::getAll):
(EnumSet::flag):

  • icu/unicode/errorcode.h: Added.
  • icu/unicode/fieldpos.h: Added.

(FieldPosition::operator=):
(FieldPosition::operator==):
(FieldPosition::operator!=):

  • icu/unicode/filteredbrk.h: Added.
  • icu/unicode/fmtable.h: Added.

(Formattable::getDate):
(Formattable::getString):
(Formattable::getLong):
(Formattable::toUFormattable):
(Formattable::fromUFormattable):

  • icu/unicode/format.h: Added.
  • icu/unicode/fpositer.h: Added.
  • icu/unicode/gender.h: Added.
  • icu/unicode/gregocal.h: Added.
  • icu/unicode/icudataver.h: Added.
  • icu/unicode/icuplug.h: Added.
  • icu/unicode/idna.h: Added.
  • icu/unicode/listformatter.h: Added.

(ListFormatData::ListFormatData):

  • icu/unicode/locdspnm.h: Added.

(LocaleDisplayNames::createInstance):

  • icu/unicode/locid.h: Added.

(Locale::operator!=):
(Locale::getCountry):
(Locale::getLanguage):
(Locale::getScript):
(Locale::getVariant):
(Locale::getName):
(Locale::isBogus):

  • icu/unicode/measfmt.h: Added.
  • icu/unicode/measunit.h: Added.
  • icu/unicode/measure.h: Added.

(Measure::getNumber):
(Measure::getUnit):

  • icu/unicode/messagepattern.h: Added.
  • icu/unicode/msgfmt.h: Added.
  • icu/unicode/normalizer2.h: Added.
  • icu/unicode/normlzr.h: Added.

(Normalizer::operator!= ):
(Normalizer::quickCheck):
(Normalizer::isNormalized):
(Normalizer::compare):

  • icu/unicode/numfmt.h: Added.

(NumberFormat::isParseIntegerOnly):
(NumberFormat::isLenient):

  • icu/unicode/numsys.h: Added.
  • icu/unicode/parsepos.h: Added.

(ParsePosition::operator=):
(ParsePosition::operator==):
(ParsePosition::operator!=):
(ParsePosition::getIndex):
(ParsePosition::setIndex):
(ParsePosition::getErrorIndex):
(ParsePosition::setErrorIndex):

  • icu/unicode/plurfmt.h: Added.
  • icu/unicode/plurrule.h: Added.
  • icu/unicode/rbbi.h: Added.

(RuleBasedBreakIterator::operator!=):

  • icu/unicode/rbnf.h: Added.

(RuleBasedNumberFormat::isLenient):
(RuleBasedNumberFormat::getDefaultRuleSet):

  • icu/unicode/rbtz.h: Added.
  • icu/unicode/regex.h: Added.
  • icu/unicode/region.h: Added.
  • icu/unicode/reldatefmt.h: Added.
  • icu/unicode/resbund.h: Added.
  • icu/unicode/schriter.h: Added.
  • icu/unicode/scientificnumberformatter.h: Added.
  • icu/unicode/search.h: Added.

(SearchIterator::operator!=):

  • icu/unicode/selfmt.h: Added.
  • icu/unicode/simpletz.h: Added.

(SimpleTimeZone::setStartRule):
(SimpleTimeZone::setEndRule):
(SimpleTimeZone::getOffset):

  • icu/unicode/smpdtfmt.h: Added.

(SimpleDateFormat::get2DigitYearStart):

  • icu/unicode/sortkey.h: Added.

(CollationKey::operator!=):
(CollationKey::isBogus):
(CollationKey::getByteArray):

  • icu/unicode/stringtriebuilder.h: Added.
  • icu/unicode/stsearch.h: Added.
  • icu/unicode/symtable.h: Added.
  • icu/unicode/tblcoll.h: Added.
  • icu/unicode/timezone.h: Added.

(TimeZone::getID):
(TimeZone::setID):

  • icu/unicode/tmunit.h: Added.
  • icu/unicode/tmutamt.h: Added.

(TimeUnitAmount::operator!=):

  • icu/unicode/tmutfmt.h: Added.

(TimeUnitFormat::operator!=):

  • icu/unicode/translit.h: Added.

(Transliterator::getMaximumContextLength):
(Transliterator::setID):
(Transliterator::integerToken):
(Transliterator::pointerToken):

  • icu/unicode/tzfmt.h: Added.
  • icu/unicode/tznames.h: Added.
  • icu/unicode/tzrule.h: Added.
  • icu/unicode/tztrans.h: Added.
  • icu/unicode/ubidi.h: Added.
  • icu/unicode/ucal.h: Renamed from Source/JavaScriptCore/icu/unicode/ucal.h.
  • icu/unicode/ucasemap.h: Added.
  • icu/unicode/ucat.h: Added.
  • icu/unicode/ucharstrie.h: Added.
  • icu/unicode/ucharstriebuilder.h: Added.
  • icu/unicode/uchriter.h: Added.
  • icu/unicode/uclean.h: Added.
  • icu/unicode/ucnv_cb.h: Renamed from Source/WebCore/icu/unicode/ucnv_cb.h.
  • icu/unicode/ucnvsel.h: Added.
  • icu/unicode/ucoleitr.h: Renamed from Source/WebCore/icu/unicode/ucoleitr.h.
  • icu/unicode/uconfig.h:
  • icu/unicode/ucsdet.h: Renamed from Source/WebCore/icu/unicode/ucsdet.h.
  • icu/unicode/udat.h: Renamed from Source/JavaScriptCore/icu/unicode/udat.h.
  • icu/unicode/udata.h: Added.
  • icu/unicode/udateintervalformat.h: Added.
  • icu/unicode/udatpg.h: Renamed from Source/JavaScriptCore/icu/unicode/udatpg.h.
  • icu/unicode/udisplaycontext.h: Renamed from Source/JavaScriptCore/icu/unicode/udisplaycontext.h.
  • icu/unicode/ufieldpositer.h: Renamed from Source/JavaScriptCore/icu/unicode/ufieldpositer.h.
  • icu/unicode/uformattable.h: Renamed from Source/JavaScriptCore/icu/unicode/uformattable.h.
  • icu/unicode/ugender.h: Added.
  • icu/unicode/uidna.h: Renamed from Source/WebCore/icu/unicode/uidna.h.
  • icu/unicode/uldnames.h: Added.
  • icu/unicode/ulistformatter.h: Added.
  • icu/unicode/ulocdata.h: Added.
  • icu/unicode/umisc.h: Renamed from Source/JavaScriptCore/icu/unicode/umisc.h.
  • icu/unicode/umsg.h: Added.
  • icu/unicode/unifilt.h: Added.
  • icu/unicode/unifunct.h: Added.
  • icu/unicode/unimatch.h: Added.
  • icu/unicode/unirepl.h: Added.
  • icu/unicode/uniset.h: Added.

(UnicodeSet::operator!=):
(UnicodeSet::isFrozen):
(UnicodeSet::containsSome):
(UnicodeSet::isBogus):
(UnicodeSet::fromUSet):
(UnicodeSet::toUSet):
(UnicodeSet::span):
(UnicodeSet::spanBack):

  • icu/unicode/unum.h: Renamed from Source/JavaScriptCore/icu/unicode/unum.h.
  • icu/unicode/unumsys.h: Renamed from Source/JavaScriptCore/icu/unicode/unumsys.h.
  • icu/unicode/upluralrules.h: Added.
  • icu/unicode/uregex.h: Added.
  • icu/unicode/uregion.h: Added.
  • icu/unicode/urep.h: Added.
  • icu/unicode/ures.h: Added.

(ures_getUnicodeString):
(ures_getNextUnicodeString):
(ures_getUnicodeStringByIndex):
(ures_getUnicodeStringByKey):

  • icu/unicode/usearch.h: Renamed from Source/WebCore/icu/unicode/usearch.h.
  • icu/unicode/usetiter.h: Added.

(UnicodeSetIterator::isString):
(UnicodeSetIterator::getCodepoint):
(UnicodeSetIterator::getCodepointEnd):

  • icu/unicode/ushape.h: Renamed from Source/WebCore/icu/unicode/ushape.h.
  • icu/unicode/uspoof.h: Added.
  • icu/unicode/usprep.h: Added.
  • icu/unicode/ustdio.h: Added.
  • icu/unicode/ustream.h: Added.
  • icu/unicode/ustringtrie.h: Added.
  • icu/unicode/utf32.h: Added.
  • icu/unicode/utmscale.h: Added.
  • icu/unicode/utrace.h: Added.
  • icu/unicode/utrans.h: Added.
  • icu/unicode/utypes.h:
  • icu/unicode/vtzone.h: Added.

Tools:

  • DumpRenderTree/mac/Configurations/Base.xcconfig:
  • TestWebKitAPI/Configurations/Base.xcconfig:
  • WebKitTestRunner/Configurations/Base.xcconfig:
1:41 PM Changeset in webkit [219154] by Chris Dumez
  • 7 edits
    1 add in trunk

Regression(r218821): Bad cast to WebKit::DiagnosticLoggingClient in WKWebView's _setDiagnosticLoggingDelegate
https://bugs.webkit.org/show_bug.cgi?id=174163
<rdar://problem/33067518>

Reviewed by Alex Christensen.

Source/WebKit2:

After r218821, WebPageProxy::setDiagnosticLoggingClient() would no longer set the client in
private session. This is an issue because there is code in WKWebView which expects the
DiagnosticLoggingClient to be set and of a specific type. This would lead to bad casts in
WKWebView's _diagnosticLoggingDelegate / _setDiagnosticLoggingDelegate.

To avoid the issue, we now unconditionally update the client in
WebPageProxy::setDiagnosticLoggingClient(). Instead, we implement the logic for disabling
logging in private session in the logging methods themselves, via the
WebPageProxy::effectiveDiagnosticLoggingClient() helper instead.

I also added null checks in WKWebView's _diagnosticLoggingDelegate /
_setDiagnosticLoggingDelegate. Even though the WKWebView sets itself as the diagnostic
logging client, WebPageProxy::diagnosticLoggingClient() can still return null after
calling WebPageProxy::close(). Previously, we would have done a bad cast if the WKWebView's
client would have used this API after calling 'close' as well.

  • UIProcess/API/APIDiagnosticLoggingClient.h:
  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _diagnosticLoggingDelegate]):
(-[WKWebView _setDiagnosticLoggingDelegate:]):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::setDiagnosticLoggingClient):
(WebKit::WebPageProxy::close):
(WebKit::WebPageProxy::effectiveDiagnosticLoggingClient):
(WebKit::WebPageProxy::logDiagnosticMessage):
(WebKit::WebPageProxy::logDiagnosticMessageWithResult):
(WebKit::WebPageProxy::logDiagnosticMessageWithValue):
(WebKit::WebPageProxy::logDiagnosticMessageWithEnhancedPrivacy):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::diagnosticLoggingClient):

Tools:

Add API test coverage.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/WKWebViewDiagnosticLogging.mm: Added.

(TEST):

1:32 PM Changeset in webkit [219153] by Wenson Hsieh
  • 5 edits
    1 add in trunk

When dragging a selection, clearing the selection in dragstart should not crash the web process
https://bugs.webkit.org/show_bug.cgi?id=174142
<rdar://problem/33067501>

Reviewed by Tim Horton.

Source/WebCore:

Currenly, if the page clears the current selection after dragging starts on selected content, the web process
will crash while attempting to write pasteboard data for a nonexistent selection. This patch adds a trivial
check for this case, bailing if no DHTML dragging data was specified by the page during a selection drag and the
selection has been cleared.

Also removes some unused code for estimating the bounds of the current selection. On iOS, dragging was actually
crashing earlier, in this codepath. However, this information isn't even used anymore, since the drag anchor
point is no longer necessary on iOS.

Test: DataInteractionTests.DoNotCrashWhenSelectionIsClearedInDragStart

  • page/DragController.cpp:

(WebCore::DragController::startDrag):

Tools:

Adds a unit test checking that the web process does not crash when the selection is cleared while a selection
drag is starting up.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2Cocoa/dragstart-clear-selection.html: Added.
  • TestWebKitAPI/Tests/ios/DataInteractionTests.mm:

(TestWebKitAPI::TEST):

1:27 PM Changeset in webkit [219152] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Try to fix iOS 10.3 public SDK builds.

  • platform/spi/cocoa/IOSurfaceSPI.h:
1:21 PM Changeset in webkit [219151] by Alan Bujtas
  • 8 edits in trunk

REGRESSION (r217522): "Show My Relationship" link in familysearch.org does not work.
https://bugs.webkit.org/show_bug.cgi?id=174070
LayoutTests/imported/w3c:

Reviewed by Simon Fraser.

  • web-platform-tests/css-timing-1/frames-timing-functions-output-expected.txt:
  • web-platform-tests/html/semantics/interactive-elements/the-dialog-element/centering-expected.txt:

Source/WebCore:

<rdar://problem/32940653>

Reviewed by Simon Fraser.

Decouple in- and out-of-flow computed position values. Now we match blink's implementation on
in-flow values.
This also fixes the flickering content while scrolling on hbr.org.

Covered by existing test cases.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::positionOffsetValue):

LayoutTests:

Reviewed by Simon Fraser.

  • fast/css/getComputedStyle/computed-style-expected.txt:
1:13 PM Changeset in webkit [219150] by Devin Rousso
  • 13 edits
    8 adds in trunk

Web Inspector: Allow users to log any tracked canvas context
https://bugs.webkit.org/show_bug.cgi?id=173397
<rdar://problem/33111581>

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

  • inspector/protocol/Canvas.json:

Add resolveCanvasContext command that returns a RemoteObject for the given canvas context.

Source/WebCore:

Tests: inspector/canvas/resolveCanvasContext-2d.html

inspector/canvas/resolveCanvasContext-webgl.html
inspector/canvas/resolveCanvasContext-webgl2.html
inspector/canvas/resolveCanvasContext-webgpu.html

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

(WebCore::InspectorCanvasAgent::InspectorCanvasAgent):
(WebCore::contextAsScriptValue):
(WebCore::InspectorCanvasAgent::resolveCanvasContext):

Source/WebInspectorUI:

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Protocol/RemoteObject.js:

(WebInspector.RemoteObject.resolveCanvasContext):

  • UserInterface/Views/CanvasTreeElement.js:

(WebInspector.CanvasTreeElement.prototype.populateContextMenu):

LayoutTests:

  • inspector/canvas/resolveCanvasContext-2d-expected.txt: Added.
  • inspector/canvas/resolveCanvasContext-2d.html: Added.
  • inspector/canvas/resolveCanvasContext-webgl-expected.txt: Added.
  • inspector/canvas/resolveCanvasContext-webgl.html: Added.
  • inspector/canvas/resolveCanvasContext-webgl2-expected.txt: Added.
  • inspector/canvas/resolveCanvasContext-webgl2.html: Added.
  • inspector/canvas/resolveCanvasContext-webgpu-expected.txt: Added.
  • inspector/canvas/resolveCanvasContext-webgpu.html: Added.
  • platform/gtk/TestExpectations:
  • platform/ios/TestExpectations:
  • platform/win/TestExpectations:
1:10 PM Changeset in webkit [219149] by dbates@webkit.org
  • 4 edits in trunk

Do not pass API::FrameInfo for source frame or clear out page of target frame on
API navigation
https://bugs.webkit.org/show_bug.cgi?id=174170
<rdar://problem/33140328>

Reviewed by Brady Eidson.

Source/WebKit2:

As a step towards making it straightforward for an embedding client to determine whether
a WebPageProxy::decidePolicyForNavigationAction() callback was initiated from API we
should not pass frame info for the source frame and should not nullify the page pointer
in the target frame info.

Currently we always pass frame info for the source frame and nullify the page pointer
in both the source frame info and target frame info if the navigation was initiated from
API. This seems subtle and error prone. Instead we should not pass frame info for
the source frame and not nullify the page pointer in the target frame info as a step
towards making using this API less error-prone.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::decidePolicyForNavigationAction):

Tools:

Update tests as needed for the behavior change.

  • TestWebKitAPI/Tests/WebKit2Cocoa/DecidePolicyForNavigationAction.mm:

(TEST):

1:07 PM Changeset in webkit [219148] by Chris Dumez
  • 2 edits in trunk/Source/WebKit2

Add a few more WebKit2 owners
https://bugs.webkit.org/show_bug.cgi?id=174169

Reviewed by Brady Eidson.

  • Owners:
12:58 PM Changeset in webkit [219147] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Style sharing check for fullscreen element seems bogus.
https://bugs.webkit.org/show_bug.cgi?id=160196

Patch by Emilio Cobos Álvarez <ecobos@igalia.com> on 2017-07-05
Reviewed by Antti Koivisto.

No new tests (no easy way to test this reliably).

  • style/StyleSharingResolver.cpp:

(WebCore::Style::SharingResolver::canShareStyleWithElement):

12:56 PM Changeset in webkit [219146] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

Add a logging channel for IOSurface allocations
https://bugs.webkit.org/show_bug.cgi?id=174167

Reviewed by Tim Horton.

Add an "IOSurface" log channel, make IOSurface TextStream-loggable, and log cached
and new IOSurface allocations. Do some namespace-related cleanup.

  • platform/Logging.h:
  • platform/graphics/cocoa/IOSurface.h:
  • platform/graphics/cocoa/IOSurface.mm:

(WebCore::WebCore::IOSurface::create):
(WebCore::WebCore::IOSurface::surfaceID):
(WebCore::operator<<):

12:53 PM Changeset in webkit [219145] by Antti Koivisto
  • 12 edits in trunk

Low memory notification shouldn't cause style recalc
https://bugs.webkit.org/show_bug.cgi?id=173574
<rdar://problem/32616997>

Reviewed by Andreas Kling.

Source/WebCore:

Patch mostly by Myles.

When we receive a low memory warning, we clear the style resolver. Previously, we were using
this as an opportunity to also purge the CSSFontSelector. However, purging the font selector
is wasteful, since the exact same set of CSSFontFace objects will be recreated as soon as the
CSSFontSelector is recreated. It's also harmful because this purge operation causes fonts to
be removed from the document's working set, and therefore triggers a relayout. Instead, this
call should be softened to only delete any transitory caches the CSSFontSelector owns.

We can simply delay the rebuild of the CSSFontSelector to
StyleResolver::appendAuthorStyleSheets(), when it's really needed. This way, we can sidestep
this whole problem.

There's also an added benefit: Now, buildStarted() doesn't have to be idempotent, so we can
enforce a stricter calling sequence with ASSERT()s.

  • css/CSSFontFaceSet.cpp:

(WebCore::CSSFontFaceSet::emptyCaches):

  • css/CSSFontFaceSet.h:
  • css/CSSFontSelector.cpp:

(WebCore::CSSFontSelector::emptyCaches):

Add a separate function to clear font selector caches.

(WebCore::CSSFontSelector::buildStarted):
(WebCore::CSSFontSelector::buildCompleted):
(WebCore::CSSFontSelector::addFontFaceRule):
(WebCore::CSSFontSelector::fontModified):

No need to invalidate while building.

(WebCore::CSSFontSelector::fontRangesForFamily):

  • css/CSSFontSelector.h:
  • css/StyleResolver.cpp:

(WebCore::StyleResolver::StyleResolver):
(WebCore::StyleResolver::addCurrentSVGFontFaceRules):

Factor into a function from the constructor.

(WebCore::StyleResolver::appendAuthorStyleSheets):

Font selector build is now started and finished by StyleScope.

  • css/StyleResolver.h:
  • dom/Document.cpp:

(WebCore::Document::resolveStyle):

Call FrameView::styleDidChange() to update any custom scrollbars.
This bug was hidden by spurious style recalcs, tested by fast/css/scrollbar-dynamic-style-change.html

(WebCore::Document::userAgentShadowTreeStyleResolver):
(WebCore::Document::didClearStyleResolver):

Don't start the font selector rebuild after clearing the resolver. It would cause style recalc trashing.
Instead the build starts when the new resolver is constructed.

  • page/MemoryRelease.cpp:

(WebCore::releaseCriticalMemory):

Release font selector caches.

  • style/StyleScope.cpp:

(WebCore::Style::Scope::resolver):

LayoutTests:

  • platform/mac/printing/width-overflow-expected.txt:

1px width change that doesn't affect what is being tested.

12:05 PM Changeset in webkit [219144] by Brent Fulgham
  • 5 edits in trunk/Source

[WK2] Prevent ResourceLoadStatistics from triggering a cascade of read/write events
https://bugs.webkit.org/show_bug.cgi?id=174062\
<rdar://problem/33086744>

Reviewed by Chris Dumez.

Source/WebCore:

Treat DISPATCH_VNODE_DELETE, DISPATCH_VNODE_RENAME, and DISPATCH_VNODE_REVOKE as equivalent
"file is unavailable" events, and act as though the file was deleted. Don't listen for
DISPATCH_VNODE_EXTEND, since we always get a DISPATCH_VNODE_WRITE as well, and we only
want to read once.

Finally, add some logging to support future investigations.

  • platform/FileMonitor.h:

(WebCore::FileMonitor::platformMonitor): Expose dispatch_source_t for logging purposes.

  • platform/cocoa/FileMonitorCocoa.mm:

(WebCore::FileMonitor::startMonitoring): Add logging.
(WebCore::FileMonitor::stopMonitoring): Ditto.

Source/WebKit2:

ResourceLoadStatistics was triggering periods of high CPU use due to a cascade of read/write
operations:
(1) The 'makeRefPtr' call in FileMonitor::startMonitoring was capturing a reference to itself, preventing

the FileMonitor from being destroyed. This caused the file modification handler to fire in response
to our own write events, creating a ridiculous read/write cycle. This problem was addressed in
the short term by stopping the file monitor in WebResourceLoadStatisticsStore::stopMonitoringStatisticsStorage,
rather than relying on the destructor to shut things down. This will be improved in a
subsequent patch.

(2) 'syncWithExistingStatisticsStorageIfNeeded' was creating a FileMonitor during the write operation,

which exacerbated the chain of read/writes already present due to the self-reference described above.

(3) Because VNODE dispatch sources are low level, they do not offer a means of filtering out operations

triggered by the current process. To avoid this, I added code to track the file modification time, so
that we don't bother reading a file that holds data that is older than the in-memory data, even though
we receive a file modification dispatch. Writes seem to trigger a chain of notification events in rapid
succession. Once we've responded to the first of these events, we don't need to to further reads until
the data on disk changes again.

We also shouldn't allow the ResourceLoadStatistics worker thread to consume high CPU resources. Run it
as utility QoS, avoiding using the CPU when other work is going on.

Drive-by fix: The closure in setWritePersistentStoreCallback() should stop monitoring before writing
data, and should start monitoring after the write completes.

  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::WebResourceLoadStatisticsStore): Run our worker queue
as a utility-level process.
(WebKit::WebResourceLoadStatisticsStore::registerSharedResourceLoadObserver): Stop checking for
updates before writing, and begin checking again once the write is complete.
(WebKit::WebResourceLoadStatisticsStore::statisticsFileModificationTime): Added.
(WebKit::WebResourceLoadStatisticsStore::readDataFromDiskIfNeeded): Avoid reading the file if it
was last modified on (or before) the time we last read the file.
(WebKit::WebResourceLoadStatisticsStore::refreshFromDisk): Ditto.
(WebKit::WebResourceLoadStatisticsStore::stopMonitoringStatisticsStorage): Explicitly stop file
monitoring so that the active file modification handler will terminate.
(WebKit::WebResourceLoadStatisticsStore::syncWithExistingStatisticsStorageIfNeeded): Do not begin
monitoring the file after syncing, since this is only used as part of an ongoing write operation.

11:40 AM Changeset in webkit [219143] by jmarcell@apple.com
  • 7 edits in trunk/Source

Versioning.

11:36 AM Changeset in webkit [219142] by Jonathan Bedard
  • 1 edit
    80 adds in trunk/LayoutTests

Move internal iOS 11 TestExpectations to OpenSource
<rdar://problem/32717028>

Unreviewed test gardening.

  • platform/ios-11: Added.
11:31 AM Changeset in webkit [219141] by jmarcell@apple.com
  • 1 copy in tags/Safari-604.1.29

Tag Safari-604.1.29.

11:14 AM Changeset in webkit [219140] by Jonathan Bedard
  • 20 edits
    5 copies
    6 adds in trunk

Add WebKitPrivateFrameworkStubs for iOS 11
https://bugs.webkit.org/show_bug.cgi?id=173988

Reviewed by David Kilzer.

Source/JavaScriptCore:

  • Configurations/Base.xcconfig: iphoneos and iphonesimulator should use the

same directory for private framework stubs.

Source/WebCore:

  • Configurations/WebCore.xcconfig: iphoneos and iphonesimulator should use the

same directory for private framework stubs.

Source/WebCore/PAL:

  • Configurations/PAL.xcconfig: iphoneos and iphonesimulator should use the

same directory for private framework stubs.

Source/WebKit/mac:

  • Configurations/WebKitLegacy.xcconfig: iphoneos and iphonesimulator should

use the same directory for private framework stubs.

Source/WebKit2:

  • Configurations/BaseTarget.xcconfig: iphoneos and iphonesimulator should use the

same directory for private framework stubs.

Tools:

  • DumpRenderTree/mac/Configurations/Base.xcconfig: iphoneos and iphonesimulator

should use the same directory for private framework stubs.

  • WebKitTestRunner/Configurations/Base.xcconfig: Ditto.

WebKitLibraries:

  • WebKitPrivateFrameworkStubs/iOS/9: Add Mac architecture for Simulator.
  • WebKitPrivateFrameworkStubs/iOS/10: Ditto..
  • WebKitPrivateFrameworkStubs/iOS/11: Added.
11:08 AM Changeset in webkit [219139] by aestes@apple.com
  • 4 edits in trunk/Source/WebKit2

[iOS] WKActionSheetAssistants can outlive their host views
https://bugs.webkit.org/show_bug.cgi?id=174160
<rdar://problem/20638607>

Reviewed by Tim Horton.

WKActionSheetAssistant keeps a raw pointer to its host UIView, and nothing clears it when
the host view is deallocated. If the assistant outlives the view, we can end up accessing a
pointer to a deallocated UIView and crashing.

I don't know how to reproduce such a crash, but this patch guards against it by doing the
following:

  1. Make _view a WeakObjCPtr in WKActionSheetAssistant to ensure it gets set to nil when the UIView is deallocated.
  2. Call -[WKActionSheetAssistant cleanupSheet] when a WKContentView or WKPDFView is deallocated, or when the Web process crashes. This will ensure the action sheet is dismissed and prevent the user from tapping on an action that's no longer valid.
  • UIProcess/ios/WKActionSheetAssistant.mm:

(-[WKActionSheetAssistant superviewForSheet]):
(-[WKActionSheetAssistant _presentationRectForSheetGivenPoint:inHostView:]):
(-[WKActionSheetAssistant presentationRectForElementUsingClosestIndicatedRect]):
(-[WKActionSheetAssistant presentationRectForIndicatedElement]):
(-[WKActionSheetAssistant _shouldPresentAtTouchLocationForElementRect:]):

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView cleanupInteraction]):

  • UIProcess/ios/WKPDFView.mm:

(-[WKPDFView dealloc]):

11:01 AM Changeset in webkit [219138] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Don't resolve an extra computed style for getComputedStyle in a display: none subtree.
https://bugs.webkit.org/show_bug.cgi?id=174145

Before this, we were also resolving the first ancestor's style as
inheriting from itself, which felt pretty wrong (though I think it's
not observable).

Patch by Emilio Cobos Álvarez <ecobos@igalia.com> on 2017-07-05
Reviewed by Antti Koivisto.

No new tests (non-observable behavior).

  • dom/Element.cpp:

(WebCore::Element::resolveComputedStyle):

10:56 AM Changeset in webkit [219137] by fred.wang@free.fr
  • 13 edits in trunk/Source

Move ScrolledContentsLayer property to ScrollingStateScrollingNode
https://bugs.webkit.org/show_bug.cgi?id=174134

Patch by Frederic Wang <fwang@igalia.com> on 2017-07-05
Reviewed by Simon Fraser.

Source/WebCore:

ScrollingStateFrameScrollingNode and ScrollingStateOverflowScrollingNode both use a
ScrolledContentsLayer property for the same purpose. This commit moves that property into
their parent class ScrollingStateScrollingNode, so that more code is shared between the two
classes. This will also help the refactoring in bug 174130.

No new tests, only dumped tree may change a bit.

  • page/scrolling/ScrollingStateFrameScrollingNode.cpp: Remove scrolled contents layer.

(WebCore::ScrollingStateFrameScrollingNode::ScrollingStateFrameScrollingNode):
(WebCore::ScrollingStateFrameScrollingNode::dumpProperties):
(WebCore::ScrollingStateFrameScrollingNode::setScrolledContentsLayer): Deleted.

  • page/scrolling/ScrollingStateFrameScrollingNode.h: Ditto.
  • page/scrolling/ScrollingStateOverflowScrollingNode.cpp: Ditto.

(WebCore::ScrollingStateOverflowScrollingNode::ScrollingStateOverflowScrollingNode):
(WebCore::ScrollingStateOverflowScrollingNode::dumpProperties):
(WebCore::ScrollingStateOverflowScrollingNode::setScrolledContentsLayer): Deleted.

  • page/scrolling/ScrollingStateOverflowScrollingNode.h: Ditto.

(): Deleted.
(WebCore::ScrollingStateOverflowScrollingNode::scrolledContentsLayer): Deleted.

  • page/scrolling/ScrollingStateScrollingNode.cpp: Add scrolled contents layer.

(WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
(WebCore::ScrollingStateScrollingNode::setScrolledContentsLayer):
(WebCore::ScrollingStateScrollingNode::dumpProperties): Use the label from the overflow class
which is different from the frame class. The dumping order may change a bit too.

  • page/scrolling/ScrollingStateScrollingNode.h: Add ScrolledContentsLayer to the enum and

scrolled contents layer.
(WebCore::ScrollingStateScrollingNode::scrolledContentsLayer):

  • page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:

(WebCore::ScrollingTreeFrameScrollingNodeMac::commitStateBeforeChildren): Adjust enum value
to use ScrollingStateScrollingNode::ScrolledContentsLayer.

Source/WebKit2:

  • Shared/Scrolling/RemoteScrollingCoordinatorTransaction.cpp:

(ArgumentCoder<ScrollingStateScrollingNode>::encode): Add encoding for scrolled contents
layer.
(ArgumentCoder<ScrollingStateFrameScrollingNode>::encode): Remove encoding for scrolled
contents layer.
(ArgumentCoder<ScrollingStateOverflowScrollingNode>::encode): Ditto.
(ArgumentCoder<ScrollingStateScrollingNode>::decode): Add decoding for scrolled contents
layer.
(ArgumentCoder<ScrollingStateFrameScrollingNode>::decode): Remove decoding for scrolled
contents layer.
(ArgumentCoder<ScrollingStateOverflowScrollingNode>::decode): Ditto.
(WebKit::dump): Move dumping of scrolled contents layer from overflow/frame nodes to
scrolling node.

  • UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:

(WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers): Adjust enum value to use
ScrollingStateScrollingNode::ScrolledContentsLayer.

  • UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:

(WebKit::ScrollingTreeOverflowScrollingNodeIOS::commitStateBeforeChildren): Ditto.

  • UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm:

(WebKit::RemoteScrollingCoordinatorProxy::connectStateNodeLayers): Ditto.

10:43 AM Changeset in webkit [219136] by adachan@apple.com
  • 2 edits in trunk/Source/WebKit2

Fix crash in UIKit: +[UIViewController _viewControllerForFullScreenPresentationFromView:]
https://bugs.webkit.org/show_bug.cgi?id=174143
<rdar://problem/28384582>

Reviewed by Wenson Hsieh.

In -[WKActionSheet willRotate], we can't guarantee that the action sheet belongs
in a window, and passing nil to +[UIViewController _viewControllerForFullScreenPresentationFromView:]
throws an exception. To fix this, bail early if the result from -hostViewForSheet is nil.

  • UIProcess/ios/WKActionSheet.mm:

(-[WKActionSheet willRotate]):

10:41 AM Changeset in webkit [219135] by eric.carlson@apple.com
  • 4 edits
    1 add in trunk

[MediaStream] Protect request and web view during gUM client callback
https://bugs.webkit.org/show_bug.cgi?id=174096
<rdar://problem/32833102>

Reviewed by Youenn Fablet.

Source/WebKit2:

Retain the message and WebView during asynchronous calls so they won't be
released if a navigation happens during a call to the UA for getUserMedia
or enumerateMediaDevices.

  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::requestUserMediaAuthorizationForDevices):
(WebKit::UIDelegate::UIClient::decidePolicyForUserMediaPermissionRequest):
(WebKit::UIDelegate::UIClient::checkUserMediaPermissionForOrigin):

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit2/GetUserMediaNavigation.mm: New test.
9:51 AM Changeset in webkit [219134] by jfbastien@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

WebAssembly: implement name section's module name, skip unknown sections
https://bugs.webkit.org/show_bug.cgi?id=172008

Reviewed by Keith Miller.

Parse the WebAssembly module name properly, and skip unknown
sections. This is useful because as toolchains support new types
of names we want to keep displaying the information we know about
and simply ignore new information. That capability was designed
into WebAssembly's name section.

Failure to commit this patch would mean that WebKit won't display
stack trace information, which would make developers sad.

Module names were added here: https://github.com/WebAssembly/design/pull/1055

Note that this patch doesn't do anything with the parsed name! Two
reasons for this: module names aren't supported in binaryen yet,
so I can't write a simple binary test; and using the name is a
slightly riskier change because it requires changing StackVisitor
+ StackFrame (where they print "[wasm code]") which requires
figuring out the frame's Module. The latter bit isn't trivial
because we only know wasm frames from their tag bits, and
CodeBlocks are always nullptr.

Binaryen bug: https://github.com/WebAssembly/binaryen/issues/1010

I filed #174098 to use the module name.

  • wasm/WasmFormat.h:

(JSC::Wasm::isValidNameType):

  • wasm/WasmNameSectionParser.cpp:
9:40 AM Changeset in webkit [219133] by Matt Lewis
  • 2 edits in trunk/LayoutTests

Adjusted test expectations for tiled-drawing/scrolling/fast-scroll-iframe-latched-mainframe.html.
https://bugs.webkit.org/show_bug.cgi?id=168937

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
9:35 AM Changeset in webkit [219132] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

Incorrect IfModule on Fedora with with PHP 7
https://bugs.webkit.org/show_bug.cgi?id=174159

Patch by Charlie Turner <cturner@igalia.com> on 2017-07-05
Reviewed by Michael Catanzaro.

  • http/conf/fedora-httpd-2.4-php7.conf:
9:17 AM Changeset in webkit [219131] by Wenson Hsieh
  • 2 edits in trunk/Tools

Unreviewed, guard iOS 11-dependent UIPasteboardTests to be iOS 11+ only

  • TestWebKitAPI/Tests/ios/UIPasteboardTests.mm:
9:11 AM Changeset in webkit [219130] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

ProcessingInstruction::clearExistingCachedSheet doesn't really exist.
https://bugs.webkit.org/show_bug.cgi?id=174146

Patch by Emilio Cobos Álvarez <ecobos@igalia.com> on 2017-07-05
Reviewed by Chris Dumez.

No new tests (no functionality change).

  • dom/ProcessingInstruction.h: Remove dead declaration.
9:07 AM Changeset in webkit [219129] by Matt Lewis
  • 11 edits in trunk

Unreviewed, rolling out r219128.

Spoke with engineer who originally submitted, Patch for APi
test to follow.

Reverted changeset:

"Unreviewed, rolling out r219070."
https://bugs.webkit.org/show_bug.cgi?id=174082
http://trac.webkit.org/changeset/219128

8:59 AM Changeset in webkit [219128] by Matt Lewis
  • 11 edits in trunk

Unreviewed, rolling out r219070.

This revision caused consistent failures of the API test
UIPasteboardTests.DoNotPastePlainTextAsURL on iOS.

Reverted changeset:

"Pasting single words copied to UIPasteboard inserts URLs in
editable areas"
https://bugs.webkit.org/show_bug.cgi?id=174082
http://trac.webkit.org/changeset/219070

8:53 AM Changeset in webkit [219127] by commit-queue@webkit.org
  • 5 edits
    2 adds in trunk

Receiving tracks should be ended when peer connection is being closed
https://bugs.webkit.org/show_bug.cgi?id=174109

Patch by Youenn Fablet <youenn@apple.com> on 2017-07-05
Reviewed by Eric Carlson.

Source/WebCore:

Test: webrtc/peer-connection-track-end.html

As per https://www.w3.org/TR/webrtc/#dom-rtcpeerconnection-close, tracks should be ended when peer connection is closed.
Also updating transceiver stopped state.

  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::doClose):

  • Modules/mediastream/RTCRtpReceiver.cpp:

(WebCore::RTCRtpReceiver::stop):

  • Modules/mediastream/RTCRtpReceiver.h:

LayoutTests:

  • webrtc/peer-connection-track-end-expected.txt: Added.
  • webrtc/peer-connection-track-end.html: Added.
7:05 AM Changeset in webkit [219126] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebKit2

[GLib] Incorrect <glib/gi18n.h> include in WebKitWebsiteData
https://bugs.webkit.org/show_bug.cgi?id=174093

Reviewed by Michael Catanzaro.

  • UIProcess/API/glib/WebKitWebsiteData.cpp: Include <glib/gi18n-lib.h>

rather than <glib/gi18n.h>, since the former has to be included in a
library while the latter should only be included in a standalone application.

Jul 4, 2017:

9:44 PM Changeset in webkit [219125] by Said Abou-Hallawa
  • 2 edits in trunk/Source/WebCore

Unreviewed, review follow-up after r218961

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::updateFromSettings):

5:59 PM Changeset in webkit [219124] by Yusuke Suzuki
  • 4 edits in trunk/Source/WTF

[WTF] Make double-conversion's cache data constant and drop double_conversion::initialize()
https://bugs.webkit.org/show_bug.cgi?id=174124

Reviewed by Saam Barati.

We annotate double-conversion's cache data as const and constexpr. And move it out of function.
Since they are not involving global constructors, they are compiled as rodata and initialized
without calling double_conversion::initialize().

And we drop double_conversion::initialize() function since it is no longer necessary.

  • wtf/Threading.cpp:

(WTF::initializeThreading):

  • wtf/dtoa/cached-powers.cc:
  • wtf/dtoa/cached-powers.h:
3:07 PM Changeset in webkit [219123] by Antti Koivisto
  • 3 edits in trunk/Source/WebCore

RenderThemeCocoa::mediaControlsFormattedStringForDuration is leaking NSDateComponentsFormatters
https://bugs.webkit.org/show_bug.cgi?id=174138

Reviewed by Ryosuke Niwa.

Saw a random spin here during media playback. Looks like we are leaking.

  • rendering/RenderThemeCocoa.h:
  • rendering/RenderThemeCocoa.mm:

(WebCore::RenderThemeCocoa::mediaControlsFormattedStringForDuration):

Reuse NSDateComponentsFormatter.

2:53 PM BugsWebKitOrgImprovements edited by Michael Catanzaro
CC reviews on bugs when leaving a review (diff)
2:34 PM BugsWebKitOrgImprovements edited by sam@webkit.org
(diff)
1:14 PM Changeset in webkit [219122] by Michael Catanzaro
  • 1 edit
    2 deletes in trunk/Tools

Remove unused EFL logo from bot watcher dashboard
https://bugs.webkit.org/show_bug.cgi?id=174136

Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/EFL.png: Removed.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/EFL@2x.png: Removed.
10:58 AM Changeset in webkit [219121] by Antti Koivisto
  • 6 edits in trunk

FrameView should not set RenderView::logicalWidth directly for printing
https://bugs.webkit.org/show_bug.cgi?id=174135

Reviewed by Zalan Bujtas.

Source/WebCore:

Renderer logicalWidth should be set by layout. Direct override by RenderView when printing means
that we don't layout children in all cases when the width changes. This is currently mostly hidden
by spurious layouts but causes problems when trying to fix other things that reduces those.

  • page/FrameView.cpp:

(WebCore::FrameView::forceLayoutForPagination):

Instead of calling setLogicalWidth directly call the new setPageLogicalSize that sets both the width
and the height uniformly.

  • rendering/RenderView.cpp:

(WebCore::RenderView::updateLogicalWidth):

Use pageLogicalSize->width() in printing state instead of skipping the logical width update entirely.
This ensures that the layout will progress to children when the page logical width changes.

(WebCore::RenderView::initializeLayoutState):
(WebCore::RenderView::layout):
(WebCore::RenderView::pageOrViewLogicalHeight):
(WebCore::RenderView::setPageLogicalSize):

  • rendering/RenderView.h:

Replace the existing m_pageLogicalHeight with std::optional m_pageLogicalSize.

LayoutTests:

  • platform/mac/printing/width-overflow-expected.txt:

This is a progression, view and root element sizes now match.
Printing output is not affected.

10:51 AM Changeset in webkit [219120] by Michael Catanzaro
  • 3 edits in trunk/Tools

[GTK] Add more GTK bots to dashboard
https://bugs.webkit.org/show_bug.cgi?id=174129

Reviewed by Carlos Alberto Lopez Perez.

We have a bunch of GTK bots that I never look at because they're not on the dashboard. Add
them.

This also changes the sort order to put WPE above GTK so that it's not buried under all the
less-essential GTK bots.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Dashboard.js:
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:

(WebKitBuildbot):

10:43 AM Changeset in webkit [219119] by Yusuke Suzuki
  • 2 edits in trunk/Source/WTF

[WTF] Initialize srandom and srand with cryptographically random number
https://bugs.webkit.org/show_bug.cgi?id=174123

Reviewed by Mark Lam.

Use cryptographically random number instead of current time as a seed.

  • wtf/RandomNumberSeed.h:

(WTF::initializeRandomNumberGenerator):

7:02 AM Changeset in webkit [219118] by Michael Catanzaro
  • 4 edits
    3 adds in trunk/Tools

[WPE] Add WPE to bot watcher dashboard
https://bugs.webkit.org/show_bug.cgi?id=174119

Reviewed by Alexey Proskuryakov.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/CREDIT: Added.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/WPE.png: Added.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/WPE@2x.png: Added.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Dashboard.js:
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:

(WebKitBuildbot):

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Styles/Main.css:

(table.queue-grid tr.platform.linux-wpe img.logo):

4:43 AM Changeset in webkit [219117] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

Xcode duplicate UUID for DisallowCType.h and DispatchPtr.h
https://bugs.webkit.org/show_bug.cgi?id=174117

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-07-04
Reviewed by Alexey Proskuryakov.

  • WTF.xcodeproj/project.pbxproj:

Give DisallowCType.h and DispatchPtr.h different UUIDs.

4:12 AM Changeset in webkit [219116] by calvaris@igalia.com
  • 3 edits in trunk/Source/WebCore

[EME] Solve a couple of compiler warnings
https://bugs.webkit.org/show_bug.cgi?id=174020

Reviewed by Michael Catanzaro.

  • Modules/encryptedmedia/CDM.cpp:

(WebCore::CDM::isPersistentType): Added default return and
assertion.

  • Modules/encryptedmedia/MediaKeySession.cpp:

(WebCore::MediaKeySession::updateKeyStatuses): This warning was
already solved but I think adding an assertion for the default
case can help catch errors in the future.

1:03 AM Changeset in webkit [219115] by commit-queue@webkit.org
  • 24 edits in trunk/Source

Cleanup some StringBuilder use
https://bugs.webkit.org/show_bug.cgi?id=174118

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2017-07-04
Reviewed by Andreas Kling.

Source/JavaScriptCore:

  • runtime/FunctionConstructor.cpp:

(JSC::constructFunctionSkippingEvalEnabledCheck):

  • tools/FunctionOverrides.cpp:

(JSC::parseClause):

  • wasm/WasmOMGPlan.cpp:
  • wasm/WasmPlan.cpp:
  • wasm/WasmValidate.cpp:

Source/WebCore:

  • Modules/mediastream/PeerConnectionBackend.cpp:

(WebCore::filterICECandidate):

  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:
  • contentextensions/ContentExtension.cpp:

(WebCore::ContentExtensions::ContentExtension::compileGlobalDisplayNoneStyleSheet):

  • css/CSSFontStyleRangeValue.cpp:

(WebCore::CSSFontStyleRangeValue::customCSSText):

  • css/CSSFontStyleValue.cpp:

(WebCore::CSSFontStyleValue::customCSSText):

  • css/CSSGridAutoRepeatValue.cpp:

(WebCore::CSSGridAutoRepeatValue::customCSSText):

  • css/parser/CSSParser.cpp:

(WebCore::CSSParser::parseFontFaceDescriptor):

  • dom/Attr.cpp:
  • html/canvas/WebGPURenderingContext.cpp:
  • html/parser/HTMLParserIdioms.cpp:
  • platform/network/ParsedContentType.cpp:
  • platform/network/cocoa/CookieCocoa.mm:
  • platform/text/mac/LocaleMac.mm:
  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::getAllResponseHeaders):

Source/WebKit2:

  • NetworkProcess/capture/NetworkCaptureManager.cpp:

(WebKit::NetworkCapture::Manager::hashToPath):

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