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

Timeline



Apr 16, 2018:

11:54 PM Changeset in webkit [230702] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Inconsistent EGL defines in ImageBufferCairo
https://bugs.webkit.org/show_bug.cgi?id=184661

Patch by Pablo Saavedra <Pablo Saavedra> on 2018-04-16
Reviewed by Žan Doberšek.

On revision r219391 libepoxy is added. The headers in
ImageBufferCairo.cpp become inconsistent when 2D canvas is enabled
(-DENABLE_ACCELERATED_2D_CANVAS=ON) due to a redefinition error during
the Webkit build:

...
/usr/include/GLES2/gl2.h:503:82: error: 'voi
epoxy_glAttachShader(GLuint, GLuint)' redeclared as different kind
of symbol
GL_APICALL void GL_APIENTRY glAttachShader (GLuint
program, GLuint shader);

No new tests.

  • platform/graphics/cairo/ImageBufferCairo.cpp:
10:48 PM Changeset in webkit [230701] by Nikita Vasilyev
  • 2 edits in trunk/Source/WebInspectorUI

Web Inspector: Can't select and copy text from Network tab popover
https://bugs.webkit.org/show_bug.cgi?id=184606

Reviewed by Matt Baker.

  • UserInterface/Views/ResourceTimingBreakdownView.css:

(.waterfall-popover .resource-timing-breakdown):

10:17 PM Changeset in webkit [230700] by Alan Bujtas
  • 6 edits
    1 add in trunk/Tools

[LayoutReloaded] Add support for replaced box.
https://bugs.webkit.org/show_bug.cgi?id=184680

Reviewed by Antti Koivisto.

Basic support for inline replaced.

  • LayoutReloaded/FormattingContext/InlineFormatting/InlineFormattingContext.js:

(InlineFormattingContext.prototype._handleInlineBox):
(InlineFormattingContext.prototype._handleInlineBlock):
(InlineFormattingContext.prototype._handleReplaced):

  • LayoutReloaded/FormattingContext/InlineFormatting/Line.js:

(Line.prototype.lastLineBox):
(Line.prototype.addInlineBox):
(Line.prototype.addInlineContainerBox): Deleted.

  • LayoutReloaded/TreeBuilder.js:

(TreeBuilder.prototype._createAndAttachBox):

  • LayoutReloaded/Utils.js:

(Utils._dumpBox):

  • LayoutReloaded/test/index.html:
  • LayoutReloaded/test/inline-simple-replaced.html: Added.
8:15 PM Changeset in webkit [230699] by Alan Bujtas
  • 2 edits in trunk/Tools

[LayoutReloaded] Minor InlineFormattingContext::layout() cleanup.
https://bugs.webkit.org/show_bug.cgi?id=184679

Reviewed by Antti Koivisto.

  • LayoutReloaded/FormattingContext/InlineFormatting/InlineFormattingContext.js:

(InlineFormattingContext):
(InlineFormattingContext.prototype.layout):
(InlineFormattingContext.prototype._handleInlineContainer):
(InlineFormattingContext.prototype._handleInlineContent):
(InlineFormattingContext.prototype._handleInlineBlock):
(InlineFormattingContext.prototype._handleReplacedBox):
(InlineFormattingContext.prototype._clearNeedsLayoutAndMoveToNextSibling):
(InlineFormattingContext.prototype._handleInlineBlockContainer): Deleted.
(InlineFormattingContext.prototype._clearAndMoveToNext): Deleted.

8:01 PM Changeset in webkit [230698] by timothy@apple.com
  • 2 edits in trunk/Source/WebKit

Unreviewed 32-bit build fix for r230673.

https://bugs.webkit.org/show_bug.cgi?id=184657
rdar://problem/39463307

  • Configurations/PluginProcessShim.xcconfig: Use the correct names.
7:38 PM Changeset in webkit [230697] by Yusuke Suzuki
  • 20 edits
    20 adds in trunk

[WebAssembly][Modules] Prototype wasm import
https://bugs.webkit.org/show_bug.cgi?id=184600

Reviewed by JF Bastien.

JSTests:

Add wasm and wat files since module loader want to load wasm files from FS.
Currently, importing the other modules from wasm is not supported.

  • wasm.yaml:
  • wasm/modules/constant.wasm: Added.
  • wasm/modules/constant.wat: Added.
  • wasm/modules/js-wasm-function-namespace.js: Added.

(assert.throws):

  • wasm/modules/js-wasm-function.js: Added.

(assert.throws):

  • wasm/modules/js-wasm-global-namespace.js: Added.

(assert.throws):

  • wasm/modules/js-wasm-global.js: Added.

(assert.throws):

  • wasm/modules/js-wasm-memory-namespace.js: Added.

(assert.throws):

  • wasm/modules/js-wasm-memory.js: Added.

(assert.throws):

  • wasm/modules/js-wasm-start.js: Added.

(then):

  • wasm/modules/js-wasm-table-namespace.js: Added.

(assert.throws):

  • wasm/modules/js-wasm-table.js: Added.

(assert.throws):

  • wasm/modules/memory.wasm: Added.
  • wasm/modules/memory.wat: Added.
  • wasm/modules/start.wasm: Added.
  • wasm/modules/start.wat: Added.
  • wasm/modules/sum.wasm: Added.
  • wasm/modules/sum.wat: Added.
  • wasm/modules/table.wasm: Added.
  • wasm/modules/table.wat: Added.

Source/JavaScriptCore:

This patch is an initial attempt to implement Wasm loading in module pipeline.
Currently,

  1. We only support Wasm loading in the JSC shell. Once loading mechanism is specified in whatwg HTML, we should integrate this into WebCore.
  1. We only support exporting values from Wasm. Wasm module cannot import anything from the other modules now.

When loading a file, JSC shell checks wasm magic. If the wasm magic is found, JSC shell
loads the file with WebAssemblySourceProvider. It is wrapped into JSSourceCode and
module loader pipeline just handles it as the same to JS. When parsing a module, we
checks the type of JSSourceCode. If the source code is Wasm source code, we create a
WebAssemblyModuleRecord instead of JSModuleRecord. Our module pipeline handles
AbstractModuleRecord and Wasm module is instantiated, linked, and evaluated.

  • builtins/ModuleLoaderPrototype.js:

(globalPrivate.newRegistryEntry):
(requestInstantiate):
(link):

  • jsc.cpp:

(convertShebangToJSComment):
(fillBufferWithContentsOfFile):
(fetchModuleFromLocalFileSystem):
(GlobalObject::moduleLoaderFetch):

  • parser/SourceProvider.h:

(JSC::WebAssemblySourceProvider::create):
(JSC::WebAssemblySourceProvider::WebAssemblySourceProvider):

  • runtime/AbstractModuleRecord.cpp:

(JSC::AbstractModuleRecord::hostResolveImportedModule):
(JSC::AbstractModuleRecord::link):
(JSC::AbstractModuleRecord::evaluate):
(JSC::identifierToJSValue): Deleted.

  • runtime/AbstractModuleRecord.h:
  • runtime/JSModuleLoader.cpp:

(JSC::JSModuleLoader::evaluate):

  • runtime/JSModuleRecord.cpp:

(JSC::JSModuleRecord::link):
(JSC::JSModuleRecord::instantiateDeclarations):

  • runtime/JSModuleRecord.h:
  • runtime/ModuleLoaderPrototype.cpp:

(JSC::moduleLoaderPrototypeParseModule):
(JSC::moduleLoaderPrototypeRequestedModules):
(JSC::moduleLoaderPrototypeModuleDeclarationInstantiation):

  • wasm/js/JSWebAssemblyHelpers.h:

(JSC::getWasmBufferFromValue):
(JSC::createSourceBufferFromValue):

  • wasm/js/JSWebAssemblyInstance.cpp:

(JSC::JSWebAssemblyInstance::finalizeCreation):
(JSC::JSWebAssemblyInstance::createPrivateModuleKey):
(JSC::JSWebAssemblyInstance::create):

  • wasm/js/JSWebAssemblyInstance.h:
  • wasm/js/WebAssemblyInstanceConstructor.cpp:

(JSC::constructJSWebAssemblyInstance):

  • wasm/js/WebAssemblyModuleRecord.cpp:

(JSC::WebAssemblyModuleRecord::prepareLink):
(JSC::WebAssemblyModuleRecord::link):

  • wasm/js/WebAssemblyModuleRecord.h:
  • wasm/js/WebAssemblyPrototype.cpp:

(JSC::resolve):
(JSC::instantiate):
(JSC::compileAndInstantiate):
(JSC::WebAssemblyPrototype::instantiate):
(JSC::webAssemblyInstantiateFunc):
(JSC::webAssemblyValidateFunc):

  • wasm/js/WebAssemblyPrototype.h:
7:02 PM Changeset in webkit [230696] by Alan Bujtas
  • 1 edit
    2 adds in trunk/Tools

[LayoutReloaded] Introduce fragmentation state/context.
https://bugs.webkit.org/show_bug.cgi?id=184677

Reviewed by Antti Koivisto.

State/context for fragmented content (multicol, regions, pagination etc).

  • LayoutReloaded/FormattingContext/FragmentationContext.js: Added.

(FragmentationContext):

  • LayoutReloaded/FormattingState/FragmentationState.js: Added.

(FragmentationState):
(FragmentationState.prototype.formattingState):

6:56 PM Changeset in webkit [230695] by fpizlo@apple.com
  • 3 edits in trunk/Source/WebCore

MutationObserver should be in an IsoHeap
https://bugs.webkit.org/show_bug.cgi?id=184671
<rdar://problem/36081981>

Reviewed by Sam Weinig.

No new tests because no new behavior.

  • dom/MutationObserver.cpp:
  • dom/MutationObserver.h:
6:20 PM Changeset in webkit [230694] by aestes@apple.com
  • 6 edits in trunk

[iOS] Enable WKPDFView by default
https://bugs.webkit.org/show_bug.cgi?id=184675
<rdar://problem/27885452>

Reviewed by Darin Adler.

Source/WebKit:

  • UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm:

(-[WKWebViewContentProviderRegistry init]):

Source/WTF:

  • wtf/FeatureDefines.h:

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/WKPDFView.mm:
5:19 PM Changeset in webkit [230693] by Kocsen Chung
  • 7 edits in tags/Safari-606.1.13.2/Source

Versioning.

5:17 PM Changeset in webkit [230692] by Kocsen Chung
  • 1 copy in tags/Safari-606.1.13.2

New tag.

4:57 PM Changeset in webkit [230691] by Keith Rollin
  • 4 edits in trunk/LayoutTests

REGRESSION: [mac-wk2 release] LayoutTest http/tests/security/contentSecurityPolicy/script-src-blocked-error-event.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=184673
<rdar://problem/39474698>

Unreviewed test gardening. The test was flaky because the HTTP parser
would try to preload the Javascript resource. Sometimes this operation
would complete in time to print its own console message, duplicating a
subsequent one when the non-preloading resource-load occurs. Updated
the test to load the Javascript in such a way that it skips the reload
step.

  • TestExpectations:
  • http/tests/security/contentSecurityPolicy/script-src-blocked-error-event-expected.txt:
  • http/tests/security/contentSecurityPolicy/script-src-blocked-error-event.html:
4:46 PM Changeset in webkit [230690] by Kocsen Chung
  • 7 edits in branches/safari-605-branch/Source

Versioning.

4:43 PM Changeset in webkit [230689] by Brent Fulgham
  • 5 edits in trunk/Source

[macOS] Don't establish unneeded Dock connections
https://bugs.webkit.org/show_bug.cgi?id=184664
<rdar://problem/16863698>

Reviewed by Simon Fraser.

There is no reason for the WebContent or Plugin processes to interact with
the Dock. We should tell AppKit that we don't want this connection, and to
avoid creating such connections.

Source/WebCore/PAL:

  • pal/spi/mac/NSApplicationSPI.h: Add Dock connection declaration.

Source/WebKit:

  • PluginProcess/mac/PluginProcessMac.mm:

(WebKit::PluginProcess::platformInitializeProcess): Tell NSApplication to
not create a Dock connection.

  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::platformInitializeWebProcess): Ditto.

4:18 PM Changeset in webkit [230688] by Ross Kirsling
  • 2 edits
    208 adds in trunk/LayoutTests

Unreviewed. Update WinCairo TestExpectations in preparation for LayoutTests automation.

  • platform/wincairo/TestExpectations:

Updated current failures for directories A-E. Added temporary skips for everything after.

  • platform/wincairo/accessibility:
  • platform/wincairo/animations/3d:
  • platform/wincairo/css2.1:
  • platform/wincairo/css3:
  • platform/wincairo/editing:
  • platform/wincairo/fast/css-generated-content:
  • platform/wincairo/fast/dom:
  • platform/wincairo/legacy-animation-engine/animations/3d:
  • platform/wincairo/legacy-animation-engine/compositing:

Added expectation files.

3:59 PM Changeset in webkit [230687] by youenn@apple.com
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

Set H264 VT encoder usage to 1
https://bugs.webkit.org/show_bug.cgi?id=184668

Reviewed by Eric Carlson.

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

(-[RTCVideoEncoderH264 configureCompressionSession]):

3:46 PM Changeset in webkit [230686] by Megan Gardner
  • 4 edits in trunk

Switch to UIWKTextInteractionAssistant for non-editable text
https://bugs.webkit.org/show_bug.cgi?id=182834

Reviewed by Beth Dakin.

Source/WebKit:

Switch to only using one assistant for text selection.

  • UIProcess/ios/WKContentViewInteraction.mm:

(-[WKContentView useSelectionAssistantWithGranularity:]):

LayoutTests:

Marking tests as flaky and to be fixed later.

  • platform/ios-wk2/TestExpectations:
3:29 PM Changeset in webkit [230685] by Kocsen Chung
  • 4 edits in tags/Safari-606.1.13.1

Revert r230683. rdar://problem/39397649

3:29 PM Changeset in webkit [230684] by Kocsen Chung
  • 4 edits in tags/Safari-606.1.13.1/Source

Revert r230682. rdar://problem/39344671

2:52 PM Changeset in webkit [230683] by Kocsen Chung
  • 4 edits in tags/Safari-606.1.13.1

Cherry-pick r230665. rdar://problem/39397649

[Web Animations] Animations do not naturally get a finish event
https://bugs.webkit.org/show_bug.cgi?id=184639
<rdar://problem/39397649>

Reviewed by Jon Lee.

LayoutTests/imported/w3c:

Record two progressions in the Web Animations WPT tests.

  • web-platform-tests/web-animations/timing-model/animations/updating-the-finished-state-expected.txt:

Source/WebCore:

We must call updateFinishedState() when an animation gets sampled as it means its timeline's time has progressed
and it may have crossed to a finished state. Calling updateFinishedState() when sampling means that we'll correctly
set the animation's hold time to its end value, which means that currentTime() will now always be clamped to return
the end time once its has reached it, so we must not schedule animations to resolve immediately anymore since otherwise
they will keep being scheduled in a loop.

  • animation/WebAnimation.cpp: (WebCore::WebAnimation::timeToNextRequiredTick const): (WebCore::WebAnimation::resolve):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@230665 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2:52 PM Changeset in webkit [230682] by Kocsen Chung
  • 4 edits in tags/Safari-606.1.13.1/Source

Cherry-pick r230521. rdar://problem/39344671

[Web Animations] Turn Web Animations on by default
https://bugs.webkit.org/show_bug.cgi?id=184491

Patch by Antoine Quint <Antoine Quint> on 2018-04-11
Reviewed by Simon Fraser.

Source/WebCore:

  • page/RuntimeEnabledFeatures.h:

Source/WebKit:

  • Shared/WebPreferences.yaml:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@230521 268f45cc-cd09-0410-ab3c-d52691b4dbfc

2:50 PM Changeset in webkit [230681] by youenn@apple.com
  • 29 edits
    12 copies
    6 adds in trunk

Use NetworkLoadChecker to handle synchronous HTTP loads
https://bugs.webkit.org/show_bug.cgi?id=184240

Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/cors/request-headers-expected.txt:
  • web-platform-tests/XMLHttpRequest/access-control-and-redirects-expected.txt:
  • web-platform-tests/XMLHttpRequest/send-authentication-cors-basic-setrequestheader-expected.txt:
  • web-platform-tests/XMLHttpRequest/send-authentication-cors-setrequestheader-no-cred-expected.txt:

Source/WebCore:

Update LoaderStrategy::loadResourceSynchronously to pass FetchOptions directly.
Update various call sites accordingly. This allows NetworkProcess to do all necessary checks.
Add an option to disable security checks if NetworkProcess does it for WebProcess.
This option will be also used for regular asynchronous loads in future patches.

Update DocumentThreadableLoader to bypass preflighting and response validation checks in case they are done in NetworkProcess.

Covered by existing and rebased tests.

  • loader/CrossOriginPreflightChecker.cpp:

(WebCore::CrossOriginPreflightChecker::doPreflight):

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::DocumentThreadableLoader):
(WebCore::DocumentThreadableLoader::loadRequest):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::loadResourceSynchronously):

  • loader/FrameLoader.h:
  • loader/LoaderStrategy.h:
  • xml/XSLTProcessorLibxslt.cpp:

(WebCore::docLoaderFunc):

  • xml/parser/XMLDocumentParserLibxml2.cpp:

(WebCore::openFunc):

Source/WebKit:

For every NetworkResourceLoader synchronous load, we create a NetworkLoadChecker.
NetworkLoadChecker handles all security checks in that case.
This allows supporting cross-origin loads for synchronous XHR.

Updated NetworkCORSPreflightChecker to return the result as a ResourceError.
This is used to convey any error message from NetworkProcess to the JS console.
Ensure NetworkCORSPreflightChecker computes correctly Access-Control-Request-Headers value
by providing the headers set by the application plus Referrer/Origin.

  • NetworkProcess/NetworkCORSPreflightChecker.cpp:

(WebKit::NetworkCORSPreflightChecker::~NetworkCORSPreflightChecker):
(WebKit::NetworkCORSPreflightChecker::willPerformHTTPRedirection):
(WebKit::NetworkCORSPreflightChecker::didReceiveChallenge):
(WebKit::NetworkCORSPreflightChecker::didCompleteWithError):
(WebKit::NetworkCORSPreflightChecker::wasBlocked):
(WebKit::NetworkCORSPreflightChecker::cannotShowURL):

  • NetworkProcess/NetworkLoadChecker.cpp:

(WebKit::NetworkLoadChecker::checkCORSRequestWithPreflight):

  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::NetworkResourceLoader):
(WebKit::NetworkResourceLoader::retrieveCacheEntry):
(WebKit::NetworkResourceLoader::didReceiveResponse):
(WebKit::NetworkResourceLoader::willSendRedirectedRequest):
(WebKit::NetworkResourceLoader::continueWillSendRequest):
(WebKit::NetworkResourceLoader::didRetrieveCacheEntry):
(WebKit::NetworkResourceLoader::validateCacheEntry):

  • NetworkProcess/NetworkResourceLoader.h:
  • WebProcess/Network/WebLoaderStrategy.cpp:

(WebKit::WebLoaderStrategy::loadResourceSynchronously):

  • WebProcess/Network/WebLoaderStrategy.h:

Source/WebKitLegacy:

  • WebCoreSupport/WebResourceLoadScheduler.cpp:

(WebResourceLoadScheduler::loadResourceSynchronously):

  • WebCoreSupport/WebResourceLoadScheduler.h:

LayoutTests:

  • http/tests/xmlhttprequest/access-control-preflight-not-successful-expected.txt:
  • http/wpt/beacon/cors/cors-preflight-blob-failure.html: Fix buggy assertion.

Test should check for actual request header and not header name in Access-Control-Request-Headers.

  • http/wpt/beacon/cors/cors-preflight-blob-success.html: Ditto.
  • platform/mac-wk1/http/tests/xmlhttprequest/access-control-and-redirects-expected.txt: Added.
  • platform/mac-wk1/http/tests/xmlhttprequest/access-control-preflight-not-successful-expected.txt: Added.
  • platform/mac-wk1/http/tests/xmlhttprequest/cross-origin-no-authorization-expected.txt: Added.
  • platform/mac-wk1/imported/w3c/web-platform-tests/XMLHttpRequest/access-control-and-redirects-expected.txt: Added.
  • platform/win/http/tests/xmlhttprequest/access-control-and-redirects-expected.txt: Added.
  • platform/win/http/tests/xmlhttprequest/access-control-preflight-not-successful-expected.txt: Added.
  • platform/win/http/tests/xmlhttprequest/cross-origin-no-authorization-expected.txt: Added.
  • platform/mac-highsierra-wk2/imported/w3c/web-platform-tests/XMLHttpRequest/send-authentication-cors-basic-setrequestheader-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-authentication-cors-basic-setrequestheader-expected.txt.
  • platform/mac-highsierra-wk2/imported/w3c/web-platform-tests/XMLHttpRequest/send-authentication-cors-setrequestheader-no-cred-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-authentication-cors-setrequestheader-no-cred-expected.txt.
  • platform/mac-wk1/imported/w3c/web-platform-tests/XMLHttpRequest/send-authentication-cors-basic-setrequestheader-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-authentication-cors-basic-setrequestheader-expected.txt.
  • platform/mac-wk1/imported/w3c/web-platform-tests/XMLHttpRequest/send-authentication-cors-setrequestheader-no-cred-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-authentication-cors-setrequestheader-no-cred-expected.txt.
  • platform/mac-wk1/imported/w3c/web-platform-tests/cors/request-headers-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/cors/request-headers-expected.txt.
  • platform/win/http/tests/xmlhttprequest/access-control-and-redirects-expected.txt:
  • platform/win/http/tests/xmlhttprequest/access-control-preflight-not-successful-expected.txt:
  • platform/win/imported/w3c/web-platform-tests/XMLHttpRequest/send-authentication-cors-basic-setrequestheader-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-authentication-cors-basic-setrequestheader-expected.txt.
  • platform/win/imported/w3c/web-platform-tests/XMLHttpRequest/send-authentication-cors-setrequestheader-no-cred-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/XMLHttpRequest/send-authentication-cors-setrequestheader-no-cred-expected.txt.
  • platform/win/imported/w3c/web-platform-tests/cors/request-headers-expected.txt: Copied from LayoutTests/imported/w3c/web-platform-tests/cors/request-headers-expected.txt.
2:03 PM Changeset in webkit [230680] by msaboff@apple.com
  • 1 edit
    121 adds in trunk/Tools

Perl-based Test262 runner
https://bugs.webkit.org/show_bug.cgi?id=183343

Patch by Leo Balter <Leo Balter> on 2018-04-16
Reviewed by Michael Saboff.

  • Scripts/test262-helpers/README.md: Added.
  • Scripts/test262-helpers/agent.js: Added.

(262.getGlobal):
(262.setGlobal):
(262.destroy):
(262.IsHTMLDDA):

  • Scripts/test262-helpers/cpanfile: Added.
  • Scripts/test262-helpers/cpanfile.snapshot: Added.
  • Scripts/test262-helpers/test262-runner.pl: Added.

(main):
(processFile):
(getScenarios):
(addScenario):
(compileTest):
(runTest):
(processResult):
(getTempFile):
(getContents):
(parseData):
(getHarness):

  • Scripts/test262-helpers/tests.log: Added.
1:56 PM WPE edited by clopez@igalia.com
update isntructions for wpebackend-fdo (diff)
12:45 PM Changeset in webkit [230679] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[WinCairo] Media elements should be enabled by default
https://bugs.webkit.org/show_bug.cgi?id=184597

Patch by Christopher Reid <chris.reid@sony.com> on 2018-04-16
Reviewed by Per Arne Vollan.

Enabling media elements by default with media foundation.

  • page/SettingsDefaultValues.h:
12:22 PM Changeset in webkit [230678] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[Curl] Add the Accept-Language field to curl request headers
https://bugs.webkit.org/show_bug.cgi?id=184605

Patch by Christopher Reid <chris.reid@sony.com> on 2018-04-16
Reviewed by Alex Christensen.

Add Accept-Language field to curl request headers

  • platform/network/curl/CurlRequest.cpp:
  • platform/network/curl/CurlRequest.h:
12:20 PM Changeset in webkit [230677] by pvollan@apple.com
  • 2 edits in trunk/Source/WTF

Deactivate the WindowServer connection for the WebContent process.
https://bugs.webkit.org/show_bug.cgi?id=184451
<rdar://problem/38313938>

Reviewed by Brent Fulgham.

Defining ENABLE_WEBPROCESS_WINDOWSERVER_BLOCKING as 1 will deactivate the WindowServer connection
for the WebContent process by enabling the call to 'CGSSetDenyWindowServerConnections(true)' on
process startup. After calling this function, every attempt to establish a connection to the
WindowServer from the WebContent process will fail, except for CA render server connections.

  • wtf/FeatureDefines.h:
12:02 PM Changeset in webkit [230676] by Chris Dumez
  • 10 edits in trunk/Source/WebCore

Move more WindowProxy-related logic from ScriptController to WindowProxyController
https://bugs.webkit.org/show_bug.cgi?id=184640

Reviewed by Ryosuke Niwa.

Move more WindowProxy-related logic from ScriptController to WindowProxyController,
for clarity.

  • bindings/js/JSDOMWindowProxy.cpp:

(WebCore::JSDOMWindowProxy::attachDebugger):

  • bindings/js/JSDOMWindowProxy.h:
  • bindings/js/ScriptCachedFrameData.cpp:

(WebCore::ScriptCachedFrameData::ScriptCachedFrameData):
(WebCore::ScriptCachedFrameData::restore):

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::~ScriptController):
(WebCore::ScriptController::initScriptForWindowProxy):

  • bindings/js/ScriptController.h:

(WebCore::ScriptController::existingCacheableBindingRootObject const):

  • bindings/js/WindowProxyController.cpp:

(WebCore::collectGarbageAfterWindowProxyDestruction):
(WebCore::WindowProxyController::~WindowProxyController):
(WebCore::WindowProxyController::clearWindowProxiesNotMatchingDOMWindow):
(WebCore::WindowProxyController::setDOMWindowForWindowProxy):
(WebCore::WindowProxyController::attachDebugger):

  • bindings/js/WindowProxyController.h:
  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::clear):

  • page/Page.cpp:

(WebCore::Page::setDebugger):

11:53 AM Changeset in webkit [230675] by BJ Burg
  • 3 edits in trunk/Source/WebKit

[Cocoa] Web Automation: add SPI to terminate automation session and disconnect the remote end
https://bugs.webkit.org/show_bug.cgi?id=184523
<rdar://problem/39368599>

Reviewed by Simon Fraser.

When a user breaks the automation glass pane and chooses "Stop Session", there is no way
for Safari to actually disconnect the remote connection using automation-related ObjC SPI.
This can lead to sessions getting stuck and safaridriver is unable to request a new session.

Expose the -terminate method as SPI. This disconnects the remote connection and then notifies
the session delegate that the remote disconnected. At that point, Safari can uninstall
the session from the process pool and tear down other session state.

  • UIProcess/API/Cocoa/_WKAutomationSession.h:
  • UIProcess/API/Cocoa/_WKAutomationSession.mm:

(-[_WKAutomationSession terminate]):

11:33 AM Changeset in webkit [230674] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

[GStreamer] Set *TrackPrivateGStreamer::active based on GstStream default select in constructor
https://bugs.webkit.org/show_bug.cgi?id=184652

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

In the constructor we should mark selected streams based on the default values from GstStream,
if the user changes them, they will be updated as required later on.

No new tests are added as we already have a few ones that are currently disabled in
the mediastream testsuite. This patch is part of the work to enable them.

  • platform/graphics/gstreamer/AudioTrackPrivateGStreamer.cpp:

(WebCore::AudioTrackPrivateGStreamer::AudioTrackPrivateGStreamer):

  • platform/graphics/gstreamer/VideoTrackPrivateGStreamer.cpp:

(WebCore::VideoTrackPrivateGStreamer::VideoTrackPrivateGStreamer):

11:29 AM Changeset in webkit [230673] by timothy@apple.com
  • 5 edits in trunk/Source/WebKit

Clean up OTHER_LDFLAGS for WebKit processes
https://bugs.webkit.org/show_bug.cgi?id=184657

Reviewed by Jer Noble.

  • Configurations/PluginProcessShim.xcconfig:
  • Configurations/PluginService.32.xcconfig:
  • Configurations/PluginService.64.xcconfig:
  • Configurations/WebContentService.xcconfig:
11:05 AM Changeset in webkit [230672] by Kocsen Chung
  • 7 edits in tags/Safari-606.1.13.1/Source

Versioning.

10:55 AM Changeset in webkit [230671] by bshafiei@apple.com
  • 7 edits in trunk/Source

Versioning.

10:48 AM Changeset in webkit [230670] by Kocsen Chung
  • 1 copy in tags/Safari-606.1.13.1

New tag.

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

[GStreamer] Set TrackPrivateBaseGStreamer metadata information even if no client is avalaible
https://bugs.webkit.org/show_bug.cgi?id=184651

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

We can't notify the client if none is connected, but still we need to fill our metadatas from
the provided GstTagList, especially in the case of playbin3 where the client is not set yet
at construct time but the metadata might already be preset (and won't be updated later on).

No new tests are added as we already have a few ones that are currently disabled in
the mediastream testsuite. This patch is part of the work to enable them.

  • platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:

(WebCore::TrackPrivateBaseGStreamer::notifyTrackOfTagsChanged):

7:36 AM Changeset in webkit [230668] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Mark css3/filters/blur-various-radii.html as a crash on Windows.
https://bugs.webkit.org/show_bug.cgi?id=184649

Unreviewed test gardening.

  • platform/win/TestExpectations:
1:47 AM Changeset in webkit [230667] by graouts@webkit.org
  • 4 edits in trunk

[Web Animations] Ensure we never return -0 through the API
https://bugs.webkit.org/show_bug.cgi?id=184644

Reviewed by Dean Jackson.

LayoutTests/imported/w3c:

Record one progression in the Web Animations WPT tests.

  • web-platform-tests/web-animations/timing-model/animations/updating-the-finished-state-expected.txt:

Source/WebCore:

We could sometimes return -0 instead of 0, which is surprising and leads to an error in WPT tests.
This would happen when playbackRate < 0.

  • animation/WebAnimationUtilities.h:

(WebCore::secondsToWebAnimationsAPITime):

Apr 15, 2018:

11:58 PM Changeset in webkit [230666] by rniwa@webkit.org
  • 7 edits in trunk/Websites/perf.webkit.org

Make it possible to hide some repository groups
https://bugs.webkit.org/show_bug.cgi?id=184632

Reviewed by Saam Barati.

Added the ability to hide repository groups in the custom analysis task configurator from the admin page.
Hidden repositroy groups will continue to function for existing test groups. This is purely an UI change.

  • init-database.sql: Added repositorygroup_hidden as a new column to triggerable_repository_groups.
  • public/admin/triggerables.php: Added a form field to hide a repository group.
  • public/include/manifest-generator.php: Include hidden state in the manifest file.
  • public/v3/components/custom-analysis-task-configurator.js:

(CustomAnalysisTaskConfigurator.prototype._renderRepositoryPanes): Filter out hidden repository groups.

  • public/v3/models/triggerable.js:

(prototype.isHidden): Added.

  • server-tests/api-manifest-tests.js: Updated an existing test case to test a hidden repository group.
10:38 PM Changeset in webkit [230665] by graouts@webkit.org
  • 4 edits in trunk

[Web Animations] Animations do not naturally get a finish event
https://bugs.webkit.org/show_bug.cgi?id=184639
<rdar://problem/39397649>

Reviewed by Jon Lee.

LayoutTests/imported/w3c:

Record two progressions in the Web Animations WPT tests.

  • web-platform-tests/web-animations/timing-model/animations/updating-the-finished-state-expected.txt:

Source/WebCore:

We must call updateFinishedState() when an animation gets sampled as it means its timeline's time has progressed
and it may have crossed to a finished state. Calling updateFinishedState() when sampling means that we'll correctly
set the animation's hold time to its end value, which means that currentTime() will now always be clamped to return
the end time once its has reached it, so we must not schedule animations to resolve immediately anymore since otherwise
they will keep being scheduled in a loop.

  • animation/WebAnimation.cpp:

(WebCore::WebAnimation::timeToNextRequiredTick const):
(WebCore::WebAnimation::resolve):

6:01 PM Changeset in webkit [230664] by Chris Dumez
  • 21 edits
    2 adds in trunk

Change Event's returnValue so it doesn't expose a new primitive
https://bugs.webkit.org/show_bug.cgi?id=184415

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Import test coverage from https://github.com/w3c/web-platform-tests/pull/10258.

  • web-platform-tests/dom/events/AddEventListenerOptions-passive-expected.txt:
  • web-platform-tests/dom/events/AddEventListenerOptions-passive.html:
  • web-platform-tests/dom/events/Event-constructors.html:
  • web-platform-tests/dom/events/Event-defaultPrevented-after-dispatch-expected.txt:
  • web-platform-tests/dom/events/Event-defaultPrevented-after-dispatch.html:
  • web-platform-tests/dom/events/Event-defaultPrevented-expected.txt:
  • web-platform-tests/dom/events/Event-defaultPrevented.html:
  • web-platform-tests/dom/events/Event-dispatch-click.html:
  • web-platform-tests/dom/events/Event-dispatch-detached-click.html:
  • web-platform-tests/dom/events/Event-dispatch-other-document.html:
  • web-platform-tests/dom/events/Event-initEvent.html:
  • web-platform-tests/dom/events/Event-returnValue-expected.txt: Added.
  • web-platform-tests/dom/events/Event-returnValue.html: Added.
  • web-platform-tests/dom/events/EventListener-handleEvent.html:
  • web-platform-tests/dom/events/EventTarget-dispatchEvent-returnvalue-expected.txt:
  • web-platform-tests/dom/events/EventTarget-dispatchEvent-returnvalue.html:
  • web-platform-tests/dom/events/w3c-import.log:
  • web-platform-tests/dom/interfaces-expected.txt:
  • web-platform-tests/interfaces/dom.idl:

Source/WebCore:

Update Event.returnValue setter to match the latest DOM specification after:

In particular, the returnValue setter is now a no-op if the new flag value
is true. If the input flag value is false, it only sets the 'canceled' flag
if the event is cancelable and the event’s in passive listener flag is unset.

Test: imported/w3c/web-platform-tests/dom/events/Event-returnValue.html

  • dom/Event.cpp:

(WebCore::Event::setLegacyReturnValue):
(WebCore::Event::setCanceledFlagIfPossible):
(WebCore::Event::preventDefault):

  • dom/Event.h:
2:21 PM Changeset in webkit [230663] by aestes@apple.com
  • 3 edits
    1 add in trunk/Tools

[iOS] Add API tests for PDF find-in-page
https://bugs.webkit.org/show_bug.cgi?id=184634

Reviewed by Dan Bernstein.

  • TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
  • TestWebKitAPI/Tests/WebKit/find.pdf: Added.
  • TestWebKitAPI/Tests/WebKitCocoa/WKPDFView.mm:

(-[TestFindDelegate findString]):
(-[TestFindDelegate _webView:didCountMatches:forString:]):
(-[TestFindDelegate _webView:didFindMatches:forString:withMatchIndex:]):
(-[TestFindDelegate _webView:didFailToFindString:]):
(loadWebView):
(TEST):

10:38 AM Changeset in webkit [230662] by fpizlo@apple.com
  • 7 edits
    5 adds in trunk

Function.prototype.caller shouldn't return generator bodies
https://bugs.webkit.org/show_bug.cgi?id=184630

Reviewed by Yusuke Suzuki.
JSTests:

  • stress/function-caller-async-arrow-function-body.js: Added.
  • stress/function-caller-async-function-body.js: Added.
  • stress/function-caller-async-generator-body.js: Added.
  • stress/function-caller-generator-body.js: Added.
  • stress/function-caller-generator-method-body.js: Added.

Source/JavaScriptCore:


Function.prototype.caller no longer returns generator bodies. Those are meant to be
private.

Also added some builtin debugging tools so that it's easier to do the investigation that I
did.

  • builtins/BuiltinNames.h:
  • runtime/JSFunction.cpp:

(JSC::JSFunction::callerGetter):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/JSGlobalObjectFunctions.cpp:

(JSC::globalFuncBuiltinDescribe):

  • runtime/JSGlobalObjectFunctions.h:
9:32 AM Changeset in webkit [230661] by Michael Catanzaro
  • 4 edits
    1 add in trunk

[WPE] Install files needed for WebKitWebExtensions
https://bugs.webkit.org/show_bug.cgi?id=179915

Reviewed by Žan Doberšek.

.:

  • Source/cmake/OptionsWPE.cmake:

Source/WebKit:

  • PlatformWPE.cmake: Install pkg-config file, injected bundle, and API headers.
  • UIProcess/API/glib/WebKitWebContext.cpp: Load the injected bundle when installed.
  • wpe/wpe-web-extension.pc.in: Added.

Apr 14, 2018:

6:42 PM Changeset in webkit [230660] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

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

Landed prematurely (Requested by ap on #webkit).

Reverted changeset:

"Deactivate the WindowServer connection for the WebContent
process."
https://bugs.webkit.org/show_bug.cgi?id=184451
https://trac.webkit.org/changeset/230659

10:57 AM Changeset in webkit [230659] by pvollan@apple.com
  • 2 edits in trunk/Source/WTF

Deactivate the WindowServer connection for the WebContent process.
https://bugs.webkit.org/show_bug.cgi?id=184451
<rdar://problem/38313938>

Reviewed by Brent Fulgham.

Defining ENABLE_WEBPROCESS_WINDOWSERVER_BLOCKING as 1 will deactivate the WindowServer connection
for the WebContent process by enabling the call to 'CGSSetDenyWindowServerConnections(true)' on
process startup. After calling this function, every attempt to establish a connection to the
WindowServer from the WebContent process will fail, except for CA render server connections.

  • wtf/FeatureDefines.h:
2:11 AM Changeset in webkit [230658] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GStreamer] Expose a method to retrieve the GstStream from a TrackPrivateBaseGStreamer
https://bugs.webkit.org/show_bug.cgi?id=184620

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

This is a minor change, a dedicated test doesn't really make sense here.

  • platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h:

(WebCore::TrackPrivateBaseGStreamer::stream):

12:00 AM Changeset in webkit [230657] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[GTK][WPE] Build is broken after r230640
https://bugs.webkit.org/show_bug.cgi?id=184623

Patch by Carlos Eduardo Ramalho <cadubentzen@gmail.com> on 2018-04-14
Reviewed by Žan Doberšek.

UIProcess/SuspendedPageProxy.cpp was not included to CMake build in r230640.

  • CMakeLists.txt: Added UIProcess/SuspendedPageProxy.cpp to WebKit_SOURCES.

Apr 13, 2018:

9:48 PM Changeset in webkit [230656] by Alan Bujtas
  • 19 edits
    1 delete in trunk/Tools

[LayoutReloaded] Update class documentation
https://bugs.webkit.org/show_bug.cgi?id=184625

Reviewed by Antti Koivisto.

  • LayoutReloaded/DisplayTree/Box.js:
  • LayoutReloaded/FormattingContext/BlockFormatting/BlockFormattingContext.js:
  • LayoutReloaded/FormattingContext/BlockFormatting/BlockMarginCollapse.js:
  • LayoutReloaded/FormattingContext/FloatingContext.js:
  • LayoutReloaded/FormattingContext/FormattingContext.js:
  • LayoutReloaded/FormattingContext/InlineFormatting/InlineFormattingContext.js:
  • LayoutReloaded/FormattingContext/InlineFormatting/Line.js:
  • LayoutReloaded/FormattingState/BlockFormattingState.js:
  • LayoutReloaded/FormattingState/FloatingState.js:
  • LayoutReloaded/FormattingState/FormattingState.js:
  • LayoutReloaded/FormattingState/InlineFormattingState.js:
  • LayoutReloaded/LayoutState.js:
  • LayoutReloaded/LayoutTree/BlockContainer.js:
  • LayoutReloaded/LayoutTree/Box.js:
  • LayoutReloaded/LayoutTree/Container.js:
  • LayoutReloaded/LayoutTree/InlineBox.js:
  • LayoutReloaded/LayoutTree/InlineContainer.js:
  • LayoutReloaded/LayoutTree/Text.js:
  • LayoutReloaded/misc/headers/BlockContainer.h: Removed.
  • LayoutReloaded/misc/headers/BlockFormattingContext.h: Removed.
  • LayoutReloaded/misc/headers/BlockMarginCollapse.h: Removed.
  • LayoutReloaded/misc/headers/Box.h: Removed.
  • LayoutReloaded/misc/headers/Container.h: Removed.
  • LayoutReloaded/misc/headers/FloatingContext.h: Removed.
  • LayoutReloaded/misc/headers/FormattingContext.h: Removed.
  • LayoutReloaded/misc/headers/InitialBlockContainer.h: Removed.
  • LayoutReloaded/misc/headers/InlineBox.h: Removed.
  • LayoutReloaded/misc/headers/LayoutContext.h: Removed.
  • LayoutReloaded/misc/headers/Line.h: Removed.
  • LayoutReloaded/misc/headers/Text.h: Removed.
8:21 PM Changeset in webkit [230655] by Alan Bujtas
  • 7 edits in trunk/Tools

[LayoutReloaded] Add simple implementation for FormattingState::markNeedsLayout()
https://bugs.webkit.org/show_bug.cgi?id=184621

Reviewed by Antti Koivisto.

This is just a simple, mark ancestors dirty implementation.

  • LayoutReloaded/FormattingState/FormattingState.js:

(FormattingState.prototype.markNeedsLayout):

  • LayoutReloaded/LayoutState.js:

(LayoutState.prototype.markNeedsLayout):
(LayoutState.prototype.setNeedsLayoutById): Deleted.
(LayoutState.prototype.setNeedsLayout): Deleted.

  • LayoutReloaded/TreeBuilder.js:

(TreeBuilder.prototype._createAndAttachBox):
(TreeBuilder.prototype._findBox): Deleted.

  • LayoutReloaded/Utils.js:

(Utils.layoutBoxById):

  • LayoutReloaded/test/index.html:
  • LayoutReloaded/test/simple-incremental-layout-with-static-content.html:
8:14 PM Changeset in webkit [230654] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GTK][Wayland] Unflag test-case fast/canvas/canvas-createPattern-video-modify.html
https://bugs.webkit.org/show_bug.cgi?id=182432

Patch by Carlos Ramalho <cadubentzen@gmail.com> on 2018-04-13
Reviewed by Michael Catanzaro.

  • platform/gtk-wayland/TestExpectations: Unmarked fast/canvas/canvas-createPattern-video-modify.html
7:14 PM Changeset in webkit [230653] by clopez@igalia.com
  • 2 edits in trunk/Tools

[WPE] [webkitpy] The driver requirements should be checked before starting the tests
https://bugs.webkit.org/show_bug.cgi?id=184595

Reviewed by Michael Catanzaro.

Ensure Driver.check_driver() is checked at check_sys_deps() time.

  • Scripts/webkitpy/port/wpe.py:

(WPEPort.check_sys_deps):

6:07 PM Changeset in webkit [230652] by Ryan Haddad
  • 2 edits in trunk/Source/WebKit

Unreviewed, rolling out r230447.

Caused flaky selection test failures on iOS

Reverted changeset:

"Switch to UIWKTextInteractionAssistant for non-editable text"
https://bugs.webkit.org/show_bug.cgi?id=182834
https://trac.webkit.org/changeset/230447

5:39 PM Changeset in webkit [230651] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark http/wpt/service-workers/header-filtering.https.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=184469

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
5:39 PM Changeset in webkit [230650] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark http/tests/cache-storage/cache-records-persistency.https.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=177380

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations:
5:39 PM Changeset in webkit [230649] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark media/audio-concurrent-supported.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=184612

Unreviewed test gardening.

  • platform/mac/TestExpectations:
5:39 PM Changeset in webkit [230648] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Mark media/video-volume-slider-drag.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=184610

Unreviewed test gardening.

  • platform/mac/TestExpectations:
4:30 PM Changeset in webkit [230647] by Ryan Haddad
  • 3 edits in trunk/LayoutTests

Skip animations/added-while-suspended.html and transitions/created-while-suspended.html.
https://bugs.webkit.org/show_bug.cgi?id=184608

Unreviewed test gardening.

  • platform/ios/TestExpectations:
  • platform/mac/TestExpectations:
3:50 PM Changeset in webkit [230646] by Kocsen Chung
  • 1 copy in tags/Safari-605.1.33.1.4

Tag Safari-605.1.33.1.4.

3:48 PM Changeset in webkit [230645] by Kocsen Chung
  • 1 copy in tags/Safari-605.1.33.0.3

Tag Safari-605.1.33.0.3.

3:42 PM Changeset in webkit [230644] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

WebKit crashes when libwebrtc.dylib is missing
https://bugs.webkit.org/show_bug.cgi?id=184607

Rubber-stamped by Jer Noble.

Don't call LibWebRTC related code when libwebrtc is not available.

  • dom/Document.cpp:

(WebCore::Document::prepareForDestruction):
(WebCore::Document::suspend):

2:23 PM Changeset in webkit [230643] by Chris Dumez
  • 24 edits
    2 adds in trunk/Source

Split WindowProxy handling out of ScriptController and into a new class owned by AbstractFrame
https://bugs.webkit.org/show_bug.cgi?id=184591

Reviewed by Sam Weinig.

Source/WebCore:

Split WindowProxy handling out of ScriptController and into a new class owned by AbstractFrame.
RemoteFrames do not need a ScriptController but do need to maintain WindowProxies.
This is work towards fixing Bug 184515.

  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/DOMWrapperWorld.cpp:

(WebCore::DOMWrapperWorld::~DOMWrapperWorld):
(WebCore::DOMWrapperWorld::clearWrappers):

  • bindings/js/DOMWrapperWorld.h:

(WebCore::DOMWrapperWorld::didCreateWindowProxy):
(WebCore::DOMWrapperWorld::didDestroyWindowProxy):

  • bindings/js/JSBindingsAllInOne.cpp:
  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::toJSDOMWindow):

  • bindings/js/JSDOMWindowProxy.cpp:

(WebCore::toJS):
(WebCore::toJSDOMWindowProxy):

  • bindings/js/ScriptCachedFrameData.cpp:

(WebCore::ScriptCachedFrameData::ScriptCachedFrameData):
(WebCore::ScriptCachedFrameData::restore):

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::~ScriptController):
(WebCore::ScriptController::evaluateInWorld):
(WebCore::ScriptController::loadModuleScriptInWorld):
(WebCore::ScriptController::linkAndEvaluateModuleScriptInWorld):
(WebCore::ScriptController::evaluateModule):
(WebCore::ScriptController::clearWindowProxiesNotMatchingDOMWindow):
(WebCore::ScriptController::setDOMWindowForWindowProxy):
(WebCore::ScriptController::initScriptForWindowProxy):
(WebCore::ScriptController::setupModuleScriptHandlers):
(WebCore::ScriptController::windowProxyController):
(WebCore::ScriptController::enableEval):
(WebCore::ScriptController::enableWebAssembly):
(WebCore::ScriptController::disableEval):
(WebCore::ScriptController::disableWebAssembly):
(WebCore::ScriptController::attachDebugger):
(WebCore::ScriptController::updateDocument):
(WebCore::ScriptController::collectIsolatedContexts):
(WebCore::ScriptController::windowScriptNPObject):
(WebCore::ScriptController::executeIfJavaScriptURL):

  • bindings/js/ScriptController.h:

(WebCore::ScriptController::globalObject):

  • bindings/js/ScriptControllerMac.mm:

(WebCore::ScriptController::windowScriptObject):

  • bindings/js/ScriptState.cpp:

(WebCore::mainWorldExecState):

  • bindings/js/WindowProxyController.cpp: Added.

(WebCore::WindowProxyController::WindowProxyController):
(WebCore::WindowProxyController::destroyWindowProxy):
(WebCore::WindowProxyController::createWindowProxy):
(WebCore::WindowProxyController::windowProxies):
(WebCore::WindowProxyController::createWindowProxyWithInitializedScript):

  • bindings/js/WindowProxyController.h: Added.

(WebCore::WindowProxyController::releaseWindowProxies):
(WebCore::WindowProxyController::setWindowProxies):
(WebCore::WindowProxyController::windowProxy):
(WebCore::WindowProxyController::existingWindowProxy const):
(WebCore::WindowProxyController::globalObject):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::dispatchDidClearWindowObjectInWorld):

  • page/AbstractFrame.cpp:

(WebCore::AbstractFrame::AbstractFrame):

  • page/AbstractFrame.h:

(WebCore::AbstractFrame::windowProxyController):
(WebCore::AbstractFrame::windowProxyController const):

Source/WebKit:

Split WindowProxy handling out of ScriptController and into a new class owned by AbstractFrame.
RemoteFrames do not need a ScriptController but do need to maintain WindowProxies.
This is work towards fixing Bug 184515.

  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::windowScriptNPObject):

Source/WebKitLegacy/mac:

Split WindowProxy handling out of ScriptController and into a new class owned by AbstractFrame.
RemoteFrames do not need a ScriptController but do need to maintain WindowProxies.
This is work towards fixing Bug 184515.

  • Plugins/Hosted/NetscapePluginInstanceProxy.mm:

(WebKit::NetscapePluginInstanceProxy::getWindowNPObject):

  • WebView/WebFrame.mm:

(-[WebFrame _attachScriptDebugger]):

Source/WTF:

Add isEmpty() convenience method to SizedIteratorRange.

  • wtf/IteratorRange.h:

(WTF::SizedIteratorRange::isEmpty const):

11:40 AM Changeset in webkit [230642] by Alan Bujtas
  • 2 edits in trunk/Tools

Rebaseline LayoutReloaded patch file (collectRenderersWithNeedsLayout).

  • LayoutReloaded/misc/LayoutReloadedWebKit.patch:
11:11 AM Changeset in webkit [230641] by Jonathan Bedard
  • 2 edits in trunk/Tools

Boot fewer simulators in CI/EWS machines
https://bugs.webkit.org/show_bug.cgi?id=184594
<rdar://problem/39188082>

Reviewed by Alexey Proskuryakov.

This is a temporary workaround fro <rdar://problem/39393590>.

  • Scripts/webkitpy/xcode/simulated_device.py:

(SimulatedDeviceManager): Treat simulators as taking 6 gigs instead of 2.

11:04 AM Changeset in webkit [230640] by beidson@apple.com
  • 22 edits
    1 copy
    1 add in trunk

Introduce SuspendedPageProxy to keep old web processes around after their WebPageProxy has been swapped to a new one.
https://bugs.webkit.org/show_bug.cgi?id=184559

Reviewed by Alex Christensen.

Source/WebCore:

Covered by new API test.

WebCore changes rework the meaning of a "ForSuspension" policy to simply navigate the page to about:blank.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::redirectReceived):
(WebCore::DocumentLoader::willSendRequest):
(WebCore::DocumentLoader::startLoadingMainResource):

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

(WebCore::FrameLoader::init):
(WebCore::FrameLoader::continueLoadAfterNavigationPolicy):

Source/WebKit:

Before this patch, when a WebPageProxy navigates and is swapped to a new process, the old process almost always goes away.

This is not desirable for a few reasons:
1 - We can't keep the PageCache working for back/forward scenarios
2 - We throw away a "foo.com" web process, meaning the next time we need to host a "foo.com" web page we have to launch

and initialize a new web process.

This patch adds a SuspendedPageProxy object to keep around the old web process and to manage communication with it.

For now, a WebPageProxy keeps exactly one "suspended page" representing the most recently visited page and its process.
Additionally, that process is never reused.

So no benefit is achieved with this patch, but it enables future benefits.

  • Platform/Logging.h:
  • Shared/WebBackForwardListItem.cpp:

(WebKit::WebBackForwardListItem::setSuspendedPage):

  • Shared/WebBackForwardListItem.h:

New object to represent the state of a WebPageProxy in an old web process that is not currently hosting the view.

  • UIProcess/SuspendedPageProxy.cpp: Added.

(WebKit::SuspendedPageProxy::SuspendedPageProxy):
(WebKit::SuspendedPageProxy::~SuspendedPageProxy):
(WebKit::SuspendedPageProxy::webProcessDidClose):
(WebKit::SuspendedPageProxy::didFinishLoad):
(WebKit::SuspendedPageProxy::didReceiveMessage):
(WebKit::SuspendedPageProxy::loggingString const):

  • UIProcess/SuspendedPageProxy.h: Copied from Source/WebKit/Platform/Logging.h.

(WebKit::SuspendedPageProxy::create):
(WebKit::SuspendedPageProxy::page const):
(WebKit::SuspendedPageProxy::process const):
(WebKit::SuspendedPageProxy::item const):
(WebKit::SuspendedPageProxy::finishedSuspending const):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::reattachToWebProcess):
(WebKit::WebPageProxy::attachToProcessForNavigation):
(WebKit::WebPageProxy::maybeCreateSuspendedPage):
(WebKit::WebPageProxy::suspendedPageProcessClosed):
(WebKit::WebPageProxy::receivedPolicyDecision):
(WebKit::WebPageProxy::didFinishLoadForFrame):

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

(WebKit::WebProcessProxy::suspendWebPageProxy):
(WebKit::WebProcessProxy::suspendedPageWasDestroyed):
(WebKit::WebProcessProxy::removeWebPage):
(WebKit::WebProcessProxy::didReceiveMessage): Optionally pass WebPageProxy messages along to SuspendedPageProxy objects.
(WebKit::WebProcessProxy::didClose):
(WebKit::WebProcessProxy::maybeShutDown):
(WebKit::WebProcessProxy::canTerminateChildProcess): Don't terminate child processes if they still have suspended pages.

  • UIProcess/WebProcessProxy.h:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setIsSuspended):

  • WebProcess/WebPage/WebPage.h:

(WebKit::WebPage::isSuspended const): For now, used only by WebProcess::updateActivePages. Will have more uses soon.

  • WebProcess/WebPage/WebPage.messages.in:
  • WebProcess/WebProcess.messages.in:
  • WebProcess/cocoa/WebProcessCocoa.mm:

(WebKit::WebProcess::updateActivePages): Allow the UIProcess to request an update of the web processes user visible name.

Source/WTF:

  • wtf/DebugUtilities.h:

(WTF::debugString): Add a debug utility to easily construct a "const char*" that is released after a spin of the run loop.

This greatly eases uses our String classes and functions inside of "%s" style environments like printf and LOG.

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
10:37 AM Changeset in webkit [230639] by Chris Dumez
  • 4 edits in trunk

input.webkitEntries does not work as expected when folder contains accented chars
https://bugs.webkit.org/show_bug.cgi?id=184517
<rdar://problem/39265537>

Reviewed by Alex Christensen.

Source/WebCore:

Use String::fromUTF8() to construct a WTF String from the char* returned by
dirname() in FileSystem::directoryName(). Previously, we were just calling
the String constructor, which would treat the input as latin 1 instead of
UTF-8.

Change is covered by an API test rather than a layout test due to file versioning
limitations.

  • platform/posix/FileSystemPOSIX.cpp:

(WebCore::FileSystem::directoryName):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebCore/FileSystem.cpp:

(TestWebKitAPI::TEST_F):

10:31 AM Changeset in webkit [230638] by Philippe Normand
  • 2 edits in trunk/Tools

Update my emails ordering in contributors.json
https://bugs.webkit.org/show_bug.cgi?id=184587

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-04-13
Rubber-stamped by Philippe Normand.

Bugzilla seems to pick up tsaunier@igalia.com which is not the one I use there.

  • Scripts/webkitpy/common/config/contributors.json:
10:01 AM Changeset in webkit [230637] by Yusuke Suzuki
  • 15 edits in trunk/Source/WebCore

[WebCore] Use @getByIdDirectPrivate / @putByIdDirectPrivate in WebCore JS
https://bugs.webkit.org/show_bug.cgi?id=184401

Rubber stamped by Saam Barati.

Apply bug 183970 changes to WebCore JS too. This offers solid type checking
with @getByIdDirectPrivate().

  • Modules/mediastream/RTCPeerConnection.js:

(initializeRTCPeerConnection):
(getLocalStreams):
(getStreamById):
(addStream):

  • Modules/mediastream/RTCPeerConnectionInternals.js:

(isRTCPeerConnection):

  • Modules/streams/ReadableByteStreamController.js:

(enqueue):
(error):
(close):
(getter.byobRequest):

  • Modules/streams/ReadableByteStreamInternals.js:

(privateInitializeReadableStreamBYOBReader):
(privateInitializeReadableByteStreamController):
(privateInitializeReadableStreamBYOBRequest):
(isReadableByteStreamController):
(isReadableStreamBYOBRequest):
(isReadableStreamBYOBReader):
(readableByteStreamControllerCancel):
(readableByteStreamControllerError):
(readableByteStreamControllerClose):
(readableByteStreamControllerClearPendingPullIntos):
(readableByteStreamControllerGetDesiredSize):
(readableStreamHasBYOBReader):
(readableStreamHasDefaultReader):
(readableByteStreamControllerHandleQueueDrain):
(readableByteStreamControllerPull):
(readableByteStreamControllerShouldCallPull):
(readableByteStreamControllerCallPullIfNeeded):
(readableByteStreamControllerEnqueue):
(readableByteStreamControllerEnqueueChunk):
(readableByteStreamControllerRespondWithNewView):
(readableByteStreamControllerRespond):
(readableByteStreamControllerRespondInternal):
(readableByteStreamControllerRespondInReadableState):
(readableByteStreamControllerRespondInClosedState):
(readableByteStreamControllerProcessPullDescriptors):
(readableByteStreamControllerFillDescriptorFromQueue):
(readableByteStreamControllerShiftPendingDescriptor):
(readableByteStreamControllerInvalidateBYOBRequest):
(readableByteStreamControllerCommitDescriptor):
(readableStreamFulfillReadIntoRequest):
(readableByteStreamControllerPullInto):
(readableStreamAddReadIntoRequest):

  • Modules/streams/ReadableStream.js:

(initializeReadableStream):
(pipeThrough):

  • Modules/streams/ReadableStreamBYOBReader.js:

(cancel):
(read):
(releaseLock):
(getter.closed):

  • Modules/streams/ReadableStreamBYOBRequest.js:

(respond):
(respondWithNewView):
(getter.view):

  • Modules/streams/ReadableStreamDefaultController.js:

(error):

  • Modules/streams/ReadableStreamDefaultReader.js:

(cancel):
(read):
(releaseLock):
(getter.closed):

  • Modules/streams/ReadableStreamInternals.js:

(privateInitializeReadableStreamDefaultReader):
(readableStreamReaderGenericInitialize):
(readableStreamDefaultControllerError):
(readableStreamPipeTo):
(readableStreamTee):
(isReadableStream):
(isReadableStreamDefaultReader):
(isReadableStreamDefaultController):
(readableStreamError):
(readableStreamDefaultControllerCallPullIfNeeded):
(readableStreamDefaultControllerGetDesiredSize):
(readableStreamReaderGenericCancel):
(readableStreamCancel):
(readableStreamDefaultControllerCancel):
(readableStreamDefaultControllerPull):
(readableStreamDefaultControllerClose):
(readableStreamClose):
(readableStreamFulfillReadRequest):
(readableStreamDefaultReaderRead):
(readableStreamAddReadRequest):
(isReadableStreamDisturbed):
(readableStreamReaderGenericRelease):
(readableStreamDefaultControllerCanCloseOrEnqueue):
(privateInitializeReadableStreamDefaultController): Deleted.

  • Modules/streams/StreamInternals.js:

(validateAndNormalizeQueuingStrategy):

  • Modules/streams/WritableStream.js:

(initializeWritableStream):
(abort):
(close):
(write):
(getter.closed):
(getter.ready):
(getter.state):

  • Modules/streams/WritableStreamInternals.js:

(isWritableStream):
(syncWritableStreamStateWithQueue):
(errorWritableStream):
(callOrScheduleWritableStreamAdvanceQueue):

  • bindings/js/JSDOMBindingInternals.js:

(mapLikeForEach):

9:54 AM Changeset in webkit [230636] by dbates@webkit.org
  • 3 edits in trunk/Source/WebKit

Inline NetworkLoad::sharedWillSendRedirectedRequest() into NetworkLoad::willPerformHTTPRedirection()
https://bugs.webkit.org/show_bug.cgi?id=184593

Reviewed by Alex Christensen.

Following the removal of the pre-Network Session code in r227364, NetworkLoad::sharedWillSendRedirectedRequest()
is only referenced from NetworkLoad::willPerformHTTPRedirection(). We should inline its
implementation into the NetworkLoad::willPerformHTTPRedirection(), remove a function call,
and the cognitive load to follow such a function call when reading the code.

No functionality changed. So, no new tests.

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::willPerformHTTPRedirection): Moved the implementation of NetworkLoad::sharedWillSendRedirectedRequest()
into this function.
(WebKit::NetworkLoad::sharedWillSendRedirectedRequest): Deleted. Moved its implementation
into NetworkLoad::willPerformHTTPRedirection().

  • NetworkProcess/NetworkLoad.h:
9:48 AM Changeset in webkit [230635] by dbates@webkit.org
  • 3 edits in trunk/Source/WebKit

Inline NetworkLoad::sharedWillSendRedirectedRequest() into NetworkLoad::willPerformHTTPRedirection()
https://bugs.webkit.org/show_bug.cgi?id=184593

Reviewed by Alex Christensen.

Following the removal of the pre-Network Session code in r227364, NetworkLoad::sharedWillSendRedirectedRequest()
is only referenced from NetworkLoad::willPerformHTTPRedirection(). We should inline its
implementation into the NetworkLoad::willPerformHTTPRedirection(), remove a function call,
and the cognitive load to follow such a function call when reading the code.

No functionality changed. So, no new tests.

  • NetworkProcess/NetworkLoad.cpp:

(WebKit::NetworkLoad::willPerformHTTPRedirection): Moved the implementation of NetworkLoad::sharedWillSendRedirectedRequest()
into this function.
(WebKit::NetworkLoad::sharedWillSendRedirectedRequest): Deleted. Moved its implementation
into NetworkLoad::willPerformHTTPRedirection().

  • NetworkProcess/NetworkLoad.h:
9:29 AM Changeset in webkit [230634] by Michael Catanzaro
  • 3 edits in trunk/Tools

[WPE] xkbcommon: ERROR: failed to add default include path /home/mcatanzaro/Projects/WebKit/WebKitBuild/DependenciesWPE/Root/share/X11/xkb
https://bugs.webkit.org/show_bug.cgi?id=184388

Reviewed by Carlos Alberto Lopez Perez.

Remove libxkbcommon from the JHBuild environment. We could alternatively add
xkeyboard-config, but there doesn't seem to be any need to build libxkbcommon because I do
not believe it depends on anything else in the JHBuild environment.

  • wpe/install-dependencies:
  • wpe/jhbuild.modules:
9:17 AM Changeset in webkit [230633] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

REGRESSION(r230468): Improper assertion firing under STP
<rdar://problem/39411676>

Unreviewed, rolling out an improper assertion.

I added an assertion in Bug 184322 that should not have been added. I did not notice that this
call stack was always used in builds where NSApp is still active. Builds where we stop relying
on AppKit runloops uses a different code path to shut down.

  • Shared/mac/ChildProcessMac.mm:

(WebKit::ChildProcess::stopNSAppRunLoop):

9:02 AM Changeset in webkit [230632] by graouts@webkit.org
  • 37 edits
    8 deletes in trunk

[Web Animations] Turn CSS Animations and CSS Transitions as Web Animations on by default
https://bugs.webkit.org/show_bug.cgi?id=184569
<rdar://problem/38671301>

Reviewed by Jon Lee.

LayoutTests/imported/w3c:

This test now fails at a later assertion, so updating the expectation for it.

  • web-platform-tests/web-animations/interfaces/Animatable/animate-expected.txt:

Source/WebCore:

We now set the CSS Animations and CSS Transitions as Web Animations flag on by default. To ensure that some remaining
tests pass with this flag on, we expose a way to get to a PseudoElement via a new internals.pseudoElement() method. This
allows tests that used internals.pauseAnimationAtTimeOnPseudoElement() and internals.pauseTransitionAtTimeOnPseudoElement()
to now work with the Web Animations API.

  • page/RuntimeEnabledFeatures.h:
  • testing/Internals.cpp:

(WebCore::Internals::pseudoElement):

  • testing/Internals.h:
  • testing/Internals.idl:

Source/WebKit:

  • Shared/WebPreferences.yaml:

Source/WebKitLegacy/mac:

  • WebView/WebPreferences.mm:

Source/WebKitLegacy/win:

Make sure Web Animations and CSS Animations and CSS Transitions are enabled by default on Windows.

  • WebPreferences.cpp:

Tools:

We set the default value for the CSS Animations and CSS Transitions as Web Animations flag to true
but override it to be false always in the LayoutTests/legacy-animation-engine directory.

  • DumpRenderTree/TestOptions.h:
  • DumpRenderTree/mac/DumpRenderTree.mm:

(shouldOverrideAndDisableCSSAnimationsAndCSSTransitionsBackedByWebAnimationsPreference):
(runTest):

  • WebKitTestRunner/TestController.cpp:

(WTR::TestController::resetPreferencesToConsistentValues):

  • WebKitTestRunner/TestOptions.cpp:

(WTR::isLegacyAnimationEngineTestPath):
(WTR::TestOptions::TestOptions):

  • WebKitTestRunner/TestOptions.h:

LayoutTests:

  • TestExpectations: A small number of tests regressed with the flag on, so we list them and have raised

bugs to fix them ASAP.

  • animations/animation-direction-alternate-reverse-expected.txt:
  • animations/animation-direction-alternate-reverse.html: This test was incorrect since it assumes that at the

end active boundary time we are using the end value whereas we are using the start value. Indeed, since the
fill-mode is "none", at the end of the active time, the progress is null per the Web Animations spec.

  • animations/animation-hit-test-transform.html: Stop using the internals method.
  • animations/animation-internals-api-expected.txt: Removed.
  • animations/animation-internals-api-multiple-keyframes-expected.txt: Removed.
  • animations/animation-internals-api-multiple-keyframes.html: Removed. This test only tests an internals method

that is no longer relevant for the new animation engine, but preserved for compatibility with legacy tests.

  • animations/animation-internals-api.html: Removed. This test only tests an internals method that is no longer

relevant for the new animation engine, but preserved for compatibility with legacy tests.

  • animations/big-rotation-expected.txt:
  • animations/big-rotation.html: Here again we are correcting a test which made the wrong assumption about the

value generated at the end active boundary time.

  • animations/duplicated-keyframes-name.html: We make the animation fill forwards to check that we are using

the correct end value for an animation with multiple 100% keyframe.

  • animations/fill-forwards-end-state.html: Same as previous test.
  • animations/fill-mode-forwards-zero-duration-expected.txt:
  • animations/fill-mode-forwards-zero-duration.html: This test should seek after its delay + duration, so we test

at 3s instead of 1s. This is due to a behavior difference between internals.pauseAnimationAtTimeOnElement() and
its replacement.

  • fast/css-generated-content/pseudo-animation.html: Use internals.pseudoElement() and the Web Animations API rather

than internals.pauseAnimationAtTimeOnPseudoElement().

  • fast/css-generated-content/pseudo-transition.html: Use internals.pseudoElement() and the Web Animations API rather

than internals.pauseTransitionAtTimeOnPseudoElement().

  • platform/ios/TestExpectations:
  • platform/win/TestExpectations: Remove references to tests that we are removing.
  • transitions/remove-transition-style.html: Use document.getAnimations() to figure out how many animations are running.
  • transitions/transition-drt-api-delay-expected.txt: Removed.
  • transitions/transition-drt-api-delay.html: Removed. This test only tests an internals method that is no longer

relevant for the new animation engine, but preserved for compatibility with legacy tests.

  • transitions/transition-drt-api-expected.txt: Removed.
  • transitions/transition-drt-api.html: Removed. This test only tests an internals method that is no longer

relevant for the new animation engine, but preserved for compatibility with legacy tests.

  • transitions/transition-hit-test-transform.html: Stop using internals.pauseTransitionAtTimeOnElement().
  • transitions/zero-duration-with-non-zero-delay-end.html: Use the Web Animations API instead of internals.numberOfActiveAnimations().
9:01 AM WebKitGTK/2.20.x edited by Michael Catanzaro
(diff)
8:57 AM WebKitGTK/2.20.x edited by Michael Catanzaro
(diff)
8:46 AM Changeset in webkit [230631] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Mark some legacy-animation-engine tests as failures on Windows.
https://bugs.webkit.org/show_bug.cgi?id=184482

Unreviewed test gardening.

  • platform/win/TestExpectations:
8:19 AM Changeset in webkit [230630] by svillar@igalia.com
  • 5 edits in trunk/Source/WebCore

[WebVR][OpenVR] Implement requestPresent()/exitPresent() and getLayers()
https://bugs.webkit.org/show_bug.cgi?id=184530

Reviewed by Žan Doberšek.

WebVR apps should invoke requestPresent() to start presenting contents of a VRLayerInit
(right now a HTML canvas with a WebGL context) on the VRDisplay. This request might fail for
a variety of reasons and can be eventually cancelled with exitPresent(). Once we are
presenting we could access the presenting layers (right now just one) with getLayers().

Note that we are not presenting anything to the HMD yet, that will be done later in a follow
up patch.

I took the chance to correct a mistak in the VRDisplayCapabilities object which has a method
that should be called maxLayers instead of maxLayer.

  • Modules/webvr/VRDisplay.cpp:

(WebCore::VRDisplay::requestPresent):
(WebCore::VRDisplay::stopPresenting):
(WebCore::VRDisplay::exitPresent):
(WebCore::VRDisplay::getLayers const):
(WebCore::VRDisplay::isPresenting const): Deleted. Implemented in the header file.

  • Modules/webvr/VRDisplay.h:

(WebCore::VRDisplay::isPresenting const):

  • Modules/webvr/VRDisplayCapabilities.h:

(WebCore::VRDisplayCapabilities::maxLayers const): Renamed from maxLayer().
(WebCore::VRDisplayCapabilities::maxLayer const): Deleted.

  • Modules/webvr/VRDisplayCapabilities.idl:
6:18 AM Changeset in webkit [230629] by magomez@igalia.com
  • 3 edits in trunk/Source/WebCore

REGRESSION(r230627): [GTK][WPE] Possible deadlock when destroying the player in non AC mode
https://bugs.webkit.org/show_bug.cgi?id=184583

Reviewed by Carlos Garcia Campos.

In non AC mode, ensure that a deadlock can't happen when destroying MediaPlayerPrivateGStreamerBase.

Covered by existent tests.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::~MediaPlayerPrivateGStreamerBase):
(WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint):
(WebCore::MediaPlayerPrivateGStreamerBase::cancelRepaint):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
3:27 AM Changeset in webkit [230628] by Claudio Saavedra
  • 2 edits in trunk/LayoutTests

[GTK][GStreamer] Mark a few crashing tests since playbin3 was made available

Unreviewed gardening

  • platform/gtk/TestExpectations:
3:09 AM Changeset in webkit [230627] by magomez@igalia.com
  • 3 edits in trunk/Source/WebCore

[GTK] [gstreamer] video won't unpause when built with -DUSE_GSTREAMER_GL=OFF
https://bugs.webkit.org/show_bug.cgi?id=183362

Reviewed by Carlos Garcia Campos.

Remove the drawCancelled flag and use a new one to indicate that the player is being destroyed.
That new flag is only enabled on destruction and it's not modified by cancelRepaint(), which
can be used to handle the pause event without avoiding future renderings. Also cancelRepaint()
has only effect when not in AC mode.

Covered by existent tests.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::~MediaPlayerPrivateGStreamerBase):
(WebCore::MediaPlayerPrivateGStreamerBase::triggerRepaint):
(WebCore::MediaPlayerPrivateGStreamerBase::cancelRepaint):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
2:05 AM Changeset in webkit [230626] by Yusuke Suzuki
  • 6 edits in trunk/Source/JavaScriptCore

[DFG] Remove duplicate 32bit ProfileType implementation
https://bugs.webkit.org/show_bug.cgi?id=184536

Reviewed by Saam Barati.

This patch removes duplicate 32bit ProfileType implementation by unifying 32/64 implementations.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileProfileType):

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

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • jit/AssemblyHelpers.h:

(JSC::AssemblyHelpers::branchIfUndefined):
(JSC::AssemblyHelpers::branchIfNull):

1:50 AM Changeset in webkit [230625] by calvaris@igalia.com
  • 40 edits
    2 moves in trunk/Source

[GStreamer] Convert GStreamerUtilities in GStreamerCommon and include the GStreamer smart pointer traits
https://bugs.webkit.org/show_bug.cgi?id=184533

Reviewed by Philippe Normand.

Renamed GStreamerUtilities* files into GStreamerCommon* and
modified files including them accordingly. Include
GRefPtrGStreamer.h and GUniquePtrGStreamer.h in GStreamerCommon.h
to avoid problems destroying objects when those files are
forgotten to be included.

Source/WebCore:

  • Modules/webaudio/AudioContext.cpp:
  • platform/GStreamer.cmake:
  • platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
  • platform/graphics/gstreamer/AudioTrackPrivateGStreamer.h:
  • platform/graphics/gstreamer/GStreamerCommon.cpp: Renamed from Source/WebCore/platform/graphics/gstreamer/GStreamerUtilities.cpp.
  • platform/graphics/gstreamer/GStreamerCommon.h: Renamed from Source/WebCore/platform/graphics/gstreamer/GStreamerUtilities.h.
  • platform/graphics/gstreamer/ImageGStreamer.h:
  • platform/graphics/gstreamer/ImageGStreamerCairo.cpp:
  • platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.cpp:
  • platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.h:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
  • platform/graphics/gstreamer/MediaSampleGStreamer.cpp:
  • platform/graphics/gstreamer/MediaSampleGStreamer.h:
  • platform/graphics/gstreamer/TextCombinerGStreamer.cpp:
  • platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:
  • platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h:
  • platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
  • platform/graphics/gstreamer/VideoTrackPrivateGStreamer.h:
  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
  • platform/graphics/gstreamer/eme/GStreamerEMEUtilities.cpp:
  • platform/graphics/gstreamer/eme/GStreamerEMEUtilities.h:
  • platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:
  • platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp:
  • platform/graphics/gstreamer/mse/AppendPipeline.cpp:
  • platform/graphics/gstreamer/mse/AppendPipeline.h:
  • platform/graphics/gstreamer/mse/GStreamerMediaDescription.cpp:
  • platform/graphics/gstreamer/mse/GStreamerMediaDescription.h:
  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:
  • platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h:
  • platform/graphics/gstreamer/mse/MediaSourceClientGStreamerMSE.h:
  • platform/graphics/gstreamer/mse/PlaybackPipeline.cpp:
  • platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:
  • platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp:
  • platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.h:

Source/WebKit:

  • UIProcess/gtk/WebProcessPoolGtk.cpp:
  • UIProcess/wpe/WebProcessPoolWPE.cpp:
  • WebProcess/soup/WebProcessSoup.cpp:
12:26 AM Changeset in webkit [230624] by Carlos Garcia Campos
  • 3 edits in trunk/Tools

[GLIB] Tests WTF_RefPtr.ReleaseInNonMainThread and WTF_RefPtr.ReleaseInNonMainThreadDestroyInMainThread are crashing since they were added
https://bugs.webkit.org/show_bug.cgi?id=184531

Reviewed by Michael Catanzaro.

It's not a bug in WebKit, but in the tests. The problem is that those tests are using RunLoop::main() but main
run loop hasn't been initialized. ReleaseInNonMainThread doesn't really need to initialize the main run loop if
we change Util::run() to always use RunLop::current() instead of RunLoop::main(). But
ReleaseInNonMainThreadDestroyInMainThread ends up scheduling a task to the main thread, and the generic
implementation fo that uses RunLoop::main(), so we need to initialize the main loop in this case.

  • TestWebKitAPI/Tests/WTF/RefPtr.cpp:

(TestWebKitAPI::TEST): Call RunLoop::initializeMainRunLoop().

  • TestWebKitAPI/glib/UtilitiesGLib.cpp:

(TestWebKitAPI::Util::run): Use RunLop::current() to stop the current run loop.
(TestWebKitAPI::Util::sleep): Ditto.

Note: See TracTimeline for information about the timeline view.