Timeline



Mar 27, 2018:

11:21 PM Changeset in webkit [230024] by Carlos Garcia Campos
  • 7 edits
    2 adds in trunk

[GLIB] Add JSCWeakValue to JavaScriptCore GLib API
https://bugs.webkit.org/show_bug.cgi?id=184041

Reviewed by Michael Catanzaro.

Source/JavaScriptCore:

This allows to keep a reference to a JavaSCript value without protecting it, and without having a strong
reference of the context. When the value is cleared the JSCWeakValue::cleared signal is emitted and
jsc_weak_value_get_value() will always return nullptr.

  • API/glib/JSCWeakValue.cpp: Added.

(WeakValueRef::~WeakValueRef):
(WeakValueRef::clear):
(WeakValueRef::isClear const):
(WeakValueRef::isSet const):
(WeakValueRef::isPrimitive const):
(WeakValueRef::isObject const):
(WeakValueRef::isString const):
(WeakValueRef::setPrimitive):
(WeakValueRef::setObject):
(WeakValueRef::setString):
(WeakValueRef::object const):
(WeakValueRef::primitive const):
(WeakValueRef::string const):
(weakValueHandleOwner):
(jscWeakValueInitialize):
(jscWeakValueSetProperty):
(jscWeakValueDispose):
(jsc_weak_value_class_init):
(jsc_weak_value_new):
(jsc_weak_value_get_value):

  • API/glib/JSCWeakValue.h: Added.
  • API/glib/docs/jsc-glib-4.0-sections.txt:
  • API/glib/docs/jsc-glib-docs.sgml:
  • API/glib/jsc.h:
  • GLib.cmake:

Tools:

Add test case for JSCWeakValue.

  • TestWebKitAPI/Tests/JavaScriptCore/glib/TestJSC.cpp:

(weakValueClearedCallback):
(testJSCWeakValue):
(main):

9:52 PM Changeset in webkit [230023] by Alan Bujtas
  • 9 edits in trunk/Tools

[LayoutReloaded] Start using window.collectTextRuns() to layout text lines in inline formatting context
https://bugs.webkit.org/show_bug.cgi?id=184070

Reviewed by Antti Koivisto.

  • LayoutReloaded/FormattingContext/InlineFormatting/InlineFormattingContext.js:

(InlineFormattingContext.prototype._handleText):
(InlineFormattingContext.prototype._commitLine):

  • LayoutReloaded/FormattingContext/InlineFormatting/Line.js:

(Line.prototype.addTextLineBox):
(Line):
(Line.prototype.addLineBox): Deleted.

  • LayoutReloaded/FormattingState/BlockFormattingState.js:

(BlockFormattingState):

  • LayoutReloaded/FormattingState/FormattingState.js:

(FormattingState.prototype.displayBox):
(FormattingState):
(FormattingState.prototype._setFormattingContext): Deleted.

  • LayoutReloaded/FormattingState/InlineFormattingState.js:

(InlineFormattingState):

  • LayoutReloaded/LayoutTree/Text.js:

(Text.prototype.content):

  • LayoutReloaded/Utils.js:

(Utils.textRuns):
(Utils.textRunsForLine):
(Utils._dumpLines.):
(Utils._dumpLines):

  • LayoutReloaded/test/simple-inline-text.html:
8:32 PM Changeset in webkit [230022] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

[DFG] Remove unnecessary USE(JSVALUE32_64) / USE(JSVALUE64)
https://bugs.webkit.org/show_bug.cgi?id=181292

Reviewed by Saam Barati.

By using JSValueRegs abstraction, we can simplify DFGSpeculativeJIT.cpp code.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileGetByValOnDirectArguments):
(JSC::DFG::SpeculativeJIT::compileGetByValOnScopedArguments):
(JSC::DFG::SpeculativeJIT::compileCreateRest):
(JSC::DFG::SpeculativeJIT::compileArraySlice):
(JSC::DFG::SpeculativeJIT::emitSwitchImm):
(JSC::DFG::SpeculativeJIT::compilePutDynamicVar):
(JSC::DFG::SpeculativeJIT::compilePutAccessorByVal):

7:51 PM Changeset in webkit [230021] by timothy@apple.com
  • 5 edits in trunk

Web Inspector: Modernize some utility functions
https://bugs.webkit.org/show_bug.cgi?id=184047

Source/WebInspectorUI:

Reviewed by Matt Baker.

  • UserInterface/Base/Utilities.js:

(Node.prototype.enclosingNodeOrSelfWithClass): Use parentElement instead of parentNode, so we don't need to check for document.
(Node.prototype.enclosingNodeOrSelfWithNodeNameInArray): Ditto. Also just toUpperCase input, since nodeName is already upper case.
(String.prototype.escapeCharacters): Use Set and string iteration instead of indexOf and charAt.

LayoutTests:

Rubber-stamped by Matt Baker.

  • inspector/unit-tests/string-utilities-expected.txt: Updated.
  • inspector/unit-tests/string-utilities.html: Added String.prototype.escapeCharacters test.
7:37 PM Changeset in webkit [230020] by Michael Catanzaro
  • 2 edits in trunk/Source/WebKit

Unreviewed, fix typo in variable name

  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseCrossingNotifyEvent):

6:36 PM Changeset in webkit [230019] by Michael Catanzaro
  • 4 edits in trunk/Source/WebCore

Unreviewed, rolling out r230008.

Lots of HTTP test failures

Reverted changeset:

"Remove unused libsoup ResourceHandle implementation"
https://bugs.webkit.org/show_bug.cgi?id=184048
https://trac.webkit.org/changeset/230008

5:22 PM Changeset in webkit [230018] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Skip http/wpt/service-workers/third-party-registration.html.
https://bugs.webkit.org/show_bug.cgi?id=183860

Unreviewed test gardening.

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
5:12 PM Changeset in webkit [230017] by Chris Dumez
  • 4 edits in trunk/Source/WebCore

Make it possible to call ContentSecurityPolicy::upgradeInsecureRequestIfNeeded() from non-main threads
https://bugs.webkit.org/show_bug.cgi?id=184029

Reviewed by Youenn Fablet.

Make it possible to call ContentSecurityPolicy::upgradeInsecureRequestIfNeeded() from non-main threads
by having it use SecurityOriginData (which is safe to construct on non-main threads) instead of
SecurityOrigin (which isn't).

ContentSecurityPolicy::upgradeInsecureRequestIfNeeded() is already called from non-main thread in
FetchLoader, XHR and WebSocket when used in workers. This wasn't safe.

  • loader/DocumentWriter.cpp:

(WebCore::DocumentWriter::begin):

  • page/csp/ContentSecurityPolicy.cpp:

(WebCore::ContentSecurityPolicy::upgradeInsecureRequestIfNeeded const):
(WebCore::ContentSecurityPolicy::setUpgradeInsecureRequests):
(WebCore::ContentSecurityPolicy::takeNavigationRequestsToUpgrade):
(WebCore::ContentSecurityPolicy::setInsecureNavigationRequestsToUpgrade):

  • page/csp/ContentSecurityPolicy.h:
4:54 PM Changeset in webkit [230016] by dbates@webkit.org
  • 2 edits in trunk/Source/WebCore

Attempt to fix media control layout tests after <https://trac.webkit.org/changeset/230006/>
(https://bugs.webkit.org/show_bug.cgi?id=179983)

Exempt elements in user agent shadow DOM from having to perform a potentially CORS-
enabled fetch for a mask image to try to fix the following tests from timing out:

media/modern-media-controls/media-controller/media-controller-inline-to-fullscreen-to-inline.html
media/modern-media-controls/media-controller/media-controller-inline-to-fullscreen-to-pip-to-inline.html

  • style/StylePendingResources.cpp:

(WebCore::Style::loadPendingImage):

4:39 PM Changeset in webkit [230015] by pvollan@apple.com
  • 11 edits in trunk/Source

The layout test fast/canvas/webgl/read-pixels-test.html is timing out.
https://bugs.webkit.org/show_bug.cgi?id=183923
<rdar://problem/38756869>

Reviewed by Brent Fulgham.

Source/WebCore:

The test is timing out when we do not interact directly with the WindowServer, causing
OpenGL to fall back to software rendering. In this mode, any call to CGLChoosePixelFormat
requesting an accelerated pixel format will fail because it cannot determine which GPU is
connected to the display.

OpenGL treats all GPUs as if they were offline when used in a process (like the WebContent
process) that does not directly control the display.

We can get correct behavior if we tell OpenGL which GPU is currently connected to the
display, and if we instruct CGLChoosePixelFormat to create an offline renderer pixel format
by including the 'kCGLPFAAllowOfflineRenderers' flag in its arguments.

We can use CGLSetVirtualScreen with an OpenGL display mask that tells the OpenGL framework
which GPU it should use.

See https://developer.apple.com/library/content/technotes/tn2229/_index.html#//apple_ref/doc/uid/DTS40008924-CH1-SUBSECTION7
for details on how the virtual screen is found from the OpenGL display mask.

No new tests, covered by existing tests.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/GraphicsContext3D.h:
  • platform/graphics/cocoa/GraphicsContext3DCocoa.mm:

(WebCore::setPixelFormat):
(WebCore::identifyAndSetCurrentGPU):
(WebCore::GraphicsContext3D::GraphicsContext3D):
(WebCore::GraphicsContext3D::setOpenGLDisplayMask):
(WebCore::GraphicsContext3D::allowOfflineRenderers):

Source/WebKit:

Send OpenGL display mask to the WebContent process when the display ID is changing.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::windowScreenDidChange):

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebPage/mac/WebPageMac.mm:

(WebKit::WebPage::openGLDisplayMaskChanged):

Source/WTF:

Add compile guard for blocking of the WindowServer in the WebProcess.

  • wtf/FeatureDefines.h:
4:26 PM Changeset in webkit [230014] by youenn@apple.com
  • 10 edits
    2 adds in trunk

Move request checking out of PingLoad for future reuse in NetworkLoad
https://bugs.webkit.org/show_bug.cgi?id=183865

Reviewed by Chris Dumez.

Source/WebKit:

Introduce NetworkLoadChecker as a way to validate requests before sending them in the network process.
Validation encompasses: CORS checks, CSP and Content Extensions on both main request and redirected requests if any.

Make PingLoad use NetworkLoadChecker. Future patch should make NetworkLoad to use it as well whenever needed.

Make NetworkCORSPreflightChecker takes a CompletionHandler instead of a Function.
Ensure this callback is called even if preflight is not completed by returning a Canceled error.

  • NetworkProcess/NetworkCORSPreflightChecker.cpp:

(WebKit::NetworkCORSPreflightChecker::~NetworkCORSPreflightChecker):
(WebKit::NetworkCORSPreflightChecker::returnResult):
(WebKit::NetworkCORSPreflightChecker::willPerformHTTPRedirection):
(WebKit::NetworkCORSPreflightChecker::didReceiveChallenge):
(WebKit::NetworkCORSPreflightChecker::didCompleteWithError):

  • NetworkProcess/NetworkCORSPreflightChecker.h:
  • NetworkProcess/NetworkLoadChecker.cpp: Added.

(WebKit::NetworkLoadChecker::NetworkLoadChecker):
(WebKit::NetworkLoadChecker::check):
(WebKit::NetworkLoadChecker::checkRedirection):
(WebKit::NetworkLoadChecker::returnError):
(WebKit::NetworkLoadChecker::checkRequest):
(WebKit::NetworkLoadChecker::checkCORSRequest):
(WebKit::NetworkLoadChecker::checkCORSRedirectedRequest):
(WebKit::NetworkLoadChecker::checkCORSRequestWithPreflight):
(WebKit::NetworkLoadChecker::doesNotNeedCORSCheck const):
(WebKit::NetworkLoadChecker::contentSecurityPolicy const):
(WebKit::NetworkLoadChecker::contentExtensionsBackend):
(WebKit::NetworkLoadChecker::processContentExtensionRulesForLoad):

  • NetworkProcess/NetworkLoadChecker.h: Added.

(WebKit::NetworkLoadChecker::setCSPResponseHeaders):
(WebKit::NetworkLoadChecker::setContentExtensionRuleLists):
(WebKit::NetworkLoadChecker::url const):
(WebKit::NetworkLoadChecker::storedCredentialsPolicy const):
(WebKit::NetworkLoadChecker::isChecking const):
(WebKit::NetworkLoadChecker::isRedirected const):

  • NetworkProcess/PingLoad.cpp:

(WebKit::PingLoad::PingLoad):
(WebKit::PingLoad::~PingLoad):
(WebKit::PingLoad::willPerformHTTPRedirection):
(WebKit::PingLoad::didReceiveChallenge):
(WebKit::PingLoad::wasBlocked):
(WebKit::PingLoad::cannotShowURL):
(WebKit::PingLoad::timeoutTimerFired):
(WebKit::PingLoad::currentURL const):

  • NetworkProcess/PingLoad.h:
  • WebKit.xcodeproj/project.pbxproj:

LayoutTests:

  • http/wpt/beacon/cors/cors-preflight-cookie-expected.txt:
  • http/wpt/beacon/cors/cors-preflight-cookie.html:
4:16 PM Changeset in webkit [230013] by eric.carlson@apple.com
  • 2 edits in trunk/Tools

https://bugs.webkit.org/show_bug.cgi?id=183876
<rdar://problem/38726459>

Unreviewed, fix for the test added in r229995 in the iOS simulator.

  • TestWebKitAPI/Tests/WebKitCocoa/AVFoundationPreference.mm:

(TestWebKitAPI::AVFoundationPref::testWithPreference):

3:42 PM Changeset in webkit [230012] by jiewen_tan@apple.com
  • 15 edits in trunk

[WebAuthN] Implement authenticatorGetAssertion
https://bugs.webkit.org/show_bug.cgi?id=183881
<rdar://problem/37258628>

Reviewed by Brent Fulgham.

Source/WebCore:

This patch does the following few things:
1) It implements the spec: https://www.w3.org/TR/webauthn/#op-get-assertion as of 5 December 2017.
2) It tweaks encoding/decoding of PublicKeyCredentialRequestOptions such that options can be passed
between UI and Web processes.
3) It refines the way how LocalAuthenticator::makeCredential find intersection between
excludeCredentialDescriptorList and existing credentials in the authenticator, such that it is faster.
Basically, it takes the CredentialID from the list and treat it as an ASCII string and put it into a
HashSet<String>. It should not matter if a duplicated CredentialID is added. If the hash set is not
empty, the algorithm then queries Keychain for all CredentialIDs related to the current RP ID once.
For every queried CredentialID, the algorithm then treats it as an ASCII string as well and look for
a match in the hash set to produce the intersetction. The new way is also employed in
LocalAuthenticator::getAssertion as well.
4) It abstracts the way to produce authData and thus reorders a bit of code in
LocalAuthenticator::makeCredential.

Covered by API tests.

  • Modules/webauthn/AuthenticatorManager.cpp:

(WebCore::AuthenticatorManager::create const):
(WebCore::AuthenticatorManager::discoverFromExternalSource const):

  • Modules/webauthn/PublicKeyCredentialCreationOptions.h:
  • Modules/webauthn/PublicKeyCredentialRequestOptions.h:

(WebCore::PublicKeyCredentialRequestOptions::encode const):
(WebCore::PublicKeyCredentialRequestOptions::decode):

  • Modules/webauthn/cocoa/LocalAuthenticator.h:
  • Modules/webauthn/cocoa/LocalAuthenticator.mm:

(WebCore::LocalAuthenticatorInternal::buildAuthData):
(WebCore::LocalAuthenticatorInternal::produceHashSet):
(WebCore::LocalAuthenticator::makeCredential):
(WebCore::LocalAuthenticator::getAssertion):
(WebCore::LocalAuthenticator::issueClientCertificate const):

  • WebCore.xcodeproj/project.pbxproj:

Source/WebKit:

  • Shared/WebPreferences.yaml:
  • UIProcess/CredentialManagement/WebCredentialsMessengerProxy.cpp:

(WebKit::WebCredentialsMessengerProxy::makeCredential):
(WebKit::WebCredentialsMessengerProxy::getAssertion):
(WebKit::WebCredentialsMessengerProxy::getAssertionReply):

  • UIProcess/CredentialManagement/WebCredentialsMessengerProxy.h:
  • UIProcess/CredentialManagement/WebCredentialsMessengerProxy.messages.in:
  • WebProcess/CredentialManagement/WebCredentialsMessenger.cpp:

(WebKit::WebCredentialsMessenger::getAssertion):
(WebKit::WebCredentialsMessenger::getAssertionReply):

  • WebProcess/CredentialManagement/WebCredentialsMessenger.messages.in:

Tools:

  • TestWebKitAPI/Tests/ios/LocalAuthenticator.mm:

(TestWebKitAPI::getTestKey):
(TestWebKitAPI::addTestKeyToKeychain):
(TestWebKitAPI::LAEvaluatePolicyFailedSwizzler::evaluatePolicyFailed):
(TestWebKitAPI::LAEvaluatePolicyPassedSwizzler::evaluatePolicyPassed):
(TestWebKitAPI::LAEvaluateAccessControlFailedSwizzler::LAEvaluateAccessControlFailedSwizzler):
(TestWebKitAPI::LAEvaluateAccessControlFailedSwizzler::evaluateAccessControlFailed):
(TestWebKitAPI::LAEvaluateAccessControlPassedSwizzler::LAEvaluateAccessControlPassedSwizzler):
(TestWebKitAPI::LAEvaluateAccessControlPassedSwizzler::evaluateAccessControlPassed):
(TestWebKitAPI::TEST):

3:36 PM Changeset in webkit [230011] by BJ Burg
  • 4 edits in trunk

REGRESSION(r229937): WebDriver tests no longer run, test runner hangs when launching wpt web server
https://bugs.webkit.org/show_bug.cgi?id=184056
<rdar://problem/38925058>

Reviewed by Timothy Hatcher and Youenn Fablet.

Tools:

  • Scripts/webkitpy/webdriver_tests/webdriver_w3c_web_server.py:

(WebDriverW3CWebServer.start):
The config key used in upstream WPT has changed from 'host' to 'browser_host'.

WebDriverTests:

  • imported/w3c/config.json:

The config key used in upstream WPT has changed from 'host' to 'browser_host'.

3:30 PM Changeset in webkit [230010] by timothy@hatcher.name
  • 3 edits in trunk/Tools

Update my email address in contributors.json and scripts
https://bugs.webkit.org/show_bug.cgi?id=184054

Patch by Timothy Hatcher <timothy@hatcher.name> on 2018-03-27

  • Scripts/validate-committer-lists:

(CommitterListFromGit):

  • Scripts/webkitpy/common/config/contributors.json:
3:01 PM Changeset in webkit [230009] by Chris Dumez
  • 28 edits in trunk/Source

Avoid constructing SecurityOrigin objects from non-main threads
https://bugs.webkit.org/show_bug.cgi?id=184024

Reviewed by Youenn Fablet.

Source/WebCore:

Avoid constructing SecurityOrigin objects from non-main threads as much as possible
as it is not safe. This patch gets rid of most offending cases but not all of them
yet, which is why I haven't added a ASSERT(isMainThread()) to the SecurityOrigin
constructor yet.

For example, ContentSecurityPolicy::upgradeInsecureRequestIfNeeded() currently
gets called from non-main threads and construct a SecurityOrigin. Fixing this
will require some refactoring that would have made this patch much larger.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::matchRegistration):

  • page/EventSource.cpp:

(WebCore::EventSource::didReceiveResponse):

  • page/SecurityOrigin.cpp:

(WebCore::SecurityOrigin::SecurityOrigin):

  • page/SecurityOrigin.h:

(WebCore::SecurityOrigin::isPotentiallyTrustworthy const):

  • testing/Internals.cpp:

(WebCore::Internals::hasServiceWorkerRegistration):

  • workers/DedicatedWorkerGlobalScope.cpp:

(WebCore::DedicatedWorkerGlobalScope::create):
(WebCore::DedicatedWorkerGlobalScope::DedicatedWorkerGlobalScope):

  • workers/DedicatedWorkerGlobalScope.h:
  • workers/DedicatedWorkerThread.cpp:

(WebCore::DedicatedWorkerThread::createWorkerGlobalScope):

  • workers/DedicatedWorkerThread.h:
  • workers/WorkerGlobalScope.cpp:

(WebCore::WorkerGlobalScope::WorkerGlobalScope):

  • workers/WorkerGlobalScope.h:
  • workers/WorkerLocation.cpp:

(WebCore::WorkerLocation::origin const):

  • workers/WorkerThread.cpp:

(WebCore::WorkerThreadStartupData::WorkerThreadStartupData):
(WebCore::WorkerThread::workerThread):

  • workers/WorkerThread.h:
  • workers/service/SWClientConnection.h:
  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::getRegistration):
(WebCore::ServiceWorkerContainer::getRegistrations):

  • workers/service/ServiceWorkerGlobalScope.cpp:

(WebCore::ServiceWorkerGlobalScope::create):
(WebCore::ServiceWorkerGlobalScope::ServiceWorkerGlobalScope):

  • workers/service/ServiceWorkerGlobalScope.h:
  • workers/service/ServiceWorkerProvider.cpp:

(WebCore::ServiceWorkerProvider::mayHaveServiceWorkerRegisteredForOrigin):

  • workers/service/ServiceWorkerProvider.h:
  • workers/service/context/ServiceWorkerThread.cpp:

(WebCore::ServiceWorkerThread::createWorkerGlobalScope):
(WebCore::fireMessageEvent):
(WebCore::ServiceWorkerThread::postMessageToServiceWorker):

  • workers/service/context/ServiceWorkerThread.h:

Source/WebKit:

Avoid constructing SecurityOrigin objects from non-main threads as much as possible.

  • WebProcess/Storage/WebSWClientConnection.cpp:

(WebKit::WebSWClientConnection::mayHaveServiceWorkerRegisteredForOrigin const):
(WebKit::WebSWClientConnection::matchRegistration):
(WebKit::WebSWClientConnection::getRegistrations):

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

(WebKit::WebSWOriginTable::contains const):

  • WebProcess/Storage/WebSWOriginTable.h:
2:16 PM Changeset in webkit [230008] by achristensen@apple.com
  • 4 edits in trunk/Source/WebCore

Remove unused libsoup ResourceHandle implementation
https://bugs.webkit.org/show_bug.cgi?id=184048

Reviewed by Michael Catanzaro.

This code is unused since r228901 so let's remove it!

  • platform/network/ResourceHandle.h:
  • platform/network/ResourceHandleInternal.h:

(WebCore::ResourceHandleInternal::ResourceHandleInternal):

  • platform/network/soup/ResourceHandleSoup.cpp:

(WebCore::ResourceHandle::~ResourceHandle):
(WebCore::ResourceHandleInternal::soupSession):
(WebCore::ResourceHandle::cancelledOrClientless):
(WebCore::ResourceHandle::ensureReadBuffer):
(WebCore::ResourceHandle::currentStreamPosition const):
(WebCore::ResourceHandle::platformContinueSynchronousDidReceiveResponse):
(WebCore::ResourceHandle::didStartRequest):
(WebCore::ResourceHandle::start):
(WebCore::ResourceHandle::releaseForDownload):
(WebCore::ResourceHandle::sendPendingRequest):
(WebCore::ResourceHandle::cancel):
(WebCore::ResourceHandle::shouldUseCredentialStorage):
(WebCore::ResourceHandle::continueDidReceiveAuthenticationChallenge):
(WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
(WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential):
(WebCore::ResourceHandle::receivedCredential):
(WebCore::ResourceHandle::receivedCancellation):
(WebCore::ResourceHandle::receivedChallengeRejection):
(WebCore::ResourceHandle::platformSetDefersLoading):
(WebCore::sessionFromContext): Deleted.
(WebCore::ResourceHandle::create): Deleted.
(WebCore::ResourceHandle::ResourceHandle): Deleted.
(WebCore::isAuthenticationFailureStatusCode): Deleted.
(WebCore::tlsErrorsChangedCallback): Deleted.
(WebCore::gotHeadersCallback): Deleted.
(WebCore::applyAuthenticationToRequest): Deleted.
(WebCore::restartedCallback): Deleted.
(WebCore::shouldRedirect): Deleted.
(WebCore::shouldRedirectAsGET): Deleted.
(WebCore::continueAfterWillSendRequest): Deleted.
(WebCore::doRedirect): Deleted.
(WebCore::redirectSkipCallback): Deleted.
(WebCore::wroteBodyDataCallback): Deleted.
(WebCore::cleanupSoupRequestOperation): Deleted.
(WebCore::nextMultipartResponsePartCallback): Deleted.
(WebCore::sendRequestCallback): Deleted.
(WebCore::continueAfterDidReceiveResponse): Deleted.
(WebCore::startingCallback): Deleted.
(WebCore::networkEventCallback): Deleted.
(WebCore::createSoupMessageForHandleAndRequest): Deleted.
(WebCore::createSoupRequestAndMessageForHandle): Deleted.
(WebCore::ResourceHandle::timeoutFired): Deleted.
(WebCore::waitingToSendRequest): Deleted.
(WebCore::readCallback): Deleted.

2:02 PM Changeset in webkit [230007] by Chris Dumez
  • 21 edits in trunk/Source

Move online state detection from the WebProcess to the NetworkProcess
https://bugs.webkit.org/show_bug.cgi?id=183989
<rdar://problem/37093299>

Reviewed by Youenn Fablet.

Source/WebCore:

Move online state detection from the WebProcess to the NetworkProcess. This avoid executing the same (expensive) code in
EACH web process whenever a network interface's state changes. Now, the Network Process monitors network interfaces
and determines the online state whenever an interface's state changes. If the onLine state changes, it notifies all
its connected WebProcesses via IPC.

  • inspector/agents/InspectorApplicationCacheAgent.cpp:

(WebCore::InspectorApplicationCacheAgent::networkStateChanged):

  • loader/LoaderStrategy.h:
  • page/Navigator.cpp:

(WebCore::Navigator::onLine const):

  • page/Page.cpp:
  • platform/network/NetworkStateNotifier.h:
  • workers/Worker.cpp:

(WebCore::Worker::Worker):
(WebCore::Worker::notifyFinished):

  • workers/service/context/ServiceWorkerThread.cpp:

(WebCore::ServiceWorkerThread::ServiceWorkerThread):

  • workers/service/context/ServiceWorkerThreadProxy.cpp:

(WebCore::ServiceWorkerThreadProxy::ServiceWorkerThreadProxy):

Source/WebKit:

Move online state detection from the WebProcess to the NetworkProcess. This avoid executing the same (expensive) code in
EACH web process whenever a network interface's state changes. Now, the Network Process monitors network interfaces
and determines the online state whenever an interface's state changes. If the onLine state changes, it notifies all
its connected WebProcesses via IPC.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::setOnLineState):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::NetworkProcess):
(WebKit::NetworkProcess::createNetworkConnectionToWebProcess):

  • WebProcess/Network/NetworkProcessConnection.cpp:

(WebKit::NetworkProcessConnection::setOnLineState):

  • WebProcess/Network/NetworkProcessConnection.h:
  • WebProcess/Network/NetworkProcessConnection.messages.in:
  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::isOnLine const):
(WebKit::WebLoaderStrategy::addOnlineStateChangeListener):
(WebKit::WebLoaderStrategy::setOnLineState):

  • WebProcess/Network/WebLoaderStrategy.h:

Source/WebKitLegacy:

No change on WebKit1 except that WebResourceLoadScheduler needs to override
2 new virtual functions which forward the calls to the NetworkStateNotifier.

  • WebCoreSupport/WebResourceLoadScheduler.cpp:

(WebResourceLoadScheduler::isOnLine const):
(WebResourceLoadScheduler::addOnlineStateChangeListener):

  • WebCoreSupport/WebResourceLoadScheduler.h:
1:56 PM Changeset in webkit [230006] by dbates@webkit.org
  • 5 edits
    4 adds in trunk

CSS mask images should be retrieved using potentially CORS-enabled fetch
https://bugs.webkit.org/show_bug.cgi?id=179983
<rdar://problem/35678149>

Reviewed by Brent Fulgham.

Source/WebCore:

As per <https://drafts.fxtf.org/css-masking-1/#priv-sec> (Editor’s Draft, 23 December 2017)
we should fetch CSS mask images using a potentially CORS-enabled fetch.

Both cross-origin CSS shape-outside images and CSS mask images may be sensitive to timing
attacks that can be used to reveal their pixel data when retrieved without regard to CORS.
For the same reason that we fetch CSS shape-outside images using a potentially CORS-enabled
fetch we should fetch CSS mask the same way. This also makes the behavior of WebKit more
closely align with the behavior in the spec.

Test: http/tests/security/css-mask-image.html

  • page/Settings.yaml: Add a setting for toggle "Anonymous" mode fetching of mask images (defaults: true).

We need this setting to avoid breaking the developer convenience feature that some modern media controls
layout tests employ to load assets from the filesystem as opposed to using the hardcoded data URLs baked
into the WebKit binary.

  • style/StylePendingResources.cpp: Substitute LoadPolicy::NoCORS and LoadPolicy::Anonymous for

LoadPolicy::Normal and LoadPolicy::ShapeOutside, respectively, to match the terminology used
in the HTML, CSS Shapes Module Level 1, and CSS Masking Module Level 1 specs.
(WebCore::Style::loadPendingImage): Ditto.
(WebCore::Style::loadPendingResources): Use load policy LoadPolicy::Anonymous when fetching
a mask image or shape-outside image.

LayoutTests:

Add a test to ensure we do not fetch a cross-origin CSS mask image that does
not allow CORS access.

  • http/tests/security/css-mask-image-expected.html: Added.
  • http/tests/security/css-mask-image.html: Added.
  • http/tests/security/resources/black-square.png: Added.
  • http/tests/security/resources/fail-mask.png: Added.
  • media/modern-media-controls/resources/media-controls-loader.js: Disable "Anonymous" mode

fetching of mask images to allow modern media controls to load mask assets from the filesystem.

1:52 PM Changeset in webkit [230005] by sbarati@apple.com
  • 2 edits in trunk/Source/bmalloc

memoryStatus() is wrong in certain testing scenarios on iOS
https://bugs.webkit.org/show_bug.cgi?id=184050
<rdar://problem/37959258>

Rubber-stamped by Mark Lam.

This switches us from using "phys_footprint" to using "internal + compressed"
when computing the dirty memory in the current process. There are iOS testing
scenarios where phys_footprint doesn't give us a reliable answer. In my testing,
"internal + compressed" tracks phys_footprint closely (when phys_footprint is
working). They're usually within much less than 1% of each other. We're making
this change to ensure testing in our iOS infrastructure is valid.

I opened a bug to move back to phys_footprint when it's feasible:
https://bugs.webkit.org/show_bug.cgi?id=184050

  • bmalloc/AvailableMemory.cpp:

(bmalloc::memoryStatus):

1:51 PM Changeset in webkit [230004] by Alan Bujtas
  • 6 edits
    2 adds in trunk

RenderBox::parent/firstChild/nextSibling/previousSiblingBox() functions should type check.
https://bugs.webkit.org/show_bug.cgi?id=184032
<rdar://problem/38384984>

Reviewed by Antti Koivisto.

Source/WebCore:

We cannot rely on the correctness of the render tree structure when querying for parent/child/next and previous
sibling since some features (multicolumn/spanners) move subtrees out of their original position (which is highly
undesired and should not be encouraged at all though).
It should also be noted that these functions are not equivalent of typeOfChildren<RenderBox> and the following usage

for (auto* boxChild = firstChildBox(); boxChild; boxChild = boxChild->nextSiblingBox())

can lead to unexpected result.

Test: fast/multicol/parent-box-when-spanner-is-present.html

  • rendering/RenderBox.h:

(WebCore::RenderBox::parentBox const):
(WebCore::RenderBox::firstChildBox const):
(WebCore::RenderBox::lastChildBox const):
(WebCore::RenderBox::previousSiblingBox const):
(WebCore::RenderBox::nextSiblingBox const):

  • rendering/RenderListItem.cpp:

(WebCore::RenderListItem::positionListMarker):

  • rendering/RenderListMarker.cpp:

(WebCore::RenderListMarker::layout):

  • rendering/RenderMultiColumnSet.cpp:

(WebCore::RenderMultiColumnSet::updateLogicalWidth):

LayoutTests:

  • fast/multicol/parent-box-when-spanner-is-present-expected.txt: Added.
  • fast/multicol/parent-box-when-spanner-is-present.html: Added.
1:49 PM Changeset in webkit [230003] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

[Extra zoom mode] Add support for new focused form control overlay behaviors
https://bugs.webkit.org/show_bug.cgi?id=184043
<rdar://problem/38758727>

Reviewed by Tim Horton.

See below for more details.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _willStartScrollingOrZooming]):
(-[WKContentView _didEndScrollingOrZooming]):

Suppress focused form control navigation while the scroll view is undergoing a scroll or zoom animation (e.g.,
when moving from one focused form control to another).

(-[WKContentView textInputController:didCommitText:withSuggestion:]):

When dismissing an input view controller, allow focused form control navigation only after updating assisted
node information to ensure that focus rects aren't stale as the user begins to navigate between forms.

(-[WKContentView rectForFocusedFormControlController:inCoordinateSpace:]):
(-[WKContentView nextRectForFocusedFormControlController:inCoordinateSpace:]):
(-[WKContentView previousRectForFocusedFormControlController:inCoordinateSpace:]):
(-[WKContentView scrollViewForFocusedFormControlController:]):
(-[WKContentView highlightedRectForFocusedFormControlController:inCoordinateSpace:]): Deleted.

Implement some new focused form overlay delegate hooks to vend the scroll view, as well as the rects of next and
previous focusable form controls.

1:27 PM Changeset in webkit [230002] by Brent Fulgham
  • 6 edits in trunk/Source

Further refine cookie read/write logging
https://bugs.webkit.org/show_bug.cgi?id=184044
<rdar://problem/38915610>

Reviewed by Chris Dumez.

Source/WebCore:

Export 'shouldBlockCookies' so that it can be accessed by the WebKit framework.

  • platform/network/NetworkStorageSession.h:

Source/WebKit:

Cookie logging was passing the partition, rather than the first party, when logging, which
prevented logging in cases where partitioning or blocking was active. This patch corrects
these calls so that logging is generated in these cases, too.

  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::cookiesForDOM): Call log routines if needed.
(WebKit::NetworkConnectionToWebProcess::setCookiesFromDOM): Ditto.

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::escapeIDForJSON): Make available to use in multiple functions.
(WebKit::NetworkResourceLoader::logCookieInformation const): Revise to use shared
convenience functions.
(WebKit::logBlockedCookieInformation): Added.
(WebKit::logCookieInformationInternal): Added.
(WebKit::NetworkResourceLoader::logCookieInformation): Revise to use shared
convenience functions.

  • NetworkProcess/NetworkResourceLoader.h:
12:30 PM Changeset in webkit [230001] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Command-Shift-left/right arrow keys should not switch tabs when focused on color picker text fields
https://bugs.webkit.org/show_bug.cgi?id=184028

Reviewed by Timothy Hatcher.

  • UserInterface/Views/EditingSupport.js:

(WI.isEventTargetAnEditableField):
Detect <input type="number"> as an editable text field.

12:19 PM Changeset in webkit [230000] by graouts@webkit.org
  • 56 edits in trunk

[Web Animations] Stop using internals.pauseAnimationAtTimeOnElement() in favor of Web Animations API for animations tests
https://bugs.webkit.org/show_bug.cgi?id=184038

Reviewed by Dean Jackson.

Source/WebCore:

Expose a new method to indicate that the runtime flag for CSS Animations and CSS Transitions as Web Animations is enabled.

  • testing/InternalSettings.cpp:

(WebCore::InternalSettings::cssAnimationsAndCSSTransitionsBackedByWebAnimationsEnabled):

  • testing/InternalSettings.h:
  • testing/InternalSettings.idl:

LayoutTests:

Make 48 tests opt into CSS Animations and CSS Transitions as Web Animations. These tests used the internals.pauseAnimationAtTimeOnElement()
method, but this method should be going away since the Web Animations API allows seeking and pausing. To support this, we make
animation-test-helpers.js use the Web Animations API instead of internals.pauseAnimationAtTimeOnElement() if the tests has opted
into CSS Animations and CSS Transitions as Web Animations and we know it's safe to use these APIs.

  • animations/3d/matrix-transform-type-animation.html:
  • animations/3d/transform-perspective.html:
  • animations/animation-callback-timestamp.html:
  • animations/animation-direction-reverse-hardware-opacity.html:
  • animations/animation-direction-reverse-hardware.html:
  • animations/animation-direction-reverse-non-hardware.html:
  • animations/animation-direction-reverse-timing-functions-hardware.html:
  • animations/animation-direction-reverse-timing-functions.html:
  • animations/animation-direction.html:
  • animations/animation-hit-test.html:
  • animations/animation-offscreen-to-onscreen.html:
  • animations/change-keyframes-expected.txt:
  • animations/change-keyframes.html:
  • animations/cross-fade-background-image.html:
  • animations/cross-fade-border-image-source.html:
  • animations/cross-fade-list-style-image.html:
  • animations/cross-fade-webkit-mask-box-image.html:
  • animations/duplicate-keys-expected.html:
  • animations/duplicate-keys.html:
  • animations/font-variations/font-stretch.html:
  • animations/font-variations/font-style.html:
  • animations/font-variations/font-variation-settings-order.html:
  • animations/font-variations/font-variation-settings-unlike.html:
  • animations/font-variations/font-variation-settings.html:
  • animations/font-variations/font-weight.html:
  • animations/generic-from-to.html:
  • animations/import.html:
  • animations/keyframe-multiple-timing-functions-transform.html:
  • animations/keyframes-comma-separated.html:
  • animations/keyframes-infinite-iterations.html:
  • animations/keyframes-invalid-keys.html:
  • animations/keyframes-out-of-order.html:
  • animations/keyframes.html:
  • animations/longhand-timing-function.html:
  • animations/matrix-anim.html:
  • animations/missing-keyframe-properties-repeating.html:
  • animations/missing-keyframe-properties.html:
  • animations/missing-values-first-keyframe.html:
  • animations/missing-values-last-keyframe.html:
  • animations/multiple-animations-timing-function.html:
  • animations/multiple-animations.html:
  • animations/multiple-keyframes.html:
  • animations/negative-delay.html:
  • animations/pause-crash.html:
  • animations/resources/animation-test-helpers.js:

(checkExpectedValue):
(pauseAnimationAtTimeOnElement):
(startTest):
(runAnimationTest):

  • animations/simultaneous-start-left.html:
  • animations/spring-function.html:
  • animations/stacking-context-unchanged-while-running.html:
  • animations/timing-functions.html:
  • animations/unanimated-style.html:
  • animations/unprefixed-keyframes.html:
12:02 PM Changeset in webkit [229999] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Mark some CSS animations tests as failing on Windows.
https://bugs.webkit.org/show_bug.cgi?id=183953

Unreviewed test gardening.

  • platform/win/TestExpectations:
9:37 AM Changeset in webkit [229998] by BJ Burg
  • 10 edits
    1 add in trunk/Source/WebKit

Web Automation: support enter/exit fullscreen and hide/restore window operations
https://bugs.webkit.org/show_bug.cgi?id=182837
<rdar://problem/37580732>

Reviewed by Tim Horton.

The W3C specification is more explicit about when to exit fullscreen and
restore the window for a browsing context. So, WebKit needs to have support
for performing these operations on behalf of a driver.

Based on prototyping, it is sufficient to use a JavaScript atom to enter
fullscreen mode. This is included in the patch as EnterFullscreen.js and
can be used to implement the §10.7.5 Fullscreen Window command.

Other window operations cannot be peformed from JavaScript, so we need to
delegate these operations to the session client (i.e., Safari).
This patch adds session client callouts for restoring, minimizing, and
switching to a browsing context.

Exiting fullscreen happens implicitly (per specification) when setting a
window frame without an actual frame, or when switching/restoring/minimizing a window.
If needed, a driver can call Set Window Rect in this way to unfullscreen a context.
Similarly, a driver can restore a minimized window using Set Window Rect.

  • UIProcess/API/APIAutomationSessionClient.h:

(API::AutomationSessionClient::requestHideWindowOfPage):
(API::AutomationSessionClient::requestRestoreWindowOfPage):
(API::AutomationSessionClient::requestSwitchToPage):
Add new API client methods.

  • UIProcess/API/Cocoa/_WKAutomationSessionDelegate.h:

Add new Cocoa API delegate methods.

  • UIProcess/Automation/Automation.json:

Make the switch to browsing context command asynchronous, since this functionality
is not always synchronous, and we prefer to use completion handlers in the delegates.

Add new protocol method for hiding the window of a browsing context.
This is expected to minimize/miniaturize a window for desktop window managers.

  • UIProcess/Automation/WebAutomationSession.h:
  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::switchToBrowsingContext):
Make this function asynchronous. Call out to the session client.

(WebKit::WebAutomationSession::setWindowFrameOfBrowsingContext):
Follow the steps in the specification to restore window and exit fullscreen.

(WebKit::WebAutomationSession::hideWindowOfBrowsingContext):
Exit fullscreen and call out to the session client.

(WebKit::WebAutomationSession::exitFullscreenWindowForPage):
This is a little strange. Because there is no async API for exiting fullscreen
from C++ code, we hook into willEnterFullScreen and didExitFullScreen and send
out the response if the page exited fullscreen after we requested it to do so.
Because the W3C specification mandates that drivers only process one command at
a time, there will only ever be one callback installed by this method at a time.

(WebKit::WebAutomationSession::restoreWindowForPage):
(WebKit::WebAutomationSession::hideWindowForPage):
Call out to the session client.

(WebKit::WebAutomationSession::didEnterFullScreenForPage):
(WebKit::WebAutomationSession::didExitFullScreenForPage):
Add methods to be called by instrumentation hooks in WebFullScreenManagerProxy.

  • UIProcess/Automation/atoms/EnterFullscreen.js: Added.

(enterFullscreen):

  • UIProcess/Cocoa/AutomationSessionClient.h:
  • UIProcess/Cocoa/AutomationSessionClient.mm:

(WebKit::AutomationSessionClient::AutomationSessionClient):
(WebKit::AutomationSessionClient::requestSwitchToPage):
(WebKit::AutomationSessionClient::requestHideWindowOfPage):
(WebKit::AutomationSessionClient::requestRestoreWindowOfPage):
(WebKit::AutomationSessionClient::isShowingJavaScriptDialogOnPage):
Add boilerplate to convert C++ API client to Objective-C delegate methods.

  • UIProcess/WebFullScreenManagerProxy.cpp:

(WebKit::WebFullScreenManagerProxy::didEnterFullScreen):
(WebKit::WebFullScreenManagerProxy::didExitFullScreen):
Notify the automation session if the page is under automation and
enters or exits fullscreen.

  • WebKit.xcodeproj/project.pbxproj:

Add EnterFullscreen.js to the list of WebDriver atoms. These are copied
as WebKit2 private headers and used by driver implementations.

9:25 AM Changeset in webkit [229997] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GStreamer] Enhance debugging in the BasePlayer
https://bugs.webkit.org/show_bug.cgi?id=184035

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-03-27
Reviewed by Philippe Normand.

No behaviour changes so no test were added/enabled.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::handleSyncMessage):
(WebCore::MediaPlayerPrivateGStreamerBase::ensureGstGLContext):
(WebCore::MediaPlayerPrivateGStreamerBase::naturalSize const):
(WebCore::MediaPlayerPrivateGStreamerBase::setVolume):
(WebCore::MediaPlayerPrivateGStreamerBase::volumeChangedCallback):
(WebCore::MediaPlayerPrivateGStreamerBase::setMuted):
(WebCore::MediaPlayerPrivateGStreamerBase::muted const):
(WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint):
(WebCore::MediaPlayerPrivateGStreamerBase::flushCurrentBuffer):
(WebCore::MediaPlayerPrivateGStreamerBase::setStreamVolumeElement):
(WebCore::MediaPlayerPrivateGStreamerBase::cdmInstanceAttached):
(WebCore::MediaPlayerPrivateGStreamerBase::cdmInstanceDetached):
(WebCore::MediaPlayerPrivateGStreamerBase::dispatchDecryptionKey):
(WebCore::MediaPlayerPrivateGStreamerBase::handleProtectionEvent):

9:21 AM Changeset in webkit [229996] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

Add Load16Z for B3 and use it in WebAssembly
https://bugs.webkit.org/show_bug.cgi?id=165884

Reviewed by JF Bastien.

We already support Load16Z in B3. Use it for i32.load16_u / i64.load16_u in WebAssembly.
spec-tests/memory.wast.js already covered this change.

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::emitLoadOp):

4:39 AM Changeset in webkit [229995] by eric.carlson@apple.com
  • 13 edits
    4 adds in trunk

Make AVFoundationEnabled preference available on iOS
https://bugs.webkit.org/show_bug.cgi?id=183876
<rdar://problem/38726459>

Reviewed by Youenn Fablet.

Source/WebCore:

Test: AVFoundationPref API test.

  • html/HTMLAudioElement.idl: There is no need for a runtime setting to enable/disable audio,

there is already settings.mediaEnabled.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::prepareForLoad): Fail if there are no media engines registered.
(WebCore::HTMLMediaElement::noneSupported): Return early if m_error has already been set.
(WebCore::HTMLMediaElement::removeBehaviorsRestrictionsAfterFirstUserGesture): Remove a typo.

  • page/RuntimeEnabledFeatures.cpp:

(WebCore::RuntimeEnabledFeatures::audioEnabled const): Deleted.

  • page/RuntimeEnabledFeatures.h:

Source/WebKit:

  • Shared/WebPreferences.yaml: Set AVFoundationEnabled with DEFAULT_AVFOUNDATION_ENABLED.
  • Shared/WebPreferencesDefaultValues.h:
  • UIProcess/API/Cocoa/WKPreferences.mm:

(-[WKPreferences _setAVFoundationEnabled:]): Enable for iOS.
(-[WKPreferences _avFoundationEnabled]): Ditto.

  • UIProcess/API/Cocoa/WKPreferencesPrivate.h:

Tools:

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/video.html: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/AVFoundationPreference.mm: Added.

(-[PreferenceTestMessageHandler userContentController:didReceiveScriptMessage:]):
(TestWebKitAPI::AVFoundationPref::SetUp):
(TestWebKitAPI::AVFoundationPref::testWithPreference):
(TestWebKitAPI::TEST_F):

LayoutTests:

  • media/media-error-fired-once-expected.txt: Added.
  • media/media-error-fired-once.html: Added.
3:10 AM Changeset in webkit [229994] by Fujii Hironori
  • 5 edits in trunk

[GTK] Layout test editing/deleting/delete-surrogatepair.html crashing with CRITICAL : enchant_dict_check: assertion 'g_utf8_validate(word, len, NULL)' failed
https://bugs.webkit.org/show_bug.cgi?id=176799

Reviewed by Carlos Garcia Campos.

Source/WebCore:

The length of a surrogate-pair UTF-16 character is 2 even though
the number of characters is 1. An incorrect string length was
passed to enchant_dict_check if the string contains a
surrogate-pair character because the length was calculated by
applying UTF-16 character position to UTF-8 string.

No new tests (Covered by existing tests).

  • platform/text/enchant/TextCheckerEnchant.cpp:

(WebCore::TextCheckerEnchant::checkSpellingOfWord): Changed the
type of an argument word from CString to String. Convert a
substring of the argument into UTF-8.
(WebCore::TextCheckerEnchant::checkSpellingOfString): Pass the
original UTF-16 string to checkSpellingOfWord instead of a
converted UTF-8 string.

  • platform/text/enchant/TextCheckerEnchant.h: Changed the type of

an argument word from CString to String.

LayoutTests:

  • platform/gtk/TestExpectations: Unmarked editing/deleting/delete-surrogatepair.html.
1:49 AM Changeset in webkit [229993] by Yusuke Suzuki
  • 4 edits in trunk/Source/JavaScriptCore

[JSC] Remove repeated iteration of ElementNode
https://bugs.webkit.org/show_bug.cgi?id=183987

Reviewed by Keith Miller.

BytecodeGenerator repeatedly iterates ElementNode to emit the efficient code.
While it is OK for small arrays, this repeated iteration takes much time
if the array is very large. For example, Kraken's initialization code includes
very large array with numeric literals. This makes bytecode compiling so long.

This patch carefully removes unnecessary iteration when emitting arrays.
This reduces one of Kraken/imaging-darkroom's bytecode compiling from 13.169856 ms
to 9.988050 ms.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitNewArrayBuffer):
(JSC::BytecodeGenerator::emitNewArray):

  • bytecompiler/BytecodeGenerator.h:
  • bytecompiler/NodesCodegen.cpp:

(JSC::ArrayNode::emitBytecode):
(JSC::ArrayPatternNode::bindValue const):
(JSC::ArrayPatternNode::emitDirectBinding):

Mar 26, 2018:

11:59 PM Changeset in webkit [229992] by Ms2ger@igalia.com
  • 2 edits in trunk/Source/WebCore

Remove an unnecessary const_cast from BitmapTextureGL::updateContents().
https://bugs.webkit.org/show_bug.cgi?id=184007

Reviewed by Žan Doberšek.

No new tests.

  • platform/graphics/texmap/BitmapTextureGL.cpp:

(WebCore::BitmapTextureGL::updateContents):

9:07 PM Changeset in webkit [229991] by timothy_horton@apple.com
  • 6 edits in trunk/Source

Adopt WK_ALTERNATE_FRAMEWORKS_DIR in WebKit
https://bugs.webkit.org/show_bug.cgi?id=184030
<rdar://problem/38895281>

Reviewed by Dan Bernstein.

  • Configurations/Base.xcconfig:

Source/WebKit:

  • Configurations/BaseTarget.xcconfig:
  • Configurations/WebKit.xcconfig:
5:10 PM WebKitGTK/2.20.x edited by clopez@igalia.com
(diff)
3:28 PM Changeset in webkit [229990] by timothy_horton@apple.com
  • 4 edits in trunk/Source

Add and adopt HAVE(CORE_ANIMATION_RENDER_SERVER)
https://bugs.webkit.org/show_bug.cgi?id=184026
<rdar://problem/38883321>

Reviewed by Sam Weinig.

Source/WebKit:

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView _takeViewSnapshot]):
(-[WKWebView _snapshotRect:intoImageOfWidth:completionHandler:]):

Source/WTF:

  • wtf/Platform.h:
2:41 PM Changeset in webkit [229989] by Ross Kirsling
  • 4 edits in trunk/Source/JavaScriptCore

JIT callOperation() needs to support operations that return SlowPathReturnType differently on Windows.
https://bugs.webkit.org/show_bug.cgi?id=183655

Reviewed by Keith Miller.

  • jit/CCallHelpers.h:

(JSC::CCallHelpers::ArgCollection::argCount):
(JSC::CCallHelpers::marshallArgumentRegister):
(JSC::CCallHelpers::setupArgumentsImpl):
On Win64, ensure that argCount always includes GPRs and FPRs and that counting starts from 1 for SlowPathReturnType.

  • jit/JIT.h:

(JSC::JIT::callOperation):
(JSC::JIT::is64BitType):
(JSC::JIT::is64BitType<void>):
On Win64, ensure special call is used for SlowPathReturnType.

  • jit/JITOperations.h:

Update changed type.

2:07 PM Changeset in webkit [229988] by Yusuke Suzuki
  • 9 edits in trunk/Source

We should have SSE4 detection in the X86 MacroAssembler.
https://bugs.webkit.org/show_bug.cgi?id=165363

Reviewed by JF Bastien.

Source/JavaScriptCore:

This patch adds popcnt support to WASM in x86_64 environment.
To use it, we refactor our CPUID feature detection in MacroAssemblerX86Common.
Our spec-tests already cover popcnt.

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::supportsCountPopulation):

  • assembler/MacroAssemblerX86Common.cpp:

(JSC::MacroAssemblerX86Common::getCPUID):
(JSC::MacroAssemblerX86Common::getCPUIDEx):
(JSC::MacroAssemblerX86Common::collectCPUFeatures):

  • assembler/MacroAssemblerX86Common.h:

(JSC::MacroAssemblerX86Common::countPopulation32):
(JSC::MacroAssemblerX86Common::supportsFloatingPointRounding):
(JSC::MacroAssemblerX86Common::supportsCountPopulation):
(JSC::MacroAssemblerX86Common::supportsAVX):
(JSC::MacroAssemblerX86Common::supportsLZCNT):
(JSC::MacroAssemblerX86Common::supportsBMI1):
(JSC::MacroAssemblerX86Common::isSSE2Present):
(JSC::MacroAssemblerX86Common::updateEax1EcxFlags): Deleted.

  • assembler/MacroAssemblerX86_64.h:

(JSC::MacroAssemblerX86_64::countPopulation64):

  • assembler/X86Assembler.h:

(JSC::X86Assembler::popcnt_rr):
(JSC::X86Assembler::popcnt_mr):
(JSC::X86Assembler::popcntq_rr):
(JSC::X86Assembler::popcntq_mr):

  • wasm/WasmB3IRGenerator.cpp:

(JSC::Wasm::B3IRGenerator::addOp<OpType::I32Popcnt>):
(JSC::Wasm::B3IRGenerator::addOp<OpType::I64Popcnt>):

Source/WTF:

GCC 5 supports clobbering PIC registers in inline ASM [1,2].

[1]: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47602
[2]: https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=216154

  • wtf/Atomics.h:

(WTF::x86_cpuid):

2:01 PM Changeset in webkit [229987] by fpizlo@apple.com
  • 4 edits
    3 adds in trunk

DFG should know that CreateThis can be effectful
https://bugs.webkit.org/show_bug.cgi?id=184013

Reviewed by Saam Barati.

JSTests:

  • stress/create-this-property-change.js: Added.

(Foo):
(RealBar):
(get if):

  • stress/create-this-structure-change-without-cse.js: Added.

(Foo):
(RealBar):
(get if):

  • stress/create-this-structure-change.js: Added.

(Foo):
(RealBar):
(get if):

Source/JavaScriptCore:

As shown in the tests added in JSTests, CreateThis can be effectful if the constructor this
is a proxy.

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

2:00 PM Changeset in webkit [229986] by Wenson Hsieh
  • 2 edits in trunk/Source/WebKit

[Extra zoom mode] Refactor input view controller presentation and dismissal helpers
https://bugs.webkit.org/show_bug.cgi?id=184020
Work towards <rdar://problem/38758727>

Reviewed by Tim Horton.

We currently have separate presentation and dismissal helpers for each type of view controller corresponding to
a focused element type. This is excessive, considering that all of these helpers are only invoked from one place
(either -presentViewControllerForCurrentAssistedNode or -dismissAllInputViewControllers), with the exception of
the focused form control overlay.

This refactoring allows us to then adjust the timing of first responder restoration logic, such that the focused
form control view controller can receive forwarded events from the web view. See below for more detail.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView presentFocusedFormControlViewController:]):
(-[WKContentView dismissFocusedFormControlViewController:]):

Remove logic to restore the web view as first responder.

(-[WKContentView presentViewControllerForCurrentAssistedNode]):
(-[WKContentView dismissAllInputViewControllers]):

Restore first responder after dismissing a view controller that was presented when focusing a form control, only
if the web view was first responder before presentation.

(-[WKContentView presentDatePickerViewController:]): Deleted.
(-[WKContentView dismissDatePickerViewController:]): Deleted.
(-[WKContentView presentTimePickerViewController:]): Deleted.
(-[WKContentView dismissTimePickerViewController:]): Deleted.
(-[WKContentView presentSelectMenuViewController:]): Deleted.
(-[WKContentView dismissSelectMenuViewController:]): Deleted.
(-[WKContentView dismissNumberPadViewController:]): Deleted.
(-[WKContentView presentNumberPadViewController:]): Deleted.
(-[WKContentView presentTextInputViewController:]): Deleted.
(-[WKContentView dismissTextInputViewController:]): Deleted.

1:16 PM Changeset in webkit [229985] by graouts@webkit.org
  • 2 edits in trunk/Source/WTF

[ASan] Allow Ref<> to be swapped
https://bugs.webkit.org/show_bug.cgi?id=184017
<rdar://problem/36336787>

Reviewed by JF Bastien.

Unpoison a Ref in various calls just like in ~Ref so that sorting a Vector<Ref<>> works with ASan on.

  • wtf/Ref.h:

(WTF::Ref::assignToHashTableEmptyValue):
(WTF::=):
(WTF::U>::replace):

12:25 PM Changeset in webkit [229984] by BJ Burg
  • 9 edits in trunk/Source/WebKit

Web Automation: provide a way to ask clients for a new tab or window
https://bugs.webkit.org/show_bug.cgi?id=183381
<rdar://problem/38167301>

Reviewed by Timothy Hatcher.

Add support for specifying browsing context options when requesting
a new browsing context from the automation session client/delegate.
This is currently just used for specifying tab vs window, but could
also be used for things like toggling certain browser chrome or features.

There is no guarantee that the client has a notion of tabs vs windows,
so this option is purely advisory and should not cause the command to
fail if it cannot be honored.

This behavior caused by specifying this option is client-specific, so no
new tests are included in WebKit for this change.

  • UIProcess/API/APIAutomationSessionClient.h:

(API::AutomationSessionClient::didRequestNewPageWithOptions):
(API::AutomationSessionClient::didRequestNewWindow): Deleted.
Add options parameter.

  • UIProcess/API/glib/WebKitAutomationSession.cpp:

Adjust to new signature. More work is needed to plumb this information
to the public API for GTK/WPE and support it in WebKitGTK driver.

  • UIProcess/Automation/Automation.json: Add new optional parameter.
  • UIProcess/Automation/WebAutomationSession.h:
  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::createBrowsingContext):
Convert the protocol option to an API option.

  • UIProcess/Cocoa/AutomationSessionClient.h:
  • UIProcess/Cocoa/AutomationSessionClient.mm:

(WebKit::AutomationSessionClient::AutomationSessionClient):
(WebKit::toAPI):
(WebKit::AutomationSessionClient::didRequestNewPageWithOptions):
(WebKit::AutomationSessionClient::didRequestNewWindow): Deleted.
Convert the internal option to a Cocoa SPI option and pass it along.

  • UIProcess/API/Cocoa/_WKAutomationSessionDelegate.h:

Adjust delegate methods to include options. Clients need to adopt the new signature(s).

12:12 PM Changeset in webkit [229983] by graouts@webkit.org
  • 8 edits in trunk

[Web Animations] Make imported/mozilla/css-animations/test_animation-currenttime.html pass reliably
https://bugs.webkit.org/show_bug.cgi?id=183819

Reviewed by Dean Jackson.

LayoutTests/imported/mozilla:

Record progressions of Mozilla tests.

  • css-animations/test_animation-currenttime-expected.txt:

Source/WebCore:

The current time for a CSS Animation exposed via the API should be clamped between 0 and the animation duration.

  • animation/CSSAnimation.cpp:

(WebCore::CSSAnimation::bindingsCurrentTime const):

  • animation/CSSAnimation.h:
  • animation/WebAnimation.h:

LayoutTests:

The test imported/mozilla/css-animations/test_animation-currenttime.html now passes reliably.

12:09 PM Changeset in webkit [229982] by Wenson Hsieh
  • 4 edits in trunk/Source/WebKit

[Extra zoom mode] Add plumbing for next and previous focusable element rects
https://bugs.webkit.org/show_bug.cgi?id=184016
Work towards <rdar://problem/38758727>

Reviewed by Tim Horton.

When building up AssistedNodeInformation, we currently compute the element rect of the current focused element,
as well as flags indicating whether or not there are next or previous focusable elements. For
<rdar://problem/38758727>, we additionally send the rects of the next or previous focusable elements as well.

  • Shared/AssistedNodeInformation.cpp:

(WebKit::AssistedNodeInformation::encode const):
(WebKit::AssistedNodeInformation::decode):

IPC support for nextNodeRect and previousNodeRect.

  • Shared/AssistedNodeInformation.h:
  • WebProcess/WebPage/ios/WebPageIOS.mm:

(WebKit::elementRectInRootViewCoordinates):

Add a helper to compute an element's rect in root view coordinates. We use this to compute the rects of the
current focused element as well as those of the next and previous elements, if any.

(WebKit::WebPage::getAssistedNodeInformation):
(WebKit::hasAssistableElement): Deleted.

Since we need the next or previous focusable element to get its rect, we don't need this helper anymore.

12:08 PM Changeset in webkit [229981] by graouts@webkit.org
  • 14 edits in trunk

[Web Animations] Correctly handle timing functions specified by CSS Animations and CSS Transitions
https://bugs.webkit.org/show_bug.cgi?id=183935

Reviewed by Dean Jackson.

LayoutTests/imported/mozilla:

Record progressions of Mozilla tests.

  • css-animations/test_animation-computed-timing-expected.txt:
  • css-transitions/test_animation-computed-timing-expected.txt:
  • css-transitions/test_keyframeeffect-getkeyframes-expected.txt:

Source/WebCore:

We were incorrectly reflecting the animation-timing-function and transition-timing-function values on the generated
DeclarativeAnimation effect timing "easing" property. In fact, those values should only be represented on the keyframes.

In the case of a CSS Animation, the animation-timing-function property set on the element's style serves as the default
value used for all keyframes, and individual keyframes can specify an overriding animation-timing-function. For a CSS
Transition, the transition-timing-function property set on the element's style serves as the timing function of the
from keyframe.

To correctly reflect this, we provide a new timingFunctionForKeyframeAtIndex() function on KeyframeEffectReadOnly
which will return the right TimingFunction object at a given index, regardless of the animation type. In the case
of getKeyframes(), we manually return "linear" for the "to" keyframe since timingFunctionForKeyframeAtIndex()
would otherwise return the same timing function as the "from" keyframe. This avoids creating an extra
LinearTimingFunction object.

As a result, a number of Mozilla imported tests progress since we have correct information on the "easing" property
of objects returned by getKeyframes() and the "progress" reported by getComputedTiming() now always uses a linear
timing function.

  • animation/DeclarativeAnimation.cpp:

(WebCore::DeclarativeAnimation::syncPropertiesWithBackingAnimation): The timing function of the backing Animation should
not be reflected on the effect's timing object.

  • animation/KeyframeEffectReadOnly.cpp:

(WebCore::KeyframeEffectReadOnly::getKeyframes): Return the correct timing function for a keyframe, and use a "linear"
value for the "to" keyframe of a CSS Transition.
(WebCore::KeyframeEffectReadOnly::setAnimatedPropertiesInStyle):
(WebCore::KeyframeEffectReadOnly::timingFunctionForKeyframeAtIndex):

  • animation/KeyframeEffectReadOnly.h:

LayoutTests:

We now pass 2 additional Mozilla tests completely, so they no longer need to be marked as flaky failures or timeouts.
We also update tests that we wrote ourselves and which incorrectly assumed that the effect's timing would reflect
the timing function set by CSS.

  • TestExpectations:
  • webanimations/css-animations-expected.txt:
  • webanimations/css-animations.html:
  • webanimations/css-transitions-expected.txt:
  • webanimations/css-transitions.html:
11:36 AM Changeset in webkit [229980] by commit-queue@webkit.org
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

Make VCP encoder usage conditional on using internal SDK
https://bugs.webkit.org/show_bug.cgi?id=184009

Patch by Youenn Fablet <youennf@gmail.com> on 2018-03-26
Reviewed by Eric Carlson.

  • Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h:
11:03 AM Changeset in webkit [229979] by Chris Dumez
  • 79 edits in trunk/Source

Use SecurityOriginData more consistently in Service Worker code
https://bugs.webkit.org/show_bug.cgi?id=183969

Reviewed by Darin Adler.

Source/WebCore:

Use SecurityOriginData more consistently in Service Worker code to avoid constructing
SecurityOrigin objects unnecessarily.

I also updated SecurityOrigin to use SecurityOriginData as a data member. This reduces
code duplication a bit. This also avoids constructing SecurityOriginData unnecessarily
in some cases as callers can now use SecurityOrigin::data() instead of
SecurityOriginData::fromSecurityOrigin().

No new tests, no Web-facing behavior change.

  • Modules/cache/DOMCacheStorage.cpp:

(WebCore::DOMCacheStorage::origin const):

  • Modules/encryptedmedia/CDM.cpp:

(WebCore::CDM::storageDirectory const):

  • Modules/encryptedmedia/MediaKeySession.cpp:

(WebCore::MediaKeySession::mediaKeysStorageDirectory const):

  • Modules/encryptedmedia/legacy/WebKitMediaKeySession.cpp:

(WebCore::WebKitMediaKeySession::mediaKeysStorageDirectory const):

  • Modules/indexeddb/IDBFactory.cpp:

(WebCore::IDBFactory::openInternal):
(WebCore::IDBFactory::deleteDatabase):

  • Modules/indexeddb/client/IDBConnectionToServer.cpp:

(WebCore::IDBClient::IDBConnectionToServer::getAllDatabaseNames):

  • Modules/webdatabase/Database.cpp:

(WebCore::Database::securityOrigin):

  • Modules/webdatabase/DatabaseContext.cpp:

(WebCore::DatabaseContext::securityOrigin const):

  • Modules/webdatabase/DatabaseContext.h:
  • Modules/webdatabase/DatabaseManager.cpp:

(WebCore::DatabaseManager::fullPathForDatabase):
(WebCore::DatabaseManager::detailsForNameAndOrigin):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaPlayerMediaKeysStorageDirectory const):

  • inspector/agents/InspectorDOMStorageAgent.cpp:

(WebCore::InspectorDOMStorageAgent::findStorageArea):

  • loader/appcache/ApplicationCacheStorage.cpp:

(WebCore::ApplicationCacheStorage::calculateQuotaForOrigin):
(WebCore::ApplicationCacheStorage::calculateUsageForOrigin):
(WebCore::ApplicationCacheStorage::calculateRemainingSizeForOriginExcludingCache):
(WebCore::ApplicationCacheStorage::storeUpdatedQuotaForOrigin):
(WebCore::ApplicationCacheStorage::store):
(WebCore::ApplicationCacheStorage::ensureOriginRecord):

  • page/DOMWindow.cpp:

(WebCore:: const):

  • page/SecurityOrigin.cpp:

(WebCore::SecurityOrigin::SecurityOrigin):
(WebCore::SecurityOrigin::isPotentiallyTrustworthy const):
(WebCore::SecurityOrigin::canAccess const):
(WebCore::SecurityOrigin::canDisplay const):
(WebCore::SecurityOrigin::domainForCachePartition const):
(WebCore::SecurityOrigin::isLocal const):
(WebCore::SecurityOrigin::toString const):
(WebCore::SecurityOrigin::toRawString const):
(WebCore::SecurityOrigin::create):
(WebCore::SecurityOrigin::isSameSchemeHostPort const):

  • page/SecurityOrigin.h:

(WebCore::SecurityOrigin::protocol const):
(WebCore::SecurityOrigin::host const):
(WebCore::SecurityOrigin::port const):
(WebCore::SecurityOrigin::data const):
(WebCore::SecurityOrigin::isHTTPFamily const):

  • page/SecurityOriginData.cpp:

(WebCore::SecurityOriginData::toString const):
(WebCore::SecurityOriginData::fromFrame):

  • page/SecurityOriginData.h:

(WebCore::SecurityOriginData::fromURL):

  • storage/StorageNamespaceProvider.cpp:

(WebCore::StorageNamespaceProvider::localStorageArea):

  • testing/Internals.cpp:

(WebCore::Internals::clearCacheStorageMemoryRepresentation):

  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::addRegistration):
(WebCore::ServiceWorkerContainer::removeRegistration):
(WebCore::ServiceWorkerContainer::updateRegistration):

  • workers/service/ServiceWorkerRegistrationKey.cpp:

(WebCore::ServiceWorkerRegistrationKey::relatesToOrigin const):

  • workers/service/ServiceWorkerRegistrationKey.h:
  • workers/service/server/SWOriginStore.cpp:

(WebCore::SWOriginStore::add):
(WebCore::SWOriginStore::remove):
(WebCore::SWOriginStore::clear):

  • workers/service/server/SWOriginStore.h:
  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::addRegistration):
(WebCore::SWServer::removeRegistration):
(WebCore::SWServer::clear):
(WebCore::SWServer::tryInstallContextData):
(WebCore::SWServer::serverToContextConnectionCreated):
(WebCore::SWServer::markAllWorkersForOriginAsTerminated):
(WebCore::SWServer::unregisterServiceWorkerClient):
(WebCore::SWServer::needsServerToContextConnectionForOrigin const):

  • workers/service/server/SWServer.h:
  • workers/service/server/SWServerToContextConnection.cpp:

(WebCore::SWServerToContextConnection::SWServerToContextConnection):
(WebCore::SWServerToContextConnection::~SWServerToContextConnection):
(WebCore::SWServerToContextConnection::connectionForOrigin):

  • workers/service/server/SWServerToContextConnection.h:

(WebCore::SWServerToContextConnection::securityOrigin const):

  • workers/service/server/SWServerWorker.cpp:

(WebCore::SWServerWorker::origin const):
(WebCore::SWServerWorker::securityOrigin const):

  • workers/service/server/SWServerWorker.h:

Source/WebKit:

Use SecurityOriginData more consistently in Service Worker code to avoid constructing
SecurityOrigin objects unnecessarily.

  • NetworkProcess/NetworkResourceLoadParameters.cpp:

(WebKit::NetworkResourceLoadParameters::encode const):

  • Shared/API/c/WKSecurityOriginRef.cpp:

(WKSecurityOriginCopyDatabaseIdentifier):

  • StorageProcess/ServiceWorker/WebSWOriginStore.cpp:

(WebKit::WebSWOriginStore::addToStore):
(WebKit::WebSWOriginStore::removeFromStore):

  • StorageProcess/ServiceWorker/WebSWOriginStore.h:
  • StorageProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::scheduleJobInServer):
(WebKit::WebSWServerConnection::registerServiceWorkerClient):

  • StorageProcess/ServiceWorker/WebSWServerToContextConnection.cpp:

(WebKit::WebSWServerToContextConnection::WebSWServerToContextConnection):

  • StorageProcess/ServiceWorker/WebSWServerToContextConnection.h:
  • StorageProcess/StorageProcess.cpp:

(WebKit::StorageProcess::connectionToContextProcessWasClosed):
(WebKit::StorageProcess::needsServerToContextConnectionForOrigin const):
(WebKit::StorageProcess::createStorageToWebProcessConnection):
(WebKit::StorageProcess::deleteWebsiteDataForOrigins):
(WebKit::StorageProcess::serverToContextConnectionForOrigin):
(WebKit::StorageProcess::createServerToContextConnection):
(WebKit::StorageProcess::swContextConnectionMayNoLongerBeNeeded):

  • StorageProcess/StorageProcess.h:
  • UIProcess/API/APIFrameInfo.cpp:

(API::FrameInfo::create):

  • UIProcess/API/C/WKApplicationCacheManager.cpp:

(WKApplicationCacheManagerDeleteEntriesForOrigin):

  • UIProcess/API/C/WKKeyValueStorageManager.cpp:

(WKKeyValueStorageManagerDeleteEntriesForOrigin):

  • UIProcess/API/C/WKResourceCacheManager.cpp:

(WKResourceCacheManagerClearCacheForOrigin):

  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp:

(WKWebsiteDataStoreRemoveFetchCacheForOrigin):
(WKWebsiteDataStoreGetFetchCacheSizeForOrigin):

  • UIProcess/ServiceWorkerProcessProxy.cpp:

(WebKit::ServiceWorkerProcessProxy::create):
(WebKit::ServiceWorkerProcessProxy::ServiceWorkerProcessProxy):
(WebKit::ServiceWorkerProcessProxy::getLaunchOptions):

  • UIProcess/ServiceWorkerProcessProxy.h:
  • UIProcess/Storage/StorageProcessProxy.cpp:

(WebKit::StorageProcessProxy::getStorageProcessConnection):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::establishWorkerContextConnectionToStorageProcess):
(WebKit::WebProcessPool::disconnectProcess):
(WebKit::WebProcessPool::updateProcessAssertions):

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

(WebKit::WebsiteDataStore::fetchDataAndApply):

  • WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp:

(WebKit::GeolocationPermissionRequestManager::startRequestForGeolocation):

  • WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:

(WKBundlePageCopyOriginsWithApplicationCache):

  • WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:

(WebKit::UserMediaPermissionRequestManager::sendUserMediaRequest):
(WebKit::UserMediaPermissionRequestManager::enumerateMediaDevices):

  • WebProcess/Storage/WebSWClientConnection.cpp:

(WebKit::WebSWClientConnection::registerServiceWorkerClient):
(WebKit::WebSWClientConnection::matchRegistration):
(WebKit::WebSWClientConnection::whenRegistrationReady):
(WebKit::WebSWClientConnection::getRegistrations):

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::exceededDatabaseQuota):
(WebKit::WebChromeClient::reachedApplicationCacheOriginQuota):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::fetchWebsiteData):

  • WebProcess/WebStorage/StorageAreaImpl.cpp:

(WebKit::StorageAreaImpl::securityOrigin const):

  • WebProcess/WebStorage/StorageAreaImpl.h:
  • WebProcess/WebStorage/StorageAreaMap.cpp:

(WebKit::StorageAreaMap::StorageAreaMap):
(WebKit::StorageAreaMap::dispatchSessionStorageEvent):
(WebKit::StorageAreaMap::dispatchLocalStorageEvent):

  • WebProcess/WebStorage/StorageNamespaceImpl.cpp:

(WebKit::StorageNamespaceImpl::didDestroyStorageAreaMap):

Source/WebKitLegacy:

Use SecurityOrigin::data() instead of SecurityOriginData::fromSecurityOrigin().

  • Storage/StorageTracker.cpp:

(WebKit::StorageTracker::diskUsageForOrigin):

Source/WebKitLegacy/mac:

Use SecurityOrigin::data() instead of SecurityOriginData::fromSecurityOrigin().

  • Storage/WebDatabaseManager.mm:

(-[WebDatabaseManager databasesWithOrigin:]):
(-[WebDatabaseManager deleteOrigin:]):
(-[WebDatabaseManager deleteDatabase:withOrigin:]):

  • Storage/WebDatabaseQuotaManager.mm:

(-[WebDatabaseQuotaManager usage]):
(-[WebDatabaseQuotaManager quota]):
(-[WebDatabaseQuotaManager setQuota:]):

  • Storage/WebStorageManager.mm:

(-[WebStorageManager deleteOrigin:]):

  • WebCoreSupport/WebSecurityOrigin.mm:

(-[WebSecurityOrigin databaseIdentifier]):
(-[WebSecurityOrigin usage]):
(-[WebSecurityOrigin quota]):
(-[WebSecurityOrigin setQuota:]):

Source/WebKitLegacy/win:

Use SecurityOrigin::data() instead of SecurityOriginData::fromSecurityOrigin().

  • WebDatabaseManager.cpp:

(WebDatabaseManager::databasesWithOrigin):
(WebDatabaseManager::deleteOrigin):
(WebDatabaseManager::deleteDatabase):
(WebDatabaseManager::setQuota):

  • WebSecurityOrigin.cpp:

(WebSecurityOrigin::usage):
(WebSecurityOrigin::quota):
(WebSecurityOrigin::setQuota):

10:55 AM Changeset in webkit [229978] by Brent Fulgham
  • 34 edits in trunk

Warn against cookie access in the WebContent process using ProcessPrivilege assertions
https://bugs.webkit.org/show_bug.cgi?id=183911
<rdar://problem/38762306>

Reviewed by Youenn Fablet.

Source/WebCore:

Add a set of ProcessPrivilege assertions to enforce the rule that the WebContent process
should never call Cookie API directly. That should only happen in the Networking or
UIProcess.

Add a new static flag to NetworkStorageSession that indicates if the current process has
permission to interact with the Cookie API.

No new tests since there is no change in behavior.

  • platform/network/NetworkStorageSession.cpp:

(WebCore::NetworkStorageSession::NetworkStorageSession):
(WebCore::NetworkStorageSession::processMayUseCookieAPI): Added.
(WebCore::NetworkStorageSession::permitProcessToUseCookieAPI): Added. This also adds
the appropriate flag to the ProcessPrivileges data for the current process.

  • platform/network/NetworkStorageSession.h:
  • platform/network/cf/NetworkStorageSessionCFNet.cpp:

(WebCore::createCFStorageSessionForIdentifier): Do not create cookie storage if the current
process is prohibited from interacting with the Cookie API.
(WebCore::NetworkStorageSession::NetworkStorageSession): Add assertions.
(WebCore::NetworkStorageSession::switchToNewTestingSession): Do not create cookie storage if
the current process is prohibited from interacting with the Cookie API.
(WebCore::NetworkStorageSession::defaultStorageSession): Ditto.
(WebCore::NetworkStorageSession::ensureSession): Ditto.
(WebCore::NetworkStorageSession::cookieStorage const): Ditto.

  • platform/network/cocoa/CookieStorageObserver.mm:

(WebCore::CookieStorageObserver::CookieStorageObserver): Assert if accessed from untrusted process.
(WebCore::CookieStorageObserver::startObserving): Ditto.
(WebCore::CookieStorageObserver::stopObserving): Ditto.

  • platform/network/cocoa/NetworkStorageSessionCocoa.mm:

(WebCore::NetworkStorageSession::setCookie):
(WebCore::NetworkStorageSession::setCookies):
(WebCore::NetworkStorageSession::deleteCookie):
(WebCore::nsCookiesToCookieVector):
(WebCore::NetworkStorageSession::getAllCookies):
(WebCore::NetworkStorageSession::getCookies):
(WebCore::NetworkStorageSession::flushCookieStore):
(WebCore::NetworkStorageSession::nsCookieStorage const):
(WebCore::createPrivateStorageSession):

  • platform/network/mac/CookieJarMac.mm:

(WebCore::httpCookies):
(WebCore::deleteHTTPCookie):
(WebCore::httpCookiesForURL):
(WebCore::filterCookies):
(WebCore::applyPartitionToCookies):
(WebCore::cookiesInPartitionForURL):
(WebCore::cookiesForSession):
(WebCore::setHTTPCookiesForURL):
(WebCore::deleteAllHTTPCookies):
(WebCore::setCookiesFromDOM):
(WebCore::httpCookieAcceptPolicy):
(WebCore::deleteCookie):
(WebCore::deleteCookiesForHostnames):
(WebCore::deleteAllCookiesModifiedSince):

Source/WebKit:

Add a set of ProcessPrivilege assertions to enforce the rule that the WebContent process
should never call Cookie API directly. That should only happen in the Networking or
UIProcess.

  • NetworkProcess/Cookies/mac/WebCookieManagerMac.mm:

(WebKit::WebCookieManager::platformSetHTTPCookieAcceptPolicy):
(WebKit::WebCookieManager::platformGetHTTPCookieAcceptPolicy):

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::initializeNetworkProcess):

  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:

(WebKit::NetworkDataTaskCocoa::applyCookieBlockingPolicy):

  • NetworkProcess/cocoa/NetworkProcessCocoa.mm:

(WebKit::NetworkProcess::setSharedHTTPCookieStorage):
(WebKit::NetworkProcess::syncAllCookies):

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(WebKit::NetworkSessionCocoa::NetworkSessionCocoa):

  • NetworkProcess/mac/RemoteNetworkingContext.mm:

(WebKit::RemoteNetworkingContext::ensureWebsiteDataStoreSession):

  • PluginProcess/PluginProcess.cpp:

(WebKit::PluginProcess::initializeProcess):

  • Shared/cf/CookieStorageUtilsCF.mm:

(WebKit::cookieStorageFromIdentifyingData):
(WebKit::identifyingDataFromCookieStorage):

  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:

(WebKit::WebProcessPool::platformInitializeWebProcess):
(WebKit::WebProcessPool::platformInitializeNetworkProcess):
(WebKit::privateBrowsingSession):

  • UIProcess/WebProcessPool.cpp:
  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::parameters):

  • UIProcess/mac/WebCookieManagerProxyMac.mm:

(WebKit::WebCookieManagerProxy::persistHTTPCookieAcceptPolicy):

  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::setPrivateBrowsingEnabled):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::createNetworkingContext):

  • WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:

(WebKit::WebFrameNetworkingContext::ensureWebsiteDataStoreSession):
(WebKit::WebFrameNetworkingContext::storageSession const):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::initializeProcess):

Source/WebKitLegacy/mac:

Initialize the ProcessPrivilege and Cookie API access levels for single-process use.

  • WebView/WebView.mm:

(+[WebView initialize]):

Source/WebKitLegacy/win:

Initialize the ProcessPrivilege and Cookie API access levels for single-process use.

  • WebView.cpp:

(WebView::WebView):

Source/WTF:

Extend the ProcessPrivilege API with the ability to add and remove individual
privileges.

  • wtf/ProcessPrivilege.cpp:

(WTF::addProcessPrivilege):
(WTF::removeProcessPrivilege):

  • wtf/ProcessPrivilege.h:

Tools:

Add a set of ProcessPrivilege assertions to enforce the rule that the WebContent process
should never call Cookie API directly. That should only happen in the Networking or
UIProcess.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(DumpRenderTreeMain):

  • TestWebKitAPI/TestsController.cpp:

(TestWebKitAPI::TestsController::TestsController):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::initialize):

10:38 AM Changeset in webkit [229977] by achristensen@apple.com
  • 23 edits in trunk/Source

Merge ResourceHandleClient::willCacheResponseAsync with ResourceHandleClient::willCacheResponse
https://bugs.webkit.org/show_bug.cgi?id=183965

Reviewed by Chris Dumez.

Source/WebCore:

It turns out that ResourceHandleClient::willCacheResponseAsync didn't do anything and the logic in
ResourceHandleClient::willCacheResponse was not being called. This makes it so there is one code
path and it executes the logic in ResourceHandleClient::willCacheResponse.

  • loader/EmptyFrameLoaderClient.h:
  • loader/FrameLoaderClient.h:
  • loader/ResourceLoader.h:
  • loader/SubresourceLoader.h:
  • loader/cocoa/SubresourceLoaderCocoa.mm:

(WebCore::SubresourceLoader::willCacheResponseAsync):
(WebCore::SubresourceLoader::willCacheResponse): Deleted.

  • loader/mac/ResourceLoaderMac.mm:

(WebCore::ResourceLoader::willCacheResponseAsync):
(WebCore::ResourceLoader::willCacheResponse): Deleted.

  • platform/network/ResourceHandle.h:
  • platform/network/ResourceHandleClient.cpp:

(WebCore::ResourceHandleClient::willCacheResponseAsync): Deleted.

  • platform/network/ResourceHandleClient.h:

(WebCore::ResourceHandleClient::willCacheResponseAsync):
(WebCore::ResourceHandleClient::shouldCacheResponse):
(WebCore::ResourceHandleClient::willCacheResponse): Deleted.

  • platform/network/cf/ResourceHandleCFNet.cpp:

(WebCore::ResourceHandle::continueWillCacheResponse): Deleted.

  • platform/network/cf/ResourceHandleCFURLConnectionDelegate.h:
  • platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:

(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::willCacheResponse):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::continueWillCacheResponse): Deleted.

  • platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.h:
  • platform/network/mac/ResourceHandleMac.mm:

(WebCore::ResourceHandle::continueWillCacheResponse): Deleted.

  • platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.h:
  • platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:

(-[WebCoreResourceHandleAsOperationQueueDelegate connection:willCacheResponse:]):
(-[WebCoreResourceHandleAsOperationQueueDelegate continueWillCacheResponse:]): Deleted.

Source/WebKit:

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::willCacheResponse const):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:

Source/WebKitLegacy/mac:

  • WebCoreSupport/WebFrameLoaderClient.h:
  • WebCoreSupport/WebFrameLoaderClient.mm:

(WebFrameLoaderClient::willCacheResponse const):

10:18 AM Changeset in webkit [229976] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark imported/mozilla/css-animations/test_animation-cancel.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=184011

Unreviewed test gardening.

10:03 AM Changeset in webkit [229975] by Alan Bujtas
  • 2 edits in trunk/Tools

[LayoutReloaded] Add InlineText DOM interface and dependencies
https://bugs.webkit.org/show_bug.cgi?id=184010

Reviewed by Antti Koivisto.

to help inline text layout.

  • LayoutReloaded/misc/LayoutReloadedWebKit.patch:
7:45 AM WebKitGTK/2.20.x edited by Michael Catanzaro
(diff)
7:30 AM Changeset in webkit [229974] by magomez@igalia.com
  • 2 edits in trunk/Source/WebCore

[GTK][WPE] Upload correct buffer in BitmapTextureGL::updateContents()
https://bugs.webkit.org/show_bug.cgi?id=184004

Reviewed by Žan Doberšek.

Do not upload the original buffer. Upload the result of creating a subImage buffer
if it was required.

Covered by existent tests.

  • platform/graphics/texmap/BitmapTextureGL.cpp:

(WebCore::BitmapTextureGL::updateContents):

2:49 AM WebKitGTK/2.20.x edited by Adrian Perez de Castro
(diff)
1:44 AM Changeset in webkit [229973] by Carlos Garcia Campos
  • 236 edits
    6 copies
    13 moves
    13 adds
    1 delete in trunk

[GTK][WPE] Add API to convert between DOM and JSCValue
https://bugs.webkit.org/show_bug.cgi?id=183448

Reviewed by Michael Catanzaro.

.:

Define FORWARDING_HEADERS_WPE_DOM_DIR.

  • Source/cmake/OptionsWPE.cmake:

Source/WebKit:

Add methods to get a JSCValue for a WebKitDOMObject and to create a WebKitDOMNode from a JSCValue. Deprecate
most of the GTK+ DOM bindings API and move the non-deprecated parts to glib dir to be exposed by WPE too.

  • PlatformGTK.cmake:
  • PlatformWPE.cmake:
  • SourcesGTK.txt:
  • SourcesWPE.txt:
  • UIProcess/API/gtk/docs/webkit2gtk-4.0-sections.txt:
  • WebProcess/InjectedBundle/API/glib/DOM/DOMObjectCache.cpp: Renamed from Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/DOMObjectCache.cpp.
  • WebProcess/InjectedBundle/API/glib/DOM/DOMObjectCache.h: Copied from Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/DOMObjectCache.h.
  • WebProcess/InjectedBundle/API/glib/DOM/WebKitDOMDocument.cpp: Added.

(WebKit::kit):
(WebKit::core):
(WebKit::wrapDocument):
(webkit_dom_document_class_init):
(webkit_dom_document_init):

  • WebProcess/InjectedBundle/API/glib/DOM/WebKitDOMDocumentPrivate.h: Copied from Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentPrivate.h.
  • WebProcess/InjectedBundle/API/glib/DOM/WebKitDOMElement.cpp: Added.

(WebKit::kit):
(WebKit::core):
(WebKit::wrapElement):
(webkit_dom_element_class_init):
(webkit_dom_element_init):
(webkit_dom_element_html_input_element_is_user_edited):
(webkit_dom_element_html_input_element_get_auto_filled):
(webkit_dom_element_html_input_element_set_auto_filled):
(webkit_dom_element_html_input_element_set_editing_value):

  • WebProcess/InjectedBundle/API/glib/DOM/WebKitDOMElementPrivate.h: Renamed from Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElementPrivate.h.
  • WebProcess/InjectedBundle/API/glib/DOM/WebKitDOMNode.cpp: Added.

(_WebKitDOMNodePrivate::~_WebKitDOMNodePrivate):
(WebKit::kit):
(WebKit::core):
(WebKit::wrapNode):
(webkitDOMNodeConstructor):
(webkitDOMNodeFinalize):
(webkit_dom_node_init):
(webkit_dom_node_class_init):
(webkitDOMNodeSetCoreObject):
(webkitDOMNodeGetCoreObject):
(webkit_dom_node_for_js_value):

  • WebProcess/InjectedBundle/API/glib/DOM/WebKitDOMNodePrivate.h: Copied from Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodePrivate.h.
  • WebProcess/InjectedBundle/API/glib/DOM/WebKitDOMObject.cpp: Renamed from Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMObject.cpp.

(webkitDOMObjectSetProperty):
(webkit_dom_object_class_init):

  • WebProcess/InjectedBundle/API/glib/DOM/WebKitDOMPrivate.cpp: Added.

(WebKit::wrap):

  • WebProcess/InjectedBundle/API/glib/DOM/WebKitDOMPrivate.h: Renamed from Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/DOMObjectCache.h.
  • WebProcess/InjectedBundle/API/glib/WebKitFrame.cpp:

(webkit_frame_get_js_value_for_dom_object):
(webkit_frame_get_js_value_for_dom_object_in_script_world):

  • WebProcess/InjectedBundle/API/glib/WebKitWebPage.cpp:

(webkit_web_page_class_init):
(webkitWebPageCreate):
(webkit_web_page_get_dom_document):

  • WebProcess/InjectedBundle/API/gtk/DOM/GObjectEventListener.cpp:

(WebKit::GObjectEventListener::handleEvent):

  • WebProcess/InjectedBundle/API/gtk/DOM/GObjectNodeFilterCondition.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/GObjectXPathNSResolver.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMAttr.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMAttr.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMBlob.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMBlob.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCDATASection.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCDATASection.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSRule.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSRule.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSRuleList.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSRuleList.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSStyleDeclaration.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSStyleDeclaration.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSStyleSheet.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSStyleSheet.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSValue.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCSSValue.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCharacterData.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCharacterData.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMClientRect.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMClientRect.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMClientRectList.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMClientRectList.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMComment.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMComment.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMImplementation.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMImplementation.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMSelection.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMSelection.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMTokenList.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMTokenList.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindow.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindow.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDeprecated.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocument.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentFragment.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentFragment.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentGtk.cpp: Renamed from Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocument.cpp.

(webkitDOMDocumentDOMEventTargetInit):
(webkitDOMDocumentInstallProperties):

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentType.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentType.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElementGtk.cpp: Renamed from Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMElement.cpp.

(webkitDOMElementDOMEventTargetInit):
(webkitDOMElementInstallProperties):

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMEvent.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMEvent.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMEventTarget.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMEventTarget.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMFile.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMFile.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMFileList.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMFileList.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAnchorElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAnchorElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAppletElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAppletElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAreaElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLAreaElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBRElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBRElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBaseElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBaseElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBodyElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBodyElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLButtonElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLButtonElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCanvasElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCanvasElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCollection.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCollection.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDListElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDListElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDirectoryElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDirectoryElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDivElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDivElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDocument.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLDocument.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLEmbedElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLEmbedElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFieldSetElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFieldSetElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFontElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFontElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFormElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFormElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFrameElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFrameElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFrameSetElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFrameSetElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHRElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHRElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHeadElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHeadElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHeadingElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHeadingElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHtmlElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLHtmlElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLIFrameElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLIFrameElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLImageElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLImageElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLInputElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLInputElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLIElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLIElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLabelElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLabelElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLegendElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLegendElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLinkElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLinkElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMapElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMapElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMarqueeElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMarqueeElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMenuElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMenuElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMetaElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLMetaElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLModElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLModElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOListElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOListElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLObjectElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLObjectElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptGroupElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptGroupElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionsCollection.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionsCollection.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLParagraphElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLParagraphElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLParamElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLParamElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLPreElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLPreElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLPrivate.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLQuoteElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLQuoteElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLScriptElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLScriptElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLSelectElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLSelectElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLStyleElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLStyleElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCaptionElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCaptionElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCellElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCellElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableColElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableColElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableRowElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableRowElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableSectionElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableSectionElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTextAreaElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTextAreaElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTitleElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTitleElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLUListElement.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLUListElement.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMKeyboardEvent.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMKeyboardEvent.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMediaList.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMediaList.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMouseEvent.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMMouseEvent.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNamedNodeMap.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNamedNodeMap.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNode.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeFilter.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeFilter.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeGtk.cpp: Renamed from Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNode.cpp.

(webkitDOMNodeDOMEventTargetInit):
(webkitDOMNodeInstallProperties):

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeIterator.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeIterator.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeList.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodeList.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMObject.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMPrivateGtk.cpp: Renamed from Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMPrivate.cpp.

(WebKit::wrapNodeGtk):

  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMPrivateGtk.h: Renamed from Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMPrivate.h.
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMProcessingInstruction.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMProcessingInstruction.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMRange.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMRange.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStyleSheet.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStyleSheet.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStyleSheetList.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMStyleSheetList.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMText.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMText.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMTreeWalker.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMTreeWalker.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMUIEvent.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMUIEvent.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMWheelEvent.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMWheelEvent.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathExpression.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathExpression.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathNSResolver.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathNSResolver.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathResult.cpp:
  • WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMXPathResult.h:
  • WebProcess/InjectedBundle/API/gtk/DOM/docs/webkitdomgtk-4.0-sections.txt:
  • WebProcess/InjectedBundle/API/gtk/WebKitFrame.h:
  • WebProcess/InjectedBundle/API/wpe/DOM/WebKitDOMDefines.h: Renamed from Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDocumentPrivate.h.
  • WebProcess/InjectedBundle/API/wpe/DOM/WebKitDOMDocument.h: Added.
  • WebProcess/InjectedBundle/API/wpe/DOM/WebKitDOMElement.h: Added.
  • WebProcess/InjectedBundle/API/wpe/DOM/WebKitDOMNode.h: Added.
  • WebProcess/InjectedBundle/API/wpe/DOM/WebKitDOMObject.h: Copied from Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMObject.h.
  • WebProcess/InjectedBundle/API/wpe/DOM/webkitdom.h: Renamed from Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMNodePrivate.h.
  • WebProcess/InjectedBundle/API/wpe/WebKitFrame.h:
  • WebProcess/InjectedBundle/API/wpe/WebKitWebHitTestResult.h: Added.
  • WebProcess/InjectedBundle/API/wpe/WebKitWebPage.h:
  • WebProcess/InjectedBundle/API/wpe/WebKitWebProcessEnumTypes.cpp.template: Added.
  • WebProcess/InjectedBundle/API/wpe/WebKitWebProcessEnumTypes.h.template: Copied from Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMObjectPrivate.h.
  • WebProcess/InjectedBundle/API/wpe/webkit-web-extension.h:

Tools:

Add unit tests for non-deprecated DOM API and switch existing tests to use non-deprecated API except for the
ones that test the deprecated API.

  • TestWebKitAPI/Tests/WebKitGLib/DOMElementTest.cpp: Added.

(DOMElementTest::create):
(DOMElementTest::testAutoFill):
(registerTests):

  • TestWebKitAPI/Tests/WebKitGLib/EditorTest.cpp: Added.

(WebKitWebEditorTest::create):
(WebKitWebEditorTest::selectionChangedCallback):
(WebKitWebEditorTest::testSelectionchanged):
(registerTests):

  • TestWebKitAPI/Tests/WebKitGLib/FrameTest.cpp:

(WebKitFrameTest::testJavaScriptValues):
(registerTests):

  • TestWebKitAPI/Tests/WebKitGLib/TestDOMElement.cpp: Renamed from Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMObjectPrivate.h.

(testWebKitDOMElementAutoFill):
(beforeAll):
(afterAll):

  • TestWebKitAPI/Tests/WebKitGLib/TestEditor.cpp: Renamed from Tools/TestWebKitAPI/Tests/WebKitGtk/TestEditor.cpp.
  • TestWebKitAPI/Tests/WebKitGLib/TestFrame.cpp:

(testWebKitFrameJavaScriptValues):
(beforeAll):

  • TestWebKitAPI/Tests/WebKitGLib/TestWebExtensions.cpp:

(inputElementIsUserEdited):
(testWebExtensionInputElementIsUserEdited):
(testWebExtensionFormSubmissionSteps):
(beforeAll):

  • TestWebKitAPI/Tests/WebKitGLib/WebExtensionTest.cpp:

(documentLoadedCallback):
(serializeNode):
(contextMenuCallback):
(consoleMessageSentCallback):
(formControlsAssociatedCallback):
(willSubmitFormCallback):
(pageCreatedCallback):
(methodCallCallback):

  • TestWebKitAPI/Tests/WebKitGLib/WebProcessTest.cpp:

(checkLeaks):
(webProcessTestRunnerFinalize):
(checkLeaksAtExit):

  • TestWebKitAPI/Tests/WebKitGtk/AutocleanupsTest.cpp:

(AutocleanupsTest::testWebProcessAutocleanups):

  • TestWebKitAPI/Tests/WebKitGtk/DOMClientRectTest.cpp:
  • TestWebKitAPI/Tests/WebKitGtk/DOMNodeFilterTest.cpp:
  • TestWebKitAPI/Tests/WebKitGtk/DOMNodeTest.cpp:
  • TestWebKitAPI/Tests/WebKitGtk/DOMXPathNSResolverTest.cpp:
  • TestWebKitAPI/Tests/WebKitGtk/EditorTest.cpp: Removed.
  • TestWebKitAPI/glib/CMakeLists.txt:
  • TestWebKitAPI/glib/PlatformGTK.cmake:
  • TestWebKitAPI/glib/PlatformWPE.cmake:
12:37 AM Changeset in webkit [229972] by zandobersek@gmail.com
  • 3 edits in trunk/Source/WebKit

[CoordGraphics] Clean up CoordinatedGraphicsScene construct-time initializations
https://bugs.webkit.org/show_bug.cgi?id=184002

Reviewed by Carlos Garcia Campos.

Move the CoordinatedGraphicsScene constant-expression initializations
from constructor to the point of declaration.

Default the CoordinatedGraphicsScene destructor.

The m_scrollPosition member variable is unused in this class, while the
similarly-named m_renderedContentsScrollPosition tracks scroll position
of the scene. Remove the latter and use m_scrollPosition in its place.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.cpp:

(WebKit::CoordinatedGraphicsScene::CoordinatedGraphicsScene):
(WebKit::CoordinatedGraphicsScene::adjustPositionForFixedLayers):
(WebKit::CoordinatedGraphicsScene::commitSceneState):
(WebKit::CoordinatedGraphicsScene::~CoordinatedGraphicsScene): Deleted.

  • Shared/CoordinatedGraphics/CoordinatedGraphicsScene.h:

Mar 25, 2018:

11:58 PM Changeset in webkit [229971] by Michael Catanzaro
  • 2 edits in trunk/Source/WebKit

[GTK] WebKitWebProcessEnumTypes.h missing from webkit-web-extension.h
https://bugs.webkit.org/show_bug.cgi?id=183998

Reviewed by Carlos Garcia Campos.

  • WebProcess/InjectedBundle/API/gtk/webkit-web-extension.h:
11:48 PM Changeset in webkit [229970] by Carlos Garcia Campos
  • 4 edits in trunk/Source/WebKit

[GTK] Unresolved type warnings when generating gir
https://bugs.webkit.org/show_bug.cgi?id=183926

Reviewed by Michael Catanzaro.

Skip deprecated functions using JSC C API from introspection.

  • UIProcess/API/glib/WebKitJavascriptResult.cpp:
  • UIProcess/API/glib/WebKitWebView.cpp:
  • WebProcess/InjectedBundle/API/glib/WebKitFrame.cpp:
11:38 PM Changeset in webkit [229969] by sbarati@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Fix typo in JSC option name
https://bugs.webkit.org/show_bug.cgi?id=184001

Reviewed by Mark Lam.

enableJITDebugAssetions => enableJITDebugAssertions.

  • assembler/MacroAssembler.cpp:

(JSC::MacroAssembler::jitAssert):

  • runtime/Options.h:
11:21 PM Changeset in webkit [229968] by zandobersek@gmail.com
  • 4 edits in trunk/Source/WebCore

[TexMap] Clean up TextureMapperPlatformLayer, TextureMapperBackingStore code
https://bugs.webkit.org/show_bug.cgi?id=183985

Reviewed by Michael Catanzaro.

Clean up TextureMapperPlatformLayer and TextureMapperBackingStore
headers and implementation files. Remove dubious whitespace, use #pragma
once, clean up constructors, destructors, method definitions and remove
unnecessary includes in favor of forward declarations where possible.

The TextureMapperPlatformLayer::swapBuffers() method is removed as it
wasn't called or overridden anywhere.

No new tests -- no change in functionality.

  • platform/graphics/texmap/TextureMapperBackingStore.cpp:
  • platform/graphics/texmap/TextureMapperBackingStore.h:

(WebCore::TextureMapperBackingStore::drawRepaintCounter):

  • platform/graphics/texmap/TextureMapperPlatformLayer.h:

(WebCore::TextureMapperPlatformLayer::setClient):
(WebCore::TextureMapperPlatformLayer::TextureMapperPlatformLayer): Deleted.
(WebCore::TextureMapperPlatformLayer::swapBuffers): Deleted.

10:56 PM Changeset in webkit [229967] by mitz@apple.com
  • 4 edits
    1 delete in trunk/Source/WebCore

[Xcode] Remove workaround only needed for deploying to iOS 10.0 and earlier
https://bugs.webkit.org/show_bug.cgi?id=183999

Reviewed by Sam Weinig.

  • Configurations/WebCore.xcconfig: Removed build settings.
  • Configurations/WebCoreTestSupport.xcconfig: Removed location of phony WebKitLegacy from frameworks search path.
  • Configurations/WebKitLegacyStub.iOS.tbd: Removed.
  • WebCore.xcodeproj/project.pbxproj: Removed script build phase from the Derived Sources target.
10:00 PM Changeset in webkit [229966] by commit-queue@webkit.org
  • 79 edits in trunk/Source

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

Caused many layout tests to crash on Apple High Sierra,
Sierra, iOS Simulator and GTK Linux Debug test bots (Requested
by dydz on #webkit).

Reverted changeset:

"Use SecurityOriginData more consistently in Service Worker
code"
https://bugs.webkit.org/show_bug.cgi?id=183969
https://trac.webkit.org/changeset/229954

9:22 PM WebKitGTK/2.20.x edited by Michael Catanzaro
(diff)
5:54 PM Changeset in webkit [229965] by clopez@igalia.com
  • 2 edits in trunk/Source/WTF

WebProcess memory monitor: use %zu format specifier for size_t
https://bugs.webkit.org/show_bug.cgi?id=183997

Reviewed by Michael Catanzaro.

usse %zu format specifier for size_t instead of %lu.

  • wtf/MemoryPressureHandler.cpp:

(WTF::MemoryPressureHandler::shrinkOrDie):
(WTF::MemoryPressureHandler::measurementTimerFired):

1:22 PM Changeset in webkit [229964] by BJ Burg
  • 4 edits in trunk/Source/WebKit

Web Automation: remove unnecessary member variable WebAutomationSession
https://bugs.webkit.org/show_bug.cgi?id=183971

Reviewed by Timothy Hatcher.

The concept of the "active" browsing context is something in the WebDriver
specification, but we were a bit too literal when first implementing this.
There's no actual need for this on the browser side since most commands
require implicitly switching to the target window passed in with the
Automation command. The driver, however, still needs to track the current
browsing context and current top-level browsing context.

For returning whether a browsing context is active, we can just look at
the page's activity state to know whether the page is active or not. For
a normal browser, only one page is going to be visible and focused at a time.

  • UIProcess/Automation/WebAutomationSession.h:
  • UIProcess/Automation/WebAutomationSession.cpp:

(WebKit::WebAutomationSession::buildBrowsingContextForPage):
Consult the page's activity state to determine whether it's active.

(WebKit::WebAutomationSession::createBrowsingContext):
(WebKit::WebAutomationSession::closeBrowsingContext):
(WebKit::WebAutomationSession::switchToBrowsingContext):
(WebKit::WebAutomationSession::handleRunOpenPanel):
Stop reading and writing the current browsing context handle.

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::isViewFocused const):
(WebKit::WebPageProxy::isViewWindowActive const):
Add new accessor.

1:22 PM Changeset in webkit [229963] by timothy_horton@apple.com
  • 3 edits in trunk/Source/WebKitLegacy/ios

Disable geolocation prompt in minimal simulator mode
https://bugs.webkit.org/show_bug.cgi?id=183991
<rdar://problem/38845774>

Reviewed by Dan Bernstein.

  • Misc/WebGeolocationCoreLocationProvider.mm:

(-[WebGeolocationCoreLocationProvider requestGeolocationAuthorization]):

  • Misc/WebGeolocationProviderIOS.mm:

(-[WebGeolocationProviderIOS registerWebView:]):
(-[WebGeolocationProviderIOS initializeGeolocationForWebView:listener:]):
Also clean up some unnecessary nested #ifs.

11:26 AM Changeset in webkit [229962] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

r228149 accidentally removed code that resets m_emptyCursor at the end of a GC
https://bugs.webkit.org/show_bug.cgi?id=183995

Reviewed by Filip Pizlo.

The removal of this line of code was unintended and happened during some
refactoring Fil was doing. The consequence of removing this line of code
is that the m_emptyCursor became a monotonically increasing integer, leading
the cursor to usually being out of bounds of the block range (depending on
what the program is doing). This made the functionality of finding an empty
block to steal almost always fail.

  • heap/BlockDirectory.cpp:

(JSC::BlockDirectory::prepareForAllocation):

10:09 AM Changeset in webkit [229961] by timothy_horton@apple.com
  • 7 edits in trunk/Source

Add and adopt ENABLE(AIRPLAY_PICKER)
https://bugs.webkit.org/show_bug.cgi?id=183992

Reviewed by Daniel Bates.

Source/WebKit:

  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView _showPlaybackTargetPicker:fromRect:]):

  • UIProcess/ios/forms/WKAirPlayRoutePicker.h:
  • UIProcess/ios/forms/WKAirPlayRoutePicker.mm:

Source/WTF:

  • wtf/FeatureDefines.h:
10:08 AM Changeset in webkit [229960] by timothy_horton@apple.com
  • 4 edits
    1 add in trunk/Source/WebKit

Move WKAnimationDelegate to its own header
https://bugs.webkit.org/show_bug.cgi?id=183976
<rdar://problem/38822299>

Reviewed by Dan Bernstein.

  • Shared/RemoteLayerTree/WKAnimationDelegate.h: Added.
  • UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.mm:

RemoteLayerTreeHost uses a forward declaration of WKAnimationDelegate,
so we're just getting lucky that an -invalidate method exists on
some other object. Instead, move WKAnimationDelegate to its own
header, and include it in the places we use it.

Mar 24, 2018:

11:19 PM Changeset in webkit [229959] by achristensen@apple.com
  • 15 edits in trunk/Source/WebCore

Use completion handlers for ResourceHandleClient::canAuthenticateAgainstProtectionSpaceAsync
https://bugs.webkit.org/show_bug.cgi?id=183966

Reviewed by Chris Dumez.

No change in behavior.

  • loader/ResourceLoader.cpp:

(WebCore::ResourceLoader::canAuthenticateAgainstProtectionSpaceAsync):

  • loader/ResourceLoader.h:
  • platform/network/BlobResourceHandle.cpp:
  • platform/network/PingHandle.h:
  • platform/network/ResourceHandle.h:
  • platform/network/ResourceHandleClient.h:
  • platform/network/SynchronousLoaderClient.cpp:

(WebCore::SynchronousLoaderClient::canAuthenticateAgainstProtectionSpaceAsync):

  • platform/network/SynchronousLoaderClient.h:
  • platform/network/cf/ResourceHandleCFURLConnectionDelegate.h:
  • platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:

(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::canRespondToProtectionSpace):

  • platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.h:
  • platform/network/mac/ResourceHandleMac.mm:

(WebCore::ResourceHandle::canAuthenticateAgainstProtectionSpace):
(WebCore::ResourceHandle::continueCanAuthenticateAgainstProtectionSpace): Deleted.

  • platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.h:
  • platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:

(-[WebCoreResourceHandleAsOperationQueueDelegate connection:canAuthenticateAgainstProtectionSpace:]):
(-[WebCoreResourceHandleAsOperationQueueDelegate continueCanAuthenticateAgainstProtectionSpace:]): Deleted.

9:32 PM Changeset in webkit [229958] by timothy_horton@apple.com
  • 6 edits in trunk/Source/WebKit

Adopt WK_PLATFORM_NAME in WebKit
https://bugs.webkit.org/show_bug.cgi?id=183978

Reviewed by Dan Bernstein.

  • Configurations/WebKit.xcconfig:
  • WebKit.xcodeproj/project.pbxproj:
  • mac/MigrateHeadersFromWebKitLegacy.make:
  • mac/postprocess-framework-headers.sh:
2:43 PM Changeset in webkit [229957] by Yusuke Suzuki
  • 24 edits
    4 adds in trunk

[DFG] Introduces fused compare and jump
https://bugs.webkit.org/show_bug.cgi?id=177100

Reviewed by Mark Lam.

JSTests:

  • stress/fused-jeq-slow.js: Added.

(shouldBe):
(testJEQ):
(testJNEQB):
(testJEQB):
(testJNEQF):
(testJEQF):

  • stress/fused-jeq.js: Added.

(shouldBe):
(testJEQ):
(testJNEQB):
(testJEQB):
(testJNEQF):
(testJEQF):

  • stress/fused-jstricteq-slow.js: Added.

(shouldBe):
(testJSTRICTEQ):
(testJNSTRICTEQB):
(testJSTRICTEQB):
(testJNSTRICTEQF):
(testJSTRICTEQF):

  • stress/fused-jstricteq.js: Added.

(shouldBe):
(testJSTRICTEQ):
(testJNSTRICTEQB):
(testJSTRICTEQB):
(testJNSTRICTEQF):
(testJSTRICTEQF):

Source/JavaScriptCore:

This patch introduces op_jeq, op_jneq, op_jstricteq, and op_jnstricteq.
It offers 3 benefit.

  1. They are introduced due to the similar purpose to op_jless etc. It aligns

op_eq families to op_jless families.

  1. It reduces the size of bytecode to represent the typical code sequence.
  1. It offers the way to fuse check and jump in DFG code generation. Since

we have MovHint between Branch and CompareEq/CompareStrictEq previously,
we cannot do this optimization. It reduces the machine code size in DFG too.

It slightly improves Octane/boyer.

boyer 6.18038+-0.05002 6.06990+-0.04176 definitely 1.0182x faster

  • bytecode/BytecodeDumper.cpp:

(JSC::BytecodeDumper<Block>::dumpBytecode):

  • bytecode/BytecodeList.json:
  • bytecode/BytecodeUseDef.h:

(JSC::computeUsesForBytecodeOffset):
(JSC::computeDefsForBytecodeOffset):

  • bytecode/Opcode.h:

(JSC::isBranch):

  • bytecode/PreciseJumpTargetsInlines.h:

(JSC::extractStoredJumpTargetsForBytecodeOffset):

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::emitJumpIfTrue):
(JSC::BytecodeGenerator::emitJumpIfFalse):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseBlock):

  • dfg/DFGCapabilities.cpp:

(JSC::DFG::capabilityLevel):

  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileStrictEq):

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):

  • jit/JIT.h:
  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_jeq):
(JSC::JIT::emit_op_neq):
(JSC::JIT::emit_op_jneq):
(JSC::JIT::compileOpStrictEq):
(JSC::JIT::emit_op_stricteq):
(JSC::JIT::emit_op_nstricteq):
(JSC::JIT::compileOpStrictEqJump):
(JSC::JIT::emit_op_jstricteq):
(JSC::JIT::emit_op_jnstricteq):
(JSC::JIT::emitSlow_op_jstricteq):
(JSC::JIT::emitSlow_op_jnstricteq):
(JSC::JIT::emitSlow_op_jeq):
(JSC::JIT::emitSlow_op_jneq):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emitSlow_op_eq):
(JSC::JIT::emit_op_jeq):
(JSC::JIT::compileOpEqJumpSlow):
(JSC::JIT::emitSlow_op_jeq):
(JSC::JIT::emit_op_jneq):
(JSC::JIT::emitSlow_op_jneq):
(JSC::JIT::compileOpStrictEq):
(JSC::JIT::emit_op_stricteq):
(JSC::JIT::emit_op_nstricteq):
(JSC::JIT::compileOpStrictEqJump):
(JSC::JIT::emit_op_jstricteq):
(JSC::JIT::emit_op_jnstricteq):
(JSC::JIT::emitSlow_op_jstricteq):
(JSC::JIT::emitSlow_op_jnstricteq):

  • jit/JITOperations.cpp:
  • jit/JITOperations.h:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LLIntSlowPaths.h:
  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
2:23 PM Changeset in webkit [229956] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

Ignore sandbox_init_with_parameters deprecation warnings
https://bugs.webkit.org/show_bug.cgi?id=183979

Reviewed by Dan Bernstein.

  • Shared/ios/ChildProcessIOS.mm:

(WebKit::ChildProcess::initializeSandbox):

1:46 PM Changeset in webkit [229955] by Jonathan Bedard
  • 4 edits in trunk/Tools

webkitpy: Unrecognized mac versions always use WebKitTestRunner
https://bugs.webkit.org/show_bug.cgi?id=183681
<rdar://problem/38509162>

Reviewed by Daniel Bates.

When an unrecognized version is used, we were unconditionally adding '-wk2'
to the mac version name. This would mean that the port object would always
use WebKitTestRunner as the driver, even if DumpRenderTree was explicitly
requested.

  • Scripts/webkitpy/port/apple.py:

(ApplePort.determine_full_port_name): Only add wk2 to port names if
WebKitTestRunner is specified.

  • Scripts/webkitpy/port/mac.py:

(MacPort.init): Compare length of split string, and do not treat wk2 as a
version name.

  • Scripts/webkitpy/port/mac_unittest.py:

(MacTest):
(MacTest.test_factory_with_future_version): Confirm that future versions correctly
assign the driver and have undefined version names.
(MacTest.test_factory_with_portname_version): Confirm that general versions correctly assign
the driver and have defined versions.
(MacTest.test_factory_with_portname_wk2): Ensure that mac ports ending in 'wk2' set
the driver to be WebKitTestRunner even if webkit_test_runner=False.

12:54 PM Changeset in webkit [229954] by Chris Dumez
  • 79 edits in trunk/Source

Use SecurityOriginData more consistently in Service Worker code
https://bugs.webkit.org/show_bug.cgi?id=183969

Reviewed by Darin Adler.

Source/WebCore:

Use SecurityOriginData more consistently in Service Worker code to avoid constructing
SecurityOrigin objects unnecessarily.

I also updated SecurityOrigin to use SecurityOriginData as a data member. This reduces
code duplication a bit. This also avoids constructing SecurityOriginData unnecessarily
in some cases as callers can now use SecurityOrigin::data() instead of
SecurityOriginData::fromSecurityOrigin().

No new tests, no Web-facing behavior change.

  • Modules/cache/DOMCacheStorage.cpp:

(WebCore::DOMCacheStorage::origin const):

  • Modules/encryptedmedia/CDM.cpp:

(WebCore::CDM::storageDirectory const):

  • Modules/encryptedmedia/MediaKeySession.cpp:

(WebCore::MediaKeySession::mediaKeysStorageDirectory const):

  • Modules/encryptedmedia/legacy/WebKitMediaKeySession.cpp:

(WebCore::WebKitMediaKeySession::mediaKeysStorageDirectory const):

  • Modules/indexeddb/IDBFactory.cpp:

(WebCore::IDBFactory::openInternal):
(WebCore::IDBFactory::deleteDatabase):

  • Modules/indexeddb/client/IDBConnectionToServer.cpp:

(WebCore::IDBClient::IDBConnectionToServer::getAllDatabaseNames):

  • Modules/webdatabase/Database.cpp:

(WebCore::Database::securityOrigin):

  • Modules/webdatabase/DatabaseContext.cpp:

(WebCore::DatabaseContext::securityOrigin const):

  • Modules/webdatabase/DatabaseContext.h:
  • Modules/webdatabase/DatabaseManager.cpp:

(WebCore::DatabaseManager::fullPathForDatabase):
(WebCore::DatabaseManager::detailsForNameAndOrigin):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::mediaPlayerMediaKeysStorageDirectory const):

  • inspector/agents/InspectorDOMStorageAgent.cpp:

(WebCore::InspectorDOMStorageAgent::findStorageArea):

  • loader/appcache/ApplicationCacheStorage.cpp:

(WebCore::ApplicationCacheStorage::calculateQuotaForOrigin):
(WebCore::ApplicationCacheStorage::calculateUsageForOrigin):
(WebCore::ApplicationCacheStorage::calculateRemainingSizeForOriginExcludingCache):
(WebCore::ApplicationCacheStorage::storeUpdatedQuotaForOrigin):
(WebCore::ApplicationCacheStorage::store):
(WebCore::ApplicationCacheStorage::ensureOriginRecord):

  • page/DOMWindow.cpp:

(WebCore:: const):

  • page/SecurityOrigin.cpp:

(WebCore::SecurityOrigin::SecurityOrigin):
(WebCore::SecurityOrigin::isPotentiallyTrustworthy const):
(WebCore::SecurityOrigin::canAccess const):
(WebCore::SecurityOrigin::canDisplay const):
(WebCore::SecurityOrigin::domainForCachePartition const):
(WebCore::SecurityOrigin::isLocal const):
(WebCore::SecurityOrigin::toString const):
(WebCore::SecurityOrigin::toRawString const):
(WebCore::SecurityOrigin::create):
(WebCore::SecurityOrigin::isSameSchemeHostPort const):

  • page/SecurityOrigin.h:

(WebCore::SecurityOrigin::protocol const):
(WebCore::SecurityOrigin::host const):
(WebCore::SecurityOrigin::port const):
(WebCore::SecurityOrigin::data const):
(WebCore::SecurityOrigin::isHTTPFamily const):

  • page/SecurityOriginData.cpp:

(WebCore::SecurityOriginData::toString const):
(WebCore::SecurityOriginData::fromFrame):

  • page/SecurityOriginData.h:

(WebCore::SecurityOriginData::fromURL):

  • storage/StorageNamespaceProvider.cpp:

(WebCore::StorageNamespaceProvider::localStorageArea):

  • testing/Internals.cpp:

(WebCore::Internals::clearCacheStorageMemoryRepresentation):

  • workers/service/ServiceWorkerContainer.cpp:

(WebCore::ServiceWorkerContainer::addRegistration):
(WebCore::ServiceWorkerContainer::removeRegistration):
(WebCore::ServiceWorkerContainer::updateRegistration):

  • workers/service/ServiceWorkerRegistrationKey.cpp:

(WebCore::ServiceWorkerRegistrationKey::relatesToOrigin const):

  • workers/service/ServiceWorkerRegistrationKey.h:
  • workers/service/server/SWOriginStore.cpp:

(WebCore::SWOriginStore::add):
(WebCore::SWOriginStore::remove):
(WebCore::SWOriginStore::clear):

  • workers/service/server/SWOriginStore.h:
  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::addRegistration):
(WebCore::SWServer::removeRegistration):
(WebCore::SWServer::clear):
(WebCore::SWServer::tryInstallContextData):
(WebCore::SWServer::serverToContextConnectionCreated):
(WebCore::SWServer::markAllWorkersForOriginAsTerminated):
(WebCore::SWServer::unregisterServiceWorkerClient):
(WebCore::SWServer::needsServerToContextConnectionForOrigin const):

  • workers/service/server/SWServer.h:
  • workers/service/server/SWServerToContextConnection.cpp:

(WebCore::SWServerToContextConnection::SWServerToContextConnection):
(WebCore::SWServerToContextConnection::~SWServerToContextConnection):
(WebCore::SWServerToContextConnection::connectionForOrigin):

  • workers/service/server/SWServerToContextConnection.h:

(WebCore::SWServerToContextConnection::securityOrigin const):

  • workers/service/server/SWServerWorker.cpp:

(WebCore::SWServerWorker::origin const):
(WebCore::SWServerWorker::securityOrigin const):

  • workers/service/server/SWServerWorker.h:

Source/WebKit:

Use SecurityOriginData more consistently in Service Worker code to avoid constructing
SecurityOrigin objects unnecessarily.

  • NetworkProcess/NetworkResourceLoadParameters.cpp:

(WebKit::NetworkResourceLoadParameters::encode const):

  • Shared/API/c/WKSecurityOriginRef.cpp:

(WKSecurityOriginCopyDatabaseIdentifier):

  • StorageProcess/ServiceWorker/WebSWOriginStore.cpp:

(WebKit::WebSWOriginStore::addToStore):
(WebKit::WebSWOriginStore::removeFromStore):

  • StorageProcess/ServiceWorker/WebSWOriginStore.h:
  • StorageProcess/ServiceWorker/WebSWServerConnection.cpp:

(WebKit::WebSWServerConnection::scheduleJobInServer):
(WebKit::WebSWServerConnection::registerServiceWorkerClient):

  • StorageProcess/ServiceWorker/WebSWServerToContextConnection.cpp:

(WebKit::WebSWServerToContextConnection::WebSWServerToContextConnection):

  • StorageProcess/ServiceWorker/WebSWServerToContextConnection.h:
  • StorageProcess/StorageProcess.cpp:

(WebKit::StorageProcess::connectionToContextProcessWasClosed):
(WebKit::StorageProcess::needsServerToContextConnectionForOrigin const):
(WebKit::StorageProcess::createStorageToWebProcessConnection):
(WebKit::StorageProcess::deleteWebsiteDataForOrigins):
(WebKit::StorageProcess::serverToContextConnectionForOrigin):
(WebKit::StorageProcess::createServerToContextConnection):
(WebKit::StorageProcess::swContextConnectionMayNoLongerBeNeeded):

  • StorageProcess/StorageProcess.h:
  • UIProcess/API/APIFrameInfo.cpp:

(API::FrameInfo::create):

  • UIProcess/API/C/WKApplicationCacheManager.cpp:

(WKApplicationCacheManagerDeleteEntriesForOrigin):

  • UIProcess/API/C/WKKeyValueStorageManager.cpp:

(WKKeyValueStorageManagerDeleteEntriesForOrigin):

  • UIProcess/API/C/WKResourceCacheManager.cpp:

(WKResourceCacheManagerClearCacheForOrigin):

  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp:

(WKWebsiteDataStoreRemoveFetchCacheForOrigin):
(WKWebsiteDataStoreGetFetchCacheSizeForOrigin):

  • UIProcess/ServiceWorkerProcessProxy.cpp:

(WebKit::ServiceWorkerProcessProxy::create):
(WebKit::ServiceWorkerProcessProxy::ServiceWorkerProcessProxy):
(WebKit::ServiceWorkerProcessProxy::getLaunchOptions):

  • UIProcess/ServiceWorkerProcessProxy.h:
  • UIProcess/Storage/StorageProcessProxy.cpp:

(WebKit::StorageProcessProxy::getStorageProcessConnection):

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::establishWorkerContextConnectionToStorageProcess):
(WebKit::WebProcessPool::disconnectProcess):
(WebKit::WebProcessPool::updateProcessAssertions):

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

(WebKit::WebsiteDataStore::fetchDataAndApply):

  • WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp:

(WebKit::GeolocationPermissionRequestManager::startRequestForGeolocation):

  • WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:

(WKBundlePageCopyOriginsWithApplicationCache):

  • WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:

(WebKit::UserMediaPermissionRequestManager::sendUserMediaRequest):
(WebKit::UserMediaPermissionRequestManager::enumerateMediaDevices):

  • WebProcess/Storage/WebSWClientConnection.cpp:

(WebKit::WebSWClientConnection::registerServiceWorkerClient):
(WebKit::WebSWClientConnection::matchRegistration):
(WebKit::WebSWClientConnection::whenRegistrationReady):
(WebKit::WebSWClientConnection::getRegistrations):

  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::exceededDatabaseQuota):
(WebKit::WebChromeClient::reachedApplicationCacheOriginQuota):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::fetchWebsiteData):

  • WebProcess/WebStorage/StorageAreaImpl.cpp:

(WebKit::StorageAreaImpl::securityOrigin const):

  • WebProcess/WebStorage/StorageAreaImpl.h:
  • WebProcess/WebStorage/StorageAreaMap.cpp:

(WebKit::StorageAreaMap::StorageAreaMap):
(WebKit::StorageAreaMap::dispatchSessionStorageEvent):
(WebKit::StorageAreaMap::dispatchLocalStorageEvent):

  • WebProcess/WebStorage/StorageNamespaceImpl.cpp:

(WebKit::StorageNamespaceImpl::didDestroyStorageAreaMap):

Source/WebKitLegacy:

Use SecurityOrigin::data() instead of SecurityOriginData::fromSecurityOrigin().

  • Storage/StorageTracker.cpp:

(WebKit::StorageTracker::diskUsageForOrigin):

Source/WebKitLegacy/mac:

Use SecurityOrigin::data() instead of SecurityOriginData::fromSecurityOrigin().

  • Storage/WebDatabaseManager.mm:

(-[WebDatabaseManager databasesWithOrigin:]):
(-[WebDatabaseManager deleteOrigin:]):
(-[WebDatabaseManager deleteDatabase:withOrigin:]):

  • Storage/WebDatabaseQuotaManager.mm:

(-[WebDatabaseQuotaManager usage]):
(-[WebDatabaseQuotaManager quota]):
(-[WebDatabaseQuotaManager setQuota:]):

  • Storage/WebStorageManager.mm:

(-[WebStorageManager deleteOrigin:]):

  • WebCoreSupport/WebSecurityOrigin.mm:

(-[WebSecurityOrigin databaseIdentifier]):
(-[WebSecurityOrigin usage]):
(-[WebSecurityOrigin quota]):
(-[WebSecurityOrigin setQuota:]):

Source/WebKitLegacy/win:

Use SecurityOrigin::data() instead of SecurityOriginData::fromSecurityOrigin().

  • WebDatabaseManager.cpp:

(WebDatabaseManager::databasesWithOrigin):
(WebDatabaseManager::deleteOrigin):
(WebDatabaseManager::deleteDatabase):
(WebDatabaseManager::setQuota):

  • WebSecurityOrigin.cpp:

(WebSecurityOrigin::usage):
(WebSecurityOrigin::quota):
(WebSecurityOrigin::setQuota):

12:29 PM Changeset in webkit [229953] by Yusuke Suzuki
  • 3 edits in trunk/Source/JavaScriptCore

[JSC] Improve constants and add comments for CodeBlockHash
https://bugs.webkit.org/show_bug.cgi?id=183982

Rubber-stamped by Mark Lam.

  • bytecode/CodeBlockHash.cpp:

(JSC::CodeBlockHash::CodeBlockHash):

  • bytecode/ParseHash.cpp:

(JSC::ParseHash::ParseHash):

12:04 PM Changeset in webkit [229952] by Yusuke Suzuki
  • 9 edits
    2 copies in trunk/Source/JavaScriptCore

[JSC] Add options to report parsing and bytecode compiling times
https://bugs.webkit.org/show_bug.cgi?id=183982

Reviewed by Mark Lam.

This patch adds reportParseTimes and reportBytecodeCompileTimes options.
When they are enabled, JSC reports times consumed for parsing and bytecode
compiling.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Sources.txt:
  • bytecode/ParseHash.cpp: Added.

(JSC::ParseHash::ParseHash):

  • bytecode/ParseHash.h: Added.

(JSC::ParseHash::hashForCall const):
(JSC::ParseHash::hashForConstruct const):

  • bytecode/UnlinkedFunctionExecutable.cpp:

(JSC::generateUnlinkedFunctionCodeBlock):

  • bytecompiler/BytecodeGenerator.h:

(JSC::BytecodeGenerator::generate):

  • parser/Parser.h:

(JSC::parse):

  • runtime/CodeCache.h:

(JSC::generateUnlinkedCodeBlock):

  • runtime/Options.h:
10:10 AM Changeset in webkit [229951] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

[JIT] Drop ENABLE_JIT_VERBOSE flag
https://bugs.webkit.org/show_bug.cgi?id=183983

Reviewed by Mark Lam.

Just use JITInternal::verbose value.

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):
(JSC::JIT::privateCompileSlowCases):
(JSC::JIT::link):

2:55 AM Changeset in webkit [229950] by timothy_horton@apple.com
  • 5 edits in trunk/Source/WebKit

Fix the !ENABLE(MEDIA_STREAM) build
https://bugs.webkit.org/show_bug.cgi?id=183977

Reviewed by Wenson Hsieh.

  • UIProcess/Cocoa/UIDelegate.mm:

(WebKit::UIDelegate::UIClient::decidePolicyForUserMediaPermissionRequest):

  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.messages.in:
  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:
  • WebProcess/cocoa/UserMediaCaptureManager.messages.in:
2:45 AM Changeset in webkit [229949] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit

WKFileUploadPanel shouldn't depend on WebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=183981

Reviewed by Wenson Hsieh.

  • UIProcess/ios/forms/WKFileUploadPanel.mm:

(-[WKFileUploadPanel _uploadItemForImageData:imageName:successBlock:failureBlock:]):
Just use the underlying WebCore function instead of the
unnecessary NSFileManager category method.

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

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

not actually necessary (Requested by thorton on #webkit).

Reverted changeset:

"Fix the build"
https://trac.webkit.org/changeset/229792

1:16 AM Changeset in webkit [229947] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKitLegacy/mac

Fix the build

  • WebView/WebView.mm:
12:06 AM Changeset in webkit [229946] by zandobersek@gmail.com
  • 2 edits in trunk/Tools

Fix the run-benchmark script, properly specifying the plan directory
where the Skipped file is located.

Rubber-stamped by Carlos Alberto Lopez Perez.

  • Scripts/webkitpy/benchmark_runner/run_benchmark.py:

(start):

Mar 23, 2018:

11:27 PM Changeset in webkit [229945] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Fix the geolocation build
https://bugs.webkit.org/show_bug.cgi?id=183975

  • Modules/geolocation/ios/GeolocationPositionIOS.mm:

(WebCore::GeolocationPosition::GeolocationPosition):

11:26 PM Changeset in webkit [229944] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore/PAL

Fix the !HAVE(APP_LINKS) build
https://bugs.webkit.org/show_bug.cgi?id=183974

Reviewed by Dan Bernstein.

  • pal/spi/cocoa/LaunchServicesSPI.h:

This header is not very !HAVE(APP_LINKS) friendly.

10:56 PM Changeset in webkit [229943] by timothy_horton@apple.com
  • 15 edits in trunk

Fix the build with no pasteboard
https://bugs.webkit.org/show_bug.cgi?id=183973

Reviewed by Dan Bernstein.

  • .../Configurations/FeatureDefines.xcconfig:
  • WebView/WebView.mm:

(-[WebView _requestStartDataInteraction:globalPosition:]):
(-[WebView _getDataInteractionData]):
(-[WebView _dataOperationTextIndicator]):
(-[WebView _dragSourceAction]):
(-[WebView _draggedLinkTitle]):
(-[WebView _draggedLinkURL]):
(-[WebView _draggedElementBounds]):
(-[WebView _enteredDataInteraction:client:global:operation:]):
(-[WebView _updatedDataInteraction:client:global:operation:]):
(-[WebView _exitedDataInteraction:client:global:operation:]):
(-[WebView _performDataInteraction:client:global:operation:]):
(-[WebView _tryToPerformDataInteraction:client:global:operation:]):
(-[WebView _endedDataInteraction:global:]):
(-[WebView _dataInteractionCaretRect]):

  • WebView/WebViewPrivate.h:
7:30 PM Changeset in webkit [229942] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKitLegacy/mac

Adopt WK_ALTERNATE_FRAMEWORKS_DIR in WebKitLegacy and update install name
https://bugs.webkit.org/show_bug.cgi?id=183960
<rdar://problem/38812356>

Reviewed by Dan Bernstein.

  • Configurations/WebKitLegacy.xcconfig:
6:26 PM Changeset in webkit [229941] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Styles: don't show checkboxes for invalid properties
https://bugs.webkit.org/show_bug.cgi?id=183951
<rdar://problem/38807602>

Reviewed by Matt Baker.

Since toggling of invalid properties isn't supported by the backend, don't show checkboxes for invalid properties.

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:

(.spreadsheet-css-declaration:matches(:hover, :focus) .property:not(:matches(.invalid-name, .invalid-value)) .property-toggle,):
(.spreadsheet-css-declaration:matches(:hover, :focus) .property-toggle,): Deleted.
Don't show checkboxes for invalid properties but still show them for duplicate properties.

6:17 PM Changeset in webkit [229940] by Megan Gardner
  • 2 edits in trunk/Source/WebKit

Enable unified text selection in select cases for gradual testing
https://bugs.webkit.org/show_bug.cgi?id=183967
<rdar://problem/38815328>

Reviewed by Tim Horton.

Enable in select places for a more gradual switch, as this is a big change and we want to make sure
it works before switching completely.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView useSelectionAssistantWithGranularity:]):

5:33 PM Changeset in webkit [229939] by Wenson Hsieh
  • 4 edits in trunk/Source/WebCore

[Extra zoom mode] Fix some localizable strings after r229878
https://bugs.webkit.org/show_bug.cgi?id=183963

Reviewed by Tim Horton.

The WEB_UI_STRING macro was incorrectly used for certain localized strings pertaining to extra zoom mode. To
correct this, make the "Done" string use WEB_UI_STRING with actual UI-facing text; since day, year and month
labels in the date picker are less generalizable to other UI, leave these as unique keys, but change them to
use WEB_UI_STRING_KEY instead.

Additionally, remove now-unused localizable strings for the text input view controller.

  • English.lproj/Localizable.strings:
  • platform/LocalizedStrings.cpp:

(WebCore::formControlDoneButtonTitle):
(WebCore::datePickerDayLabelTitle):
(WebCore::datePickerMonthLabelTitle):
(WebCore::datePickerYearLabelTitle):

5:00 PM Changeset in webkit [229938] by timothy_horton@apple.com
  • 4 edits in trunk/Source

Introduce and adopt HAVE(AUDIO_TOOLBOX_AUDIO_SESSION)
https://bugs.webkit.org/show_bug.cgi?id=183954
<rdar://problem/38808858>

Reviewed by Dan Bernstein.

  • wtf/Platform.h:
  • WebView/WebPreferences.mm:

(-[WebPreferences setAudioSessionCategoryOverride:]):

4:49 PM Changeset in webkit [229937] by youenn@apple.com
  • 31 edits
    97 copies
    1127 adds in trunk

Update WPT tools to a1ec330
https://bugs.webkit.org/show_bug.cgi?id=183934

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • resources/config.json:
  • resources/import-expectations.json:
  • web-platform-tests/config.default.json:
  • web-platform-tests/tools/: Refreshed.

Tools:

Update script to run WPT server according updated WPT tools.

  • Scripts/webkitpy/layout_tests/servers/web_platform_test_launcher.py:

(main):

  • Scripts/webkitpy/layout_tests/servers/web_platform_test_server.py:

(base_http_url):
(base_https_url):

4:48 PM Changeset in webkit [229936] by wilander@apple.com
  • 2 edits in trunk/Source/WebKit

Resource Load Statistics: Pick up ITP debug mode flag from defaults
https://bugs.webkit.org/show_bug.cgi?id=183956
<rdar://problem/38559574>

Reviewed by Brent Fulgham.

  • UIProcess/Cocoa/WebResourceLoadStatisticsStoreCocoa.mm:

(WebKit::WebResourceLoadStatisticsStore::registerUserDefaultsIfNeeded):

4:46 PM Changeset in webkit [229935] by Chris Dumez
  • 2 edits in trunk/Source/WebCore

NetworkStateNotifier::updateStateWithoutNotifying() is inefficient
https://bugs.webkit.org/show_bug.cgi?id=183760
<rdar://problem/37093299>

Reviewed by Ryosuke Niwa.

Update NetworkStateNotifier::updateStateWithoutNotifying() to stop calling
SCDynamicStoreCopyKeyList(). SCDynamicStoreCopyKeyList() is expensive as it
expects its key parameter to be a regular expression and it can match several
keys. It is also unnecessary in our case since we already have an exact key.
We now call the more efficient SCDynamicStoreCopyValue() instead, which is
the right thing to call when we have an exact key.

This change was suggested by the SC team.

This was tested manually as there is no easy way to write an automated test
for this.

In a follow-up, I also plan to call this code in the UIProcess (or NetworkProcess)
to avoid calling it once per WebProcess.

  • platform/network/mac/NetworkStateNotifierMac.cpp:

(WebCore::NetworkStateNotifier::updateStateWithoutNotifying):

4:41 PM Changeset in webkit [229934] by Chris Dumez
  • 2 edits in trunk/Source/WebKitLegacy/win

Unreviewed attempt to fix Windows build after r229926.

  • WebView.cpp:
4:37 PM Changeset in webkit [229933] by dbates@webkit.org
  • 3 edits
    4 deletes in trunk

Unreviewed, rolling out r229868.

Caused media controls tests to timeout. Will investigate
offline.

Reverted changeset:

"CSS mask images should be retrieved using potentially CORS-
enabled fetch"
https://bugs.webkit.org/show_bug.cgi?id=179983
https://trac.webkit.org/changeset/229868

4:35 PM Changeset in webkit [229932] by BJ Burg
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: add WebKitAdditions hooks for WebInspectorUI
https://bugs.webkit.org/show_bug.cgi?id=183940
<rdar://problem/38796310>

Reviewed by Timothy Hatcher.

  • Scripts/combine-resources.pl:

(debugLog): Added. Leave in the logging I used to debug this.

(concatenateIncludedFilesMatchingPattern):
(stripIncludedFilesMatchingPattern):
(concatenateFiles): Deleted.
This function tried to do too many things. Split it into
two functions, one for stripping includes and one for concatenating
files referenced by includes.

Lastly, add a negative lookahead clause for 'WebKitAdditions' so includes
containing that string are not combined when no input directory is passed
to the script.

  • Scripts/copy-user-interface-resources.pl:

WebKitAdditions is computed either from BUILT_PRODUCTS_DIR or SDKROOT,
depending on the build style. Just try them in order and use the first
one that exists. WebInspectorUI files are in their own directory, so
we can assume there are files to process if that directory exists.

Copy Main.html to derived sources before doing any processing on it.
This makes all combining phases have the same --input-html argument.

(debugLog): Added. Leave in the logging I used to debug this.

(combineOrStripResourcesForWebKitAdditions):
(stripResourcesForWebKitAdditions):
(combineResourcesForWebKitAdditions):
Determine if WebKitAdditions exists and whether there are any
resources for WebInspectorUI present that need to be processed.

  • UserInterface/Main.html:

Add stub .js and .css WebKitAdditions files. We can add more later
if it makes sense but this is good enough to validate the build machinery.

4:28 PM Changeset in webkit [229931] by mark.lam@apple.com
  • 62 edits in trunk/Source/WebCore

Add pointer profiling hooks to the CSS JIT.
https://bugs.webkit.org/show_bug.cgi?id=183947
<rdar://problem/38803593>

Reviewed by JF Bastien.

No new tests needed. Covered by existing tests.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateImplementation):

  • Added a missing application of WTF_PREPARE_VTBL_POINTER_FOR_INSPECTION().
  • bindings/scripts/test/JS/JSInterfaceName.cpp:

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

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

(WebCore::toJSNewlyCreated):

  • css/ElementRuleCollector.cpp:

(WebCore::ElementRuleCollector::ruleMatches):

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::SelectorCodeGenerator::compile):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):

  • cssjit/SelectorCompiler.h:

(WebCore::SelectorCompiler::ruleCollectorSimpleSelectorCheckerFunction):
(WebCore::SelectorCompiler::querySelectorSimpleSelectorCheckerFunction):
(WebCore::SelectorCompiler::ruleCollectorSelectorCheckerFunctionWithCheckingContext):
(WebCore::SelectorCompiler::querySelectorSelectorCheckerFunctionWithCheckingContext):

  • dom/SelectorQuery.cpp:

(WebCore::SelectorDataList::executeCompiledSingleMultiSelectorData const):
(WebCore::SelectorDataList::execute const):

3:47 PM Changeset in webkit [229930] by timothy_horton@apple.com
  • 6 edits in trunk/Source/WebKitLegacy

Adopt WK_PLATFORM_NAME in WebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=183948
<rdar://problem/38803908>

Reviewed by Dan Bernstein.

Source/WebKitLegacy:

  • WebKitLegacy.xcodeproj/project.pbxproj:

Source/WebKitLegacy/mac:

  • Configurations/WebKitLegacy.xcconfig:
  • MigrateHeaders.make:
  • postprocess-headers.sh:
3:41 PM Changeset in webkit [229929] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

Local storage getItem() for an empty string returned UNDEFINED value.
https://bugs.webkit.org/show_bug.cgi?id=69138
<rdar://problem/13410974>

Patch by Sihui Liu <sihui_liu@apple.com> on 2018-03-23
Reviewed by Brady Eidson.

Source/WebCore:

  • platform/sql/SQLiteStatement.cpp:

(WebCore::SQLiteStatement::getColumnBlobAsString):

Tools:

Add API test coverage.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKitCocoa/LocalStoragePersistence.mm: Added.

(-[LocalStorageMessageHandler userContentController:didReceiveScriptMessage:]):
(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/localstorage-empty-string-value.html: Added.
3:35 PM Changeset in webkit [229928] by Wenson Hsieh
  • 2 edits
    2 moves in trunk/Source/WebKit

[Extra zoom mode] Adopt list view controller UI for select menus
https://bugs.webkit.org/show_bug.cgi?id=183944
<rdar://problem/38799062>

Reviewed by Tim Horton.

Move UIProcess/WKSelectMenuListViewController.* to UIProcess/ios/forms, where it was intended to go.

  • UIProcess/ios/forms/WKSelectMenuListViewController.h: Renamed from Source/WebKit/UIProcess/WKSelectMenuListViewController.h.
  • UIProcess/ios/forms/WKSelectMenuListViewController.mm: Renamed from Source/WebKit/UIProcess/WKSelectMenuListViewController.mm.
  • WebKit.xcodeproj/project.pbxproj:
3:16 PM Changeset in webkit [229927] by Chris Dumez
  • 21 edits in trunk

Promptly terminate service worker processes when they are no longer needed
https://bugs.webkit.org/show_bug.cgi?id=183873
<rdar://problem/38676995>

Reviewed by Youenn Fablet.

Source/WebCore:

The StorageProcess now keeps track of service worker clients for each security
origin. When there is no longer any clients for a given security origin, the
StorageProcess asks the service worker process for the given origin to terminate
and severs its connection to it.

Change is covered by API test.

  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::markAllWorkersForOriginAsTerminated):
Pass the security origin since this is called when a service worker process
crashes. When a service worker process for origin A crashes, we only want
to mark service workers in origin A as terminated, not ALL of them.

(WebCore::SWServer::registerServiceWorkerClient):
(WebCore::SWServer::unregisterServiceWorkerClient):
(WebCore::SWServer::needsServerToContextConnectionForOrigin const):
Tweak logic so that we only relaunch a service worker process if we still
have clients for its security origin.

  • workers/service/server/SWServer.h:

(WebCore::SWServer::disableServiceWorkerProcessTerminationDelay):
Add a way to disable the service worker termination delay to facilitate
testing.

  • workers/service/server/SWServerToContextConnection.h:

Source/WebKit:

The StorageProcess now keeps track of service worker clients for each security
origin. When there is no longer any clients for a given security origin, the
StorageProcess asks the service worker process for the given origin to terminate
and severs its connection to it.

  • Shared/Storage/StorageProcessCreationParameters.h:
  • StorageProcess/ServiceWorker/WebSWServerToContextConnection.cpp:

(WebKit::WebSWServerToContextConnection::connectionMayNoLongerBeNeeded):
(WebKit::WebSWServerToContextConnection::terminate):

  • StorageProcess/ServiceWorker/WebSWServerToContextConnection.h:
  • StorageProcess/StorageProcess.cpp:

(WebKit::StorageProcess::connectionToContextProcessWasClosed):
(WebKit::StorageProcess::needsServerToContextConnectionForOrigin const):
(WebKit::StorageProcess::initializeWebsiteDataStore):
(WebKit::StorageProcess::swServerForSession):
(WebKit::StorageProcess::swContextConnectionMayNoLongerBeNeeded):
(WebKit::StorageProcess::disableServiceWorkerProcessTerminationDelay):

  • StorageProcess/StorageProcess.h:
  • StorageProcess/StorageProcess.messages.in:
  • UIProcess/API/Cocoa/WKProcessPool.mm:

(-[WKProcessPool _disableServiceWorkerProcessTerminationDelay]):

  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::ensureStorageProcessAndWebsiteDataStore):
(WebKit::WebProcessPool::disableServiceWorkerProcessTerminationDelay):

  • UIProcess/WebProcessPool.h:
  • WebProcess/Storage/WebSWContextManagerConnection.cpp:

(WebKit::WebSWContextManagerConnection::terminateProcess):

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

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/ServiceWorkerBasic.mm:
3:15 PM Changeset in webkit [229926] by beidson@apple.com
  • 41 edits
    1 copy in trunk

Go to back/forward list items after a process-swapped navigation.
<rdar://problem/38690544> and https://bugs.webkit.org/show_bug.cgi?id=183920

Reviewed by Andy Estes.

Source/WebCore:

Covered by new API test.

Most of the changes to WebCore are teaching HistoryItem navigations to know when they should
do a policy check or not.

  • WebCore.xcodeproj/project.pbxproj:
  • history/BackForwardController.cpp:

(WebCore::BackForwardController::goBackOrForward):
(WebCore::BackForwardController::goBack):
(WebCore::BackForwardController::goForward):

  • history/HistoryItem.cpp:

(WebCore::HistoryItem::setStateObject): Actually push state object changes to the UIProcess.

This was a long standing bug that made it difficult to effectively test this change.

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadURLIntoChildFrame):
(WebCore::FrameLoader::loadDifferentDocumentItem):
(WebCore::FrameLoader::loadItem):
(WebCore::FrameLoader::retryAfterFailedCacheOnlyMainResourceLoad):

  • loader/FrameLoader.h:
  • loader/FrameLoaderTypes.h:
  • loader/HistoryController.cpp:

(WebCore::HistoryController::goToItem):
(WebCore::HistoryController::setDefersLoading):
(WebCore::HistoryController::recursiveGoToItem):

  • loader/HistoryController.h:
  • loader/NavigationPolicyCheck.h:
  • page/Page.cpp:

(WebCore::Page::goToItem):

  • page/Page.h:

Source/WebKit:

This takes the initial work of "process swap a normal navigation" and extends it to
process swapping for back/forward item navigations.

  • Scripts/webkit/messages.py:

Make sure state objects are serialized to the UI Process back/forward list items, as otherwise
they will be lost in process-swap scenarios:

  • Shared/SessionState.cpp:

(WebKit::PageState::encode const):
(WebKit::PageState::decode):

  • Shared/SessionState.h:

Make a new variant of APINavigation specifically for back/forward list items.

  • UIProcess/API/APINavigation.cpp:

(API::Navigation::Navigation):
(API::Navigation::loggingURL const):

  • UIProcess/API/APINavigation.h:

(API::Navigation::create):
(API::Navigation::backForwardListItem):
(API::Navigation::backForwardFrameLoadType const):

  • UIProcess/API/C/WKPage.cpp:

(WKPageGoToBackForwardListItem):

  • UIProcess/API/Cocoa/WKBrowsingContextController.mm:

(-[WKBrowsingContextController goToBackForwardListItem:]):

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView goToBackForwardListItem:]):

  • UIProcess/WebNavigationState.cpp:

(WebKit::WebNavigationState::createLoadRequestNavigation):
(WebKit::WebNavigationState::createBackForwardNavigation):

  • UIProcess/WebNavigationState.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::reattachToWebProcessForReload):
(WebKit::WebPageProxy::reattachToWebProcessWithItem):
(WebKit::WebPageProxy::goForward):
(WebKit::WebPageProxy::goBack):
(WebKit::WebPageProxy::goToBackForwardItem):
(WebKit::WebPageProxy::receivedPolicyDecision):
(WebKit::WebPageProxy::continueNavigationInNewProcess): Handle back/forward navigations differently than others.
(WebKit::WebPageProxy::restoreFromSessionState):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::addOrUpdateBackForwardItem): Renamed from "addBackForwardItem" for clarity
(WebKit::WebProcessProxy::addBackForwardItem): Deleted.

  • UIProcess/WebProcessProxy.h:
  • UIProcess/WebProcessProxy.messages.in:
  • UIProcess/ios/ViewGestureControllerIOS.mm:

(WebKit::ViewGestureController::endSwipeGesture):

  • UIProcess/mac/ViewGestureControllerMac.mm:

(WebKit::ViewGestureController::endSwipeGesture):

  • WebProcess/WebCoreSupport/SessionStateConversion.cpp:

(WebKit::toPageState):
(WebKit::toHistoryItem):

  • WebProcess/WebPage/WebBackForwardListProxy.cpp:

(WebKit::updateBackForwardItem):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::goToBackForwardItem): Combined "goBack" and "goForward" with this method,

passing the appropriate FrameLoadType around as needed to remember the specific type.

(WebKit::WebPage::goForward): Deleted.
(WebKit::WebPage::goBack): Deleted.

  • WebProcess/WebPage/WebPage.h:
  • WebProcess/WebPage/WebPage.messages.in:

Source/WebKitLegacy/mac:

  • WebView/WebView.mm:

(-[WebView _loadBackForwardListFromOtherView:]):
(-[WebView goToBackForwardItem:]):

Source/WebKitLegacy/win:

  • WebView.cpp:

(WebView::goToBackForwardItem):
(WebView::loadBackForwardListFromOtherView):

Tools:

Add a new API test that does some process-swapping navigations (including a back navigation)
and verifies the state of the engine afterwards.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:

(-[PSONMessageHandler userContentController:didReceiveScriptMessage:]):
(-[PSONScheme initWithBytes:]):
(-[PSONScheme webView:startURLSchemeTask:]):
(log):
(function):
(TEST): Deleted.

3:07 PM Changeset in webkit [229925] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Mark accessibility/row-with-aria-role-in-native-table.html as failing on Windows.
https://bugs.webkit.org/show_bug.cgi?id=183955

Unreviewed test gardening.

  • platform/win/TestExpectations:
3:02 PM Changeset in webkit [229924] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Mark some CSS animations tests as failing on Windows.
https://bugs.webkit.org/show_bug.cgi?id=183953

Unreviewed test gardening.

  • platform/win/TestExpectations:
3:01 PM Changeset in webkit [229923] by youenn@apple.com
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

fix

2:35 PM Changeset in webkit [229922] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Styles Redesign: flashing when switching between nodes
https://bugs.webkit.org/show_bug.cgi?id=179291
<rdar://problem/35352660>

Reviewed by Matt Baker.

Flashing was happening because the layout was a two-step process:

  1. Append empty sections.
  2. Layout everything inside of the section on requestAnimationFrame.

SpreadsheetRulesStyleDetailsPanel was converted to use layout method,
so both steps happen on requestAnimationFrame.

  • UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:

(WI.SpreadsheetRulesStyleDetailsPanel):
(WI.SpreadsheetRulesStyleDetailsPanel.prototype.refresh):
(WI.SpreadsheetRulesStyleDetailsPanel.prototype.layout):
The removed lines from the refresh method moved to the layout method without any changes.

2:19 PM Changeset in webkit [229921] by commit-queue@webkit.org
  • 3 edits
    1 add in trunk/Tools

Lint web-platform-tests changes with the wpt linter before exporting
https://bugs.webkit.org/show_bug.cgi?id=183796

Patch by Brendan McLoughlin <brendan@bocoup.com> on 2018-03-23
Reviewed by Youenn Fablet.

  • Scripts/webkitpy/w3c/test_exporter.py:

(TestExporter.init):
(TestExporter.do_export):

  • Scripts/webkitpy/w3c/test_exporter_unittest.py:

(TestExporterTest.MockWPTLinter):
(TestExporterTest.MockWPTLinter.init):
(TestExporterTest.MockWPTLinter.lint):
(TestExporterTest.test_export):
(TestExporterTest.test_export_with_specific_branch):

  • Scripts/webkitpy/w3c/wpt_linter.py: Added.

(WPTLinter):
(WPTLinter.init):
(WPTLinter.lint):

2:18 PM Changeset in webkit [229920] by youenn@apple.com
  • 4 edits
    4 adds in trunk/Source/ThirdParty/libwebrtc

Add support for VCP encoder on MacOS and iOS
https://bugs.webkit.org/show_bug.cgi?id=183924

Reviewed by Eric Carlson.

Soft-Link VideoProcessing functions and use them in H264 encoder.
This is conditional on recent MacOS and iOS platforms.

  • Source/webrtc/sdk/WebKit/EncoderUtilities.h: Added.
  • Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.cpp: Added.
  • Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h: Added.
  • Source/webrtc/sdk/WebKit/WebKitUtilities.mm:

(webrtc::createVideoToolboxEncoderFactory):

  • Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm:

(-[RTCVideoEncoderH264 encode:codecSpecificInfo:frameTypes:]):
(-[RTCVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):
(-[RTCVideoEncoderH264 destroyCompressionSession]):

  • WebKit/0001-Using-VCP.patch: Added.
  • libwebrtc.xcodeproj/project.pbxproj:
2:03 PM Changeset in webkit [229919] by wilander@apple.com
  • 2 edits in trunk/Source/WebCore

Resource Load Statistics: Fix decoder key isPrevalentResource->isVeryPrevalentResource
https://bugs.webkit.org/show_bug.cgi?id=183950
<rdar://problem/38806275>

Reviewed by Brent Fulgham.

  • loader/ResourceLoadStatistics.cpp:

(WebCore::ResourceLoadStatistics::decode):

Now isVeryPrevalentResource is decoded to the correct field.

2:00 PM Changeset in webkit [229918] by Megan Gardner
  • 4 edits in trunk

Don't use the presence of a textSelectionAssistant as a proxy for if we are in content editable.
https://bugs.webkit.org/show_bug.cgi?id=183804

Reviewed by Tim Horton.

We need to stop using the presence of a textSelectionAssistant as a proxy for if we are selecting in a content editable
or not. As we are planning on switching to only using a textSelectionAssistant for selection, these checks need to
be more direct in checking what we actually need to know i.e. are we selecting in a content editable.

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

(hasAssistedNode):
(-[WKContentView inputView]):
(-[WKContentView _selectionClipRect]):
(-[WKContentView gestureRecognizer:canBePreventedByGestureRecognizer:]):
(-[WKContentView gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:]):
(-[WKContentView gestureRecognizerShouldBegin:]):
(-[WKContentView textInteractionGesture:shouldBeginAtPoint:]):
(-[WKContentView webSelectionRects]):
(-[WKContentView _startAssistingNode:userIsInteracting:blurPreviousNode:changingActivityState:userObject:]):
(-[WKContentView _autofillContext]):

1:53 PM Changeset in webkit [229917] by youenn@apple.com
  • 9 edits in trunk/Source

WebProcessPool should not ask to register all clients for each service worker process creation
https://bugs.webkit.org/show_bug.cgi?id=183941

Reviewed by Chris Dumez.

Source/WebCore:

Covered by existing unit tests.
Register all Documents of a process no matter its session ID when asked to.
Make sure that whenever a WebProcess is asked to do so, any further Document will be registered
by calling setMayHaveRegisteredServiceWorkers().
This ensures that a WebProcess created before any service worker but empty at the time a service worker is created
will actually register all its future clients.

Add some assertions to ensure that a client is not registered twice.

  • workers/service/ServiceWorkerProvider.cpp:

(WebCore::ServiceWorkerProvider::registerServiceWorkerClients):

  • workers/service/ServiceWorkerProvider.h:
  • workers/service/server/SWServer.cpp:

(WebCore::SWServer::registerServiceWorkerClient):

Source/WebKit:

Call registerServiceWorkerClients when there is no service worker process.
Update service worker clients to register all of them no matter the session ID.

  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::establishWorkerContextConnectionToStorageProcess):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::registerServiceWorkerClients):

  • WebProcess/WebProcess.h:
  • WebProcess/WebProcess.messages.in:
1:47 PM Changeset in webkit [229916] by Wenson Hsieh
  • 4 edits
    2 moves in trunk/Source/WebKit

[Extra zoom mode] Adopt list view controller UI for select menus
https://bugs.webkit.org/show_bug.cgi?id=183944
<rdar://problem/38799062>

Reviewed by Andy Estes.

Rename WKSelectMenuViewController to WKSelectMenuListViewController, and also rename the relevant
WebKitAdditions harness files. See corresponding changes for more details.

  • UIProcess/WKSelectMenuListViewController.h: Renamed from Source/WebKit/UIProcess/ios/forms/WKSelectMenuViewController.h.
  • UIProcess/WKSelectMenuListViewController.mm: Renamed from Source/WebKit/UIProcess/ios/forms/WKSelectMenuViewController.mm.
  • UIProcess/ios/WKContentViewInteraction.h:
  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView presentSelectMenuViewController:]):
(-[WKContentView dismissSelectMenuViewController:]):
(-[WKContentView selectMenu:didSelectItemAtIndex:]):
(-[WKContentView numberOfItemsInSelectMenu:]):
(-[WKContentView selectMenu:displayTextForItemAtIndex:]):
(-[WKContentView selectMenu:didCheckItemAtIndex:checked:]):
(-[WKContentView selectMenuUsesMultipleSelection:]):
(-[WKContentView selectMenu:hasSelectedOptionAtIndex:]):
(-[WKContentView _wheelChangedWithEvent:]):

Overriding wheel events and re-dispatching them is no longer needed after r229437, so we can just remove special
handling for select menus here.

(-[WKContentView didCancelSelectionInSelectMenu:]): Deleted.
(-[WKContentView selectMenuSupportsMultipleSelection:]): Deleted.
(-[WKContentView selectMenu:hasCheckedOptionAtIndex:]): Deleted.
(-[WKContentView startingIndexForSelectMenu:]): Deleted.

The starting index for a select menu is no longer relevant when using list view controllers for input, so we can
just remove this delegate hook altogether.

  • WebKit.xcodeproj/project.pbxproj:
1:11 PM Changeset in webkit [229915] by eric.carlson@apple.com
  • 5 edits
    2 adds in trunk

HTMLElement factory doesn't need to call MediaPlayer::isAvailable
https://bugs.webkit.org/show_bug.cgi?id=183946
<rdar://problem/38802687>

Reviewed by Youenn Fablet.

Source/WebCore:

Test: media/media-disabled.html

  • dom/make_names.pl:

(printConstructorInterior):

  • page/Settings.yaml:
  • page/SettingsDefaultValues.h:

LayoutTests:

  • media/media-disabled-expected.txt: Added.
  • media/media-disabled.html: Added.
12:54 PM Changeset in webkit [229914] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

CacheStorage::Caches should clear m_caches when clearing its representation even though it is not yet initialized
https://bugs.webkit.org/show_bug.cgi?id=183945

Reviewed by Chris Dumez.

  • NetworkProcess/cache/CacheStorageEngineCaches.cpp:

(WebKit::CacheStorage::Caches::clearMemoryRepresentation):
In case we clear Caches in the middle of the initialization, m_caches might not be empty
but m_isInitialized is not yet set to true since we are computing the Caches size.
Update the assertion and clear m_caches in that case.

12:06 PM Changeset in webkit [229913] by ddkilzer@apple.com
  • 11 edits
    1 add
    1 delete in trunk

Stop using dispatch_set_target_queue()
<https://webkit.org/b/183908>
<rdar://problem/33553533>

Reviewed by Daniel Bates.

Source/ThirdParty/libwebrtc:

  • Source/webrtc/rtc_base/task_queue_gcd.cc: Remove use of

dispatch_set_target_queue() by changing dispatch_queue_create()
to dispatch_queue_create_with_target().

  • WebKit/0009-Remove-dispatch_set_target_queue.patch: Add patch.

Filed this to track upstreaming the change:
<https://bugs.chromium.org/p/webrtc/issues/detail?id=9055>

  • WebKit/patch-libwebrtc: Delete empty patch file.

Source/WebCore:

No new tests since no change in behavior.

  • platform/mediastream/mac/AVMediaCaptureSource.mm:

(WebCore::globaVideoCaptureSerialQueue): Remove use of
dispatch_set_target_queue() by changing dispatch_queue_create()
to dispatch_queue_create_with_target().

Source/WebKit:

  • NetworkProcess/cache/NetworkCacheIOChannelCocoa.mm:

(WebKit::NetworkCache::IOChannel::IOChannel): Remove the call to
dispatch_set_target_queue() since this is handled in the
dispatch_io_create() call above.

Source/WTF:

  • wtf/cocoa/WorkQueueCocoa.cpp:

(WTF::WorkQueue::platformInitialize): Remove !HAVE(QOS_CLASSES)
code path since it's never used now that HAVE(QOS_CLASSES) is
equivalent to PLATFORM(COCOA) in <wtf/Platform.h>.

Tools:

  • Scripts/webkitpy/style/checkers/cpp.py:

(check_language): Add check for use of
dispatch_set_target_queue().
(CppChecker): Add 'runtime/dispatch_set_target_queue' category.

  • Scripts/webkitpy/style/checkers/cpp_unittest.py:

(CppStyleTest): Add test.

11:55 AM Changeset in webkit [229912] by mark.lam@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

LLInt TypeArray pointer poisoning should not pick its poison dynamically.
https://bugs.webkit.org/show_bug.cgi?id=183942
<rdar://problem/38798018>

Reviewed by JF Bastien.

  1. Move the LLInt TypedArray unpoisoning to just before the array access after all the branches.
  2. Renamed FirstArrayType to FirstTypedArrayType to match the symbol in C++ code.
  3. Remove a useless instruction in the implementation of emitX86Lea for a global label.
  • llint/LowLevelInterpreter.asm:
  • llint/LowLevelInterpreter64.asm:
  • offlineasm/x86.rb:
11:44 AM Changeset in webkit [229911] by mark.lam@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Add more support for pointer profiling.
https://bugs.webkit.org/show_bug.cgi?id=183943
<rdar://problem/38799068>

Reviewed by JF Bastien.

  • assembler/ARM64Assembler.h:

(JSC::ARM64Assembler::linkJumpOrCall):

  • assembler/AbstractMacroAssembler.h:

(JSC::AbstractMacroAssembler::repatchNearCall):
(JSC::AbstractMacroAssembler::tagReturnAddress):
(JSC::AbstractMacroAssembler::untagReturnAddress):

11:39 AM WebKitGTK/Gardening/Calendar edited by Adrian Perez de Castro
(diff)
11:34 AM Changeset in webkit [229910] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Only enable LayoutTest fast/css/apple-system-control-colors.html on macOS.

Unreviewed test gardening.

11:32 AM Changeset in webkit [229909] by Adrian Perez de Castro
  • 2 edits in trunk/LayoutTests

Unreviewed WPE gardening.

Removed imported/mathml-in-html5 from WPE test expectations, as the
path does not exit anymore after r229601

  • platform/wpe/TestExpectations: Removd imported/mathml-in-html5
11:20 AM Changeset in webkit [229908] by youenn@apple.com
  • 15 edits
    1 move
    3 adds in trunk/Source

Use libwebrtc ObjectiveC H264 encoder and decoder
https://bugs.webkit.org/show_bug.cgi?id=183912

Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

Add utilities inside libwebrtc to be used by WebKit:

  • Create ObjectiveC encoder/decoder factories
  • Notify of application status to invalidate encoders/decoders when in background

Implement RTCUIApplicationStatusObserver as a simple boolean that is set by WebCore.
This allows limiting the changes made to libwebrtc codec implementations.

Minor modifications done to libwebrtc to fix compilation.
Add Block_copy/Block_release to codec callbacks.

  • Configurations/libwebrtc.iOS.exp:
  • Configurations/libwebrtc.iOSsim.exp:
  • Configurations/libwebrtc.mac.exp:
  • Source/webrtc/sdk/WebKit/WebKitUtilities.h: Added.
  • Source/webrtc/sdk/WebKit/WebKitUtilities.mm: Added.

(+[RTCUIApplicationStatusObserver sharedInstance]):
(+[RTCUIApplicationStatusObserver prepareForUse]):
(-[RTCUIApplicationStatusObserver setActive]):
(-[RTCUIApplicationStatusObserver setInactive]):
(-[RTCUIApplicationStatusObserver isApplicationActive]):
(webrtc::setApplicationStatus):
(webrtc::createVideoToolboxEncoderFactory):
(webrtc::createVideoToolboxDecoderFactory):
(webrtc::setH264HardwareEncoderAllowed):
(webrtc::isH264HardwareEncoderAllowed):
(webrtc::pixelBufferFromFrame):

  • Source/webrtc/sdk/objc/Framework/Classes/Video/RTCCVPixelBuffer.mm:

(-[RTCCVPixelBuffer dealloc]):

  • Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoDecoderH264.mm:

(-[RTCVideoDecoderH264 dealloc]):
(-[RTCVideoDecoderH264 setCallback:]):
(-[RTCVideoDecoderH264 releaseDecoder]):

  • Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/RTCVideoEncoderH264.mm:

(-[RTCVideoEncoderH264 dealloc]):
(-[RTCVideoEncoderH264 setCallback:]):
(-[RTCVideoEncoderH264 releaseEncoder]):
(-[RTCVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):

  • WebKit/0001-Adapting-libwebrtc-H264-codec.patch: Added.
  • libwebrtc.xcodeproj/project.pbxproj:

Source/WebCore:

No observable change of behavior.
Made use of libwebrtc WebKit utilities.
Updated RealtimeINcomingVideoSourceCocoa as it now receives ObjcVideoFrame.

  • Configurations/WebCore.xcconfig:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.cpp:

(WebCore::LibWebRTCProviderCocoa::~LibWebRTCProviderCocoa):
(WebCore::LibWebRTCProviderCocoa::setH264HardwareEncoderAllowed):
(WebCore::LibWebRTCProviderCocoa::createDecoderFactory):
(WebCore::LibWebRTCProviderCocoa::createEncoderFactory):
(WebCore::LibWebRTCProviderCocoa::setActive):

  • platform/mediastream/libwebrtc/LibWebRTCProviderCocoa.h:
  • platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm: Renamed from Source/WebCore/platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.cpp.

(WebCore::RealtimeIncomingVideoSourceCocoa::pixelBufferFromVideoFrame):
(WebCore::RealtimeIncomingVideoSourceCocoa::OnFrame):

  • testing/Internals.cpp: Removed commented out include.
11:06 AM Changeset in webkit [229907] by youenn@apple.com
  • 5 edits
    5 adds in trunk

DocumentThreadableLoader should send credentials after redirections and preflight if fetch option credentials is include
https://bugs.webkit.org/show_bug.cgi?id=183928

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/fetch/api/cors/cors-cookies-redirect.any.html: Added.
  • web-platform-tests/fetch/api/cors/cors-cookies-redirect.any.js: Added.
  • web-platform-tests/fetch/api/cors/cors-cookies-redirect.any.worker.html: Added.
  • web-platform-tests/fetch/api/resources/inspect-headers.py:
  • web-platform-tests/fetch/api/resources/redirect.py:

Source/WebCore:

Tests: imported/w3c/web-platform-tests/fetch/api/cors/cors-cookies-redirect.any.html

imported/w3c/web-platform-tests/fetch/api/cors/cors-cookies-redirect.any.worker.html

In case mode is include, keep sending credentials even after redirection with preflight.

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::redirectReceived):

11:06 AM Changeset in webkit [229906] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

Fix the build after r229858

  • platform/graphics/cocoa/GraphicsContext3DCocoa.mm:
11:04 AM Changeset in webkit [229905] by youenn@apple.com
  • 4 edits in trunk

Allow fully whitelisted plug-ins to match non HTTP URLs
https://bugs.webkit.org/show_bug.cgi?id=183938
rdar://problem/38534312

Reviewed by Chris Dumez.

Source/WebCore:

Covered by manual testing and unit testing.

  • platform/URL.cpp:

(WebCore::URL::isMatchingDomain const):

Tools:

  • TestWebKitAPI/Tests/WebCore/URL.cpp:

(TestWebKitAPI::TEST_F):

11:02 AM Changeset in webkit [229904] by youenn@apple.com
  • 3 edits in trunk/Source/WebKit

CacheStorage::Engine should not ref itself when hopping to a background thread
https://bugs.webkit.org/show_bug.cgi?id=183925
<rdar://problem/38580483>

Reviewed by Chris Dumez.

Add support for weak pointers to CacheStorage Engine.
Use weak pointer when hopping to background threads.
Store callbacks in CacheStorage::Engine maps to keep them being destroyed in the main thread only.
Made some callbacks CompletionHandler as a bonus.

Made sure to use just one Engine for all private sessions.

  • NetworkProcess/cache/CacheStorageEngine.cpp:

(WebKit::CacheStorage::Engine::~Engine):
(WebKit::CacheStorage::Engine::from):
(WebKit::CacheStorage::Engine::initialize):
(WebKit::CacheStorage::Engine::writeFile):
(WebKit::CacheStorage::Engine::readFile):

  • NetworkProcess/cache/CacheStorageEngine.h:

(WebKit::CacheStorage::Engine::weakPtrFactory):

10:48 AM Changeset in webkit [229903] by youenn@apple.com
  • 5 edits in trunk/Source/WebCore

ActiveDOMObject should assert that they are destroyed in the thread they are created
https://bugs.webkit.org/show_bug.cgi?id=183671

Reviewed by Chris Dumez.

No change of behavior.
Moved MessagePort assertion to ActiveDOMObject.

  • dom/ActiveDOMObject.cpp:

(WebCore::ActiveDOMObject::~ActiveDOMObject):

  • dom/ActiveDOMObject.h:
  • dom/MessagePort.cpp:

(WebCore::MessagePort::~MessagePort):

  • dom/MessagePort.h:
10:29 AM Changeset in webkit [229902] by jmarcell@apple.com
  • 2 edits in tags/Safari-606.1.7.3/Source/WebKit

Cherry-pick r229418. rdar://problem/38770923

10:16 AM Changeset in webkit [229901] by jmarcell@apple.com
  • 7 edits in tags/Safari-606.1.7.3/Source

Versioning.

10:07 AM Changeset in webkit [229900] by jfbastien@apple.com
  • 2 edits in trunk/Tools

dump-class-layout is just wrong
https://bugs.webkit.org/show_bug.cgi?id=183939

Reviewed by Yusuke Suzuki.

Looks like r229291 contained a half-renamed variable in it, so it
just doesn't work.

  • Scripts/dump-class-layout:

(verify_type):
(verify_type_recursive):

9:59 AM Changeset in webkit [229899] by jmarcell@apple.com
  • 1 copy in tags/Safari-606.1.7.3

New tag.

9:55 AM Changeset in webkit [229898] by youenn@apple.com
  • 3 edits
    2 adds in trunk

Safari WebKitWebRTCAudioModule crash during <video> tag update when audio track present in MediaStream
https://bugs.webkit.org/show_bug.cgi?id=181180
<rdar://problem/36302375>

Reviewed by Eric Carlson.

Source/WebCore:

Test: webrtc/video-update-often.html

AudioTrackPrivateMediaStreamCocoa needs to be destroyed in the main thread since it owns a Ref to its MediaStreamTrackPrivate.
We can still ref it on a background thread but we always deref it on the main thread.

  • platform/mediastream/mac/AudioTrackPrivateMediaStreamCocoa.cpp:

(WebCore::AudioTrackPrivateMediaStreamCocoa::audioSamplesAvailable):
(WebCore::AudioTrackPrivateMediaStreamCocoa::render):

LayoutTests:

  • webrtc/video-update-often-expected.txt: Added.
  • webrtc/video-update-often.html: Added.
9:44 AM Changeset in webkit [229897] by svillar@igalia.com
  • 12 edits
    3 adds in trunk

[css-grid] Fix auto repeat tracks computation with definite min sizes
https://bugs.webkit.org/show_bug.cgi?id=183933

Reviewed by Javier Fernandez.

LayoutTests/imported/w3c:

The relevant test for this change is just grid-inline-auto-repeat-001.html. The other ones
were pulled in by the import. The unique change in those tests is the location of a
stylesheet. Since we're using it in the new test it seems sensible to use this same commit
to import those changes too. There is one important change in testing-utils.js which is
also required by the new test.

  • resources/import-expectations.json:
  • web-platform-tests/css/css-grid/grid-definition/grid-change-fit-content-argument-001.html:
  • web-platform-tests/css/css-grid/grid-definition/grid-inline-auto-repeat-001-expected.txt: Added.
  • web-platform-tests/css/css-grid/grid-definition/grid-inline-auto-repeat-001.html: Added.
  • web-platform-tests/css/css-grid/grid-definition/grid-template-columns-fit-content-001-expected.html:
  • web-platform-tests/css/css-grid/grid-definition/grid-template-columns-fit-content-001.html:
  • web-platform-tests/css/css-grid/grid-definition/grid-template-rows-fit-content-001-expected.html:
  • web-platform-tests/css/css-grid/grid-definition/grid-template-rows-fit-content-001.html:
  • web-platform-tests/css/css-grid/grid-definition/support/grid.css: Added.

(.grid):
(.inline-grid):
(.firstRowFirstColumn):
(.onlyFirstRowOnlyFirstColumn):
(.firstRowSecondColumn):
(.onlyFirstRowOnlySecondColumn):
(.secondRowFirstColumn):
(.onlySecondRowOnlyFirstColumn):
(.secondRowSecondColumn):
(.onlySecondRowOnlySecondColumn):
(.endSecondRowEndSecondColumn):
(.thirdRowSecondColumn):
(.firstRowThirdColumn):
(.secondRowThirdColumn):
(.firstRowFourthColumn):
(.secondRowFourthColumn):
(.firstAutoRowSecondAutoColumn):
(.autoLastRowAutoLastColumn):
(.autoSecondRowAutoFirstColumn):
(.firstRowBothColumn):
(.secondRowBothColumn):
(.bothRowFirstColumn):
(.bothRowSecondColumn):
(.bothRowBothColumn):
(.autoRowAutoColumn):
(.firstRowAutoColumn):
(.secondRowAutoColumn):
(.thirdRowAutoColumn):
(.autoRowFirstColumn):
(.autoRowSecondColumn):
(.autoRowThirdColumn):
(.autoRowAutoColumnSpanning2):
(.autoRowSpanning2AutoColumn):
(.autoRowSpanning2AutoColumnSpanning3):
(.autoRowSpanning3AutoColumnSpanning2):
(.autoRowFirstColumnSpanning2):
(.autoRowSecondColumnSpanning2):
(.firstRowSpanning2AutoColumn):
(.secondRowSpanning2AutoColumn):
(.gridAutoFlowColumnSparse):
(.gridAutoFlowColumnDense):
(.gridAutoFlowRowSparse):
(.gridAutoFlowRowDense):
(.constrainedContainer):
(.unconstrainedContainer):
(.sizedToGridArea):
(.verticalRL):
(.verticalLR):
(.horizontalTB):
(.directionRTL):
(.directionLTR):

  • web-platform-tests/css/css-grid/grid-definition/support/testing-utils.js:

(checkGridTemplateRows): Convert the passed computed style to an Array in case it is just an string.

  • web-platform-tests/css/css-grid/grid-definition/support/w3c-import.log:
  • web-platform-tests/css/css-grid/grid-definition/w3c-import.log:

Source/WebCore:

Indefinitely sized containers use the specified definite min-size (if any) as available
space in order to compute the number of auto repeat tracks to create. A bug in that code was
causing the grid to be one track larger than expected. That was only happening in the case
of the free space being a multiple of the total size of the autorepeat tracks.

Test: imported/w3c/web-platform-tests/css/css-grid/grid-definition/grid-inline-auto-repeat-001.html

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::computeAutoRepeatTracksCount const):

9:38 AM Changeset in webkit [229896] by Ryan Haddad
  • 2 edits in trunk/Source/WebKit

Unreviewed build fix.

  • UIProcess/API/Cocoa/WKWebViewPrivate.h:
8:29 AM Changeset in webkit [229895] by magomez@igalia.com
  • 23 edits in trunk/Source

[GTK][WPE] Avoid software color conversion inside BitmapTextureGL
https://bugs.webkit.org/show_bug.cgi?id=183892

Source/WebCore:

Reviewed by Žan Doberšek.

Always use RGBA format on BitmapTextureGL (when no other format is specifically requested). When
the texture is updated from BGRA content, use a flag to indicate the shader to perform a color
conversion during the painting. This way we don't need to swap the R and B components on the CPU.
Also, remove one of the lists in BitmapTexturePool as now all of them have the same format, and
remove the UpdateContentsFlag as we never need to modify the original image data.

Covered by existent tests.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::updateTexture):

  • platform/graphics/texmap/BitmapTexture.cpp:

(WebCore::BitmapTexture::updateContents):

  • platform/graphics/texmap/BitmapTexture.h:
  • platform/graphics/texmap/BitmapTextureGL.cpp:

(WebCore::BitmapTextureGL::BitmapTextureGL):
(WebCore::BitmapTextureGL::didReset):
(WebCore::BitmapTextureGL::updateContents):
(WebCore::BitmapTextureGL::applyFilters):
(WebCore::swizzleBGRAToRGBA): Deleted.
(WebCore::BitmapTextureGL::updateContentsNoSwizzle): Deleted.

  • platform/graphics/texmap/BitmapTextureGL.h:

(WebCore::BitmapTextureGL::colorConvertFlags const):

  • platform/graphics/texmap/BitmapTexturePool.cpp:

(WebCore::BitmapTexturePool::acquireTexture):
(WebCore::BitmapTexturePool::releaseUnusedTexturesTimerFired):

  • platform/graphics/texmap/BitmapTexturePool.h:
  • platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:

(WebCore::GraphicsLayerTextureMapper::updateBackingStoreIfNeeded):

  • platform/graphics/texmap/TextureMapperContextAttributes.cpp:

(WebCore::TextureMapperContextAttributes::get):

  • platform/graphics/texmap/TextureMapperContextAttributes.h:
  • platform/graphics/texmap/TextureMapperGL.cpp:

(WebCore::TextureMapperGL::drawNumber):
(WebCore::TextureMapperGL::drawTexture):

  • platform/graphics/texmap/TextureMapperGL.h:
  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::paintIntoSurface):

  • platform/graphics/texmap/TextureMapperPlatformLayerBuffer.cpp:

(WebCore::TextureMapperPlatformLayerBuffer::paintToTextureMapper):

  • platform/graphics/texmap/TextureMapperTile.cpp:

(WebCore::TextureMapperTile::updateContents):

  • platform/graphics/texmap/TextureMapperTile.h:
  • platform/graphics/texmap/TextureMapperTiledBackingStore.cpp:

(WebCore::TextureMapperTiledBackingStore::updateContentsFromImageIfNeeded):
(WebCore::TextureMapperTiledBackingStore::updateContents):

  • platform/graphics/texmap/TextureMapperTiledBackingStore.h:

Source/WebKit:

Remove the UpdateContentsFlag parameter when calling BitmapTexture::updateContents().

Reviewed by Žan Doberšek.

  • Shared/CoordinatedGraphics/CoordinatedBackingStore.cpp:

(WebKit::CoordinatedBackingStoreTile::swapBuffers):

Source/WebKitLegacy/win:

Remove the UpdateContentsFlag parameter as it's not used anymore.

Reviewed by Žan Doberšek.

  • WebCoreSupport/AcceleratedCompositingContext.cpp:

(AcceleratedCompositingContext::acceleratedCompositingAvailable):

6:11 AM WebKitGTK/2.20.x edited by clopez@igalia.com
(diff)
5:41 AM Changeset in webkit [229894] by clopez@igalia.com
  • 2 edits in trunk/Source/WTF

WebProcess memory monitor thresholds should be better tuned for embedded systems.
https://bugs.webkit.org/show_bug.cgi?id=183773

Reviewed by Yusuke Suzuki.

Take into account the total system RAM for the thresholds calculation.

For systems with more than 3GB the conservative and strict thresholds remain as they are,
but for systems with less RAM the thresholds are dynamically configured as follows:

  • Conservative threshold (release non critical memory) if WebProcess using more than 33% of the total RAM.
  • Strict threshold (release all possible memory) if WebProcess using more than 50% of the total RAM.

The Kill threshold is also modified. Now it is capped at 90% of the total RAM.

  • wtf/MemoryPressureHandler.cpp:

(WTF::thresholdForMemoryKillWithProcessState):
(WTF::thresholdForPolicy):
(WTF::MemoryPressureHandler::shrinkOrDie):

5:41 AM WebKitGTK/2.20.x edited by Adrian Perez de Castro
(diff)
5:34 AM Changeset in webkit [229893] by Yusuke Suzuki
  • 27 edits
    5 copies in trunk/Source

[WTF] Add standard containers with FastAllocator specialization
https://bugs.webkit.org/show_bug.cgi?id=183789

Reviewed by Darin Adler.

Source/JavaScriptCore:

  • b3/air/testair.cpp:
  • b3/testb3.cpp:

(JSC::B3::testDoubleLiteralComparison):
(JSC::B3::testFloatEqualOrUnorderedFoldingNaN):

  • dfg/DFGGraph.h:
  • dfg/DFGIntegerCheckCombiningPhase.cpp:
  • dfg/DFGObjectAllocationSinkingPhase.cpp:
  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::switchStringSlow):

  • runtime/FunctionHasExecutedCache.h:
  • runtime/TypeLocationCache.h:

Source/WebCore:

  • Modules/indexeddb/IDBKeyData.h:
  • Modules/mediasource/SampleMap.h:
  • Modules/mediasource/SourceBuffer.cpp:
  • Modules/webauthn/cbor/CBORValue.h:

It did not use FastAllocator for its container.

  • page/WheelEventTestTrigger.h:
  • platform/audio/PlatformMediaSessionManager.h:
  • platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.h:
  • platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.mm:
  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
  • platform/graphics/cv/VideoTextureCopierCV.cpp:

(WebCore::YCbCrToRGBMatrixForRangeAndTransferFunction):

  • platform/mock/mediasource/MockSourceBufferPrivate.cpp:
  • platform/wpe/PlatformPasteboardWPE.cpp:
  • rendering/OrderIterator.h:

Source/WTF:

Sometimes we want standard containers due to various reasons.
For example, WTF::HashMap lacks the ability to hold all the
integer keys since it uses 0 for empty value and -1 for deleted
value. However, using std::containers use std::allocator without
specialization.

This patch introduces WTF::{StdMap, StdSet, StdList, StdUnorderedMap, StdUnorderedSet}.
They are standard containers with FastAllocator specialization.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/StdList.h: Copied from Source/JavaScriptCore/runtime/TypeLocationCache.h.
  • wtf/StdMap.h: Copied from Source/JavaScriptCore/runtime/TypeLocationCache.h.
  • wtf/StdSet.h: Copied from Source/JavaScriptCore/runtime/TypeLocationCache.h.
  • wtf/StdUnorderedMap.h: Copied from Source/JavaScriptCore/runtime/TypeLocationCache.h.
  • wtf/StdUnorderedSet.h: Copied from Source/JavaScriptCore/runtime/TypeLocationCache.h.
5:32 AM Changeset in webkit [229892] by Yusuke Suzuki
  • 2 edits in trunk/Source/JavaScriptCore

[FTL] Fix ArrayPush(ArrayStorage)'s abstract heap
https://bugs.webkit.org/show_bug.cgi?id=182960

Reviewed by Saam Barati.

This patch fixes ArrayPush(ArrayStorage)'s abstract heap.
It should always touch ArrayStorage_vector. To unify
vector setting code for the real ArrayStorage_vector and
ScratchBuffer, we use ArrayStorage_vector.atAnyIndex() to
annotate this.

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileArrayPush):

4:49 AM Changeset in webkit [229891] by graouts@webkit.org
  • 7 edits in trunk

[Web Animations] infinite repeat counts aren't reflected for CSS Animations
https://bugs.webkit.org/show_bug.cgi?id=183932

Reviewed by Dean Jackson.

LayoutTests/imported/mozilla:

Record progressions of Mozilla tests.

  • css-animations/test_animation-computed-timing-expected.txt:
  • css-animations/test_animation-finish-expected.txt:

Source/WebCore:

The "infinite" value for animation-repeat-count is reflected as a special value which resolves to -1. We need to check
for this special value before setting the iterations count on the AnimationEffectTimingReadOnly object.

  • animation/CSSAnimation.cpp:

(WebCore::CSSAnimation::syncPropertiesWithBackingAnimation):

LayoutTests:

One of the Mozilla tests now passes completely and reliably.

4:47 AM Changeset in webkit [229890] by graouts@webkit.org
  • 15 edits in trunk

[Web Animations] Correctly cancel animations when a parent gets a "display: none" style or when an element is removed
https://bugs.webkit.org/show_bug.cgi?id=183919

Reviewed by Dean Jackson.

LayoutTests/imported/mozilla:

A number of tests now pass thanks to correctly canceling animations when a parent element in the hierarchy gets a
"display: none" style or if an element with animations is removed.

  • css-animations/test_animation-cancel-expected.txt:
  • css-animations/test_document-get-animations-expected.txt:
  • css-animations/test_effect-target-expected.txt:
  • css-transitions/test_animation-cancel-expected.txt:
  • css-transitions/test_effect-target-expected.txt:

Source/WebCore:

The old CSSAnimationController provided a cancelAnimations(Element&) method that allowed for animations for a given element
to be canceled when a parent element in the hierarchy gets a "display: none" style or if an element with animations is removed.
We add a similar cancelAnimationsForElement(Element&) method on AnimationTimeline and update CSSAnimationController::cancelAnimations()
call sites to use AnimationTimeline::cancelAnimationsForElement() when the flag to use Web Animations is on.

  • animation/AnimationTimeline.cpp:

(WebCore::AnimationTimeline::cancelAnimationsForElement): Iterate over all animations for the provided element and call cancel() on them.

  • animation/AnimationTimeline.h:
  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::animatedStyleForRenderer): Drive-by fix while I was reviewed call sites to animationsForElement() to make
sure we don't create extra RefPtr<> objects.

  • dom/Element.cpp:

(WebCore::Element::removedFromAncestor): Call AnimationTimeline::cancelAnimationsForElement() if the Web Animations flag is on when an
element is removed.

  • dom/PseudoElement.cpp:

(WebCore::PseudoElement::clearHostElement): Call AnimationTimeline::cancelAnimationsForElement() if the Web Animations flag is on when
a pseudo-element is removed.

  • rendering/updating/RenderTreeUpdater.cpp:

(WebCore::RenderTreeUpdater::tearDownRenderers): Call AnimationTimeline::cancelAnimationsForElement() if the Web Animations flag is on
for all children elements when an element gets a "display: none" style.

LayoutTests:

Three of the imported Mozilla tests now pass reliably, removing them from the list of flaky failure and timeout tests.

4:45 AM Changeset in webkit [229889] by graouts@webkit.org
  • 12 edits in trunk

[Web Animations] Animated transform styles are ignored when calling getComputedStyle()
https://bugs.webkit.org/show_bug.cgi?id=183918

Reviewed by Dean Jackson.

LayoutTests/imported/mozilla:

We obtain one more PASS by correctly serializing the transform property on getComputedStyle().

  • css-animations/test_animation-cancel-expected.txt:

LayoutTests/imported/w3c:

We obtain a number of progressions by correctly serializing the transform property on getComputedStyle().

  • web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt:
  • web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt:
  • web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-iteration-composite-operation-expected.txt:
  • web-platform-tests/web-animations/interfaces/Animation/cancel-expected.txt:

Source/WebCore:

Strictly looking at whether the renderer has a transform is a bad idea when determining whether a
transform is applied for an element. Looking at the RenderStyle is preferable because in the case
of animations running on the compositor, such as a transform-only animation or transition, the
renderer doesn't necessarily have a transform style on it, since we don't blend properties in
software as the animation progresses. Instead, all of the blending is performed by the compositor,
and only the computed style object has the software-blended transform style on it.

We do need to account for inline renderers though as these do not support transforms.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::computedTransform):

LayoutTests:

We obtain a number of progressions by correctly serializing the transform property on getComputedStyle().

  • platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-expected.txt:
  • platform/mac-sierra/imported/w3c/web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-expected.txt:
4:42 AM Changeset in webkit [229888] by graouts@webkit.org
  • 13 edits in trunk

[Web Animations] Support "transition: all" for CSS Transitions as Web Animations
https://bugs.webkit.org/show_bug.cgi?id=183917

Reviewed by Dean Jackson.

LayoutTests/imported/mozilla:

Record progressions thanks to supporting "transition: all".

  • css-transitions/test_animation-finished-expected.txt:
  • css-transitions/test_csstransition-transitionproperty-expected.txt:
  • css-transitions/test_effect-target-expected.txt:
  • css-transitions/test_element-get-animations-expected.txt:
  • css-transitions/test_pseudoElement-get-animations-expected.txt:

Source/WebCore:

We now support "transition: all" CSS Transitions by iterating over all known CSS properties should the mode
of the backing animation be AnimateAll. Any property that we find to have a different value in the previous
and current style will have a backing CSSTransition object created for it. To support this, we now explicitly
provide a CSSPropertyID when creating a CSSTransition since we can no longer infer the transition property
from the backing animation, as Animation objects with mode AnimateAll report CSSPropertyInvalid as their
property.

  • animation/AnimationTimeline.cpp:

(WebCore::shouldBackingAnimationBeConsideredForCSSTransition): New method that checks whether a given backing
Animation object is suitable for consideration as a CSSTransition, where the mode must not be either AnimateNone
or AnimateUnknownProperty, and should the mode be AnimateSingleProperty, the property must not be CSSPropertyInvalid.
(WebCore::AnimationTimeline::updateCSSTransitionsForElement): We now assemble the list of previously animated
properties by looking at the m_elementToCSSTransitionByCSSPropertyID map and getting its keys. Then we compile
all backing Animation objects found in the old style that match the conditions enforced by the new method
shouldBackingAnimationBeConsideredForCSSTransition(). Then as we iterate over backing Animation objects found
in the new style, we iterate over all known CSS properties if the mode is AnimateAll, indicating that we're dealing
with a "transition: all" style. If we're dealing with a single property, we only process that single property.

  • animation/CSSTransition.cpp:

(WebCore::CSSTransition::create): Expect a new CSSPropertyID parameter when creating a new CSSTransition since
we can no longer infer it from the backing Animation object.
(WebCore::CSSTransition::CSSTransition): Expect a new CSSPropertyID parameter when creating a new CSSTransition
since we can no longer infer it from the backing Animation object.
(WebCore::CSSTransition::matchesBackingAnimationAndStyles const): We can no longer use the == overloaded operator
for backing Animation objects to determine whether their respective properties match since this would compare the
"property" member of both Animation objects and when going from a "transition: all" style to one targeting a single
property, we would falsely identify mis-matching Animation objects. Instead, we pass a false flag to animationsMatch()
which indicates that we don't care about matching the transition property itself.

  • animation/CSSTransition.h: Expose a new property() accessor which returns the CSSPropertyID passed at construction.
  • animation/KeyframeEffectReadOnly.cpp:

(WebCore::KeyframeEffectReadOnly::computeCSSTransitionBlendingKeyframes): Use the new property() accessor on
CSSTransition to get at the transition property.

  • platform/animation/Animation.cpp:

(WebCore::Animation::animationsMatch const): Replace the boolean parameter, which was not in use in WebCore, to indicate
whether we should match the property-related fields. We need this in CSSTransition::matchesBackingAnimationAndStyles().

  • platform/animation/Animation.h:
2:03 AM WebKitGTK/Gardening/Calendar edited by magomez@igalia.com
(diff)
1:53 AM Changeset in webkit [229887] by zandobersek@gmail.com
  • 2 edits
    1 add in trunk/LayoutTests

Unreviewed GTK+ gardening.

Add a port-specific baseline for fast/css/apple-system-control.html.

Mark http/wpt/service-workers tests as a mix of failures and passes,
since a lot of the tests pass now that service workers were enabled, but
the passing ones are still in minority and there's additionally flaky
tests. This should improve after necessary testing SW directories are
properly specified.

In contrast, a bunch of SW-reliant tests under
imported/w3c/web-platform-tests/streams are now passing consistently.
Failure expectations for these are removed.

Failue expectations for three compositing tests are also removed after
r229804 fixed them.

  • platform/gtk/TestExpectations:
  • platform/gtk/fast/css/apple-system-control-colors-expected.txt: Added.
1:46 AM Changeset in webkit [229886] by zandobersek@gmail.com
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed build fix for GCC 4.9 builds.

  • assembler/MacroAssemblerCodeRef.h: std::is_trivially_copyable<> isn't

supported in 4.9 libstdc++, so wrap the static assert using it in a
COMPILER_SUPPORTS() macro, and use is_trivially_copyable() builtin,
as is done in bitwise_cast() in StdLibExtras.h.

12:56 AM Changeset in webkit [229885] by Michael Catanzaro
  • 3 edits in trunk/Source/WebKit

[WPE][GTK] Fix -Wswitch warnings after r229778
https://bugs.webkit.org/show_bug.cgi?id=183927

Reviewed by Carlos Garcia Campos.

  • NetworkProcess/soup/NetworkDataTaskSoup.cpp:

(WebKit::NetworkDataTaskSoup::dispatchDidReceiveResponse): Log a warning if Suspend is
received as a PolicyAction

  • UIProcess/API/glib/WebKitNavigationClient.cpp: Ignore the ProcessSwap termination reason,

which should be invisible to WebKit clients

12:49 AM Changeset in webkit [229884] by Carlos Garcia Campos
  • 3 edits in trunk/Tools

Unreviewed. Run JSC GLib API tests in GTK+ and WPE bots.

The test runners were still considering the JSC tests as google tests, but they are now GLib tests.

  • Scripts/run-gtk-tests:

(GtkTestRunner.is_glib_test):
(GtkTestRunner.is_google_test):

  • Scripts/run-wpe-tests:

(WPETestRunner.is_glib_test):
(WPETestRunner.is_google_test):

Note: See TracTimeline for information about the timeline view.