Timeline



Sep 21, 2018:

10:26 PM Changeset in webkit [236381] by yusukesuzuki@slowstart.org
  • 59 edits
    1 delete in trunk

[JSC] Enable LLInt ASM interpreter on X64 and ARM64 in non JIT configuration
https://bugs.webkit.org/show_bug.cgi?id=189778

Reviewed by Keith Miller.

.:

ENABLE_SAMPLING_PROFILER does not depend on ENABLE_JIT now since it can be
used with LLInt ASM interpreter.

  • Source/cmake/WebKitFeatures.cmake:

Source/JavaScriptCore:

LLInt ASM interpreter is 2x and 15% faster than CLoop interpreter on
Linux and macOS respectively. We would like to enable it for non JIT
configurations in X86_64 and ARM64.

This patch enables LLInt for non JIT builds in X86_64 and ARM64 architectures.
Previously, we switch LLInt ASM interpreter and CLoop by using ENABLE(JIT)
configuration. But it is wrong in the new scenario since we have a build
configuration that uses LLInt ASM interpreter and JIT is disabled. We introduce
ENABLE(C_LOOP) option, which represents that we use CLoop. And we replace
ENABLE(JIT) with ENABLE(C_LOOP) if the previous ENABLE(JIT) is essentially just
related to LLInt ASM interpreter and not related to JIT.

We also replace some ENABLE(JIT) configurations with ENABLE(ASSEMBLER).
ENABLE(ASSEMBLER) is now enabled even if we disable JIT since MacroAssembler
has machine register information that is used in LLInt ASM interpreter.

  • API/tests/PingPongStackOverflowTest.cpp:

(testPingPongStackOverflow):

  • CMakeLists.txt:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • assembler/MaxFrameExtentForSlowPathCall.h:
  • bytecode/CallReturnOffsetToBytecodeOffset.h: Removed. It is no longer used.
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::finishCreation):

  • bytecode/CodeBlock.h:

(JSC::CodeBlock::calleeSaveRegisters const):
(JSC::CodeBlock::numberOfLLIntBaselineCalleeSaveRegisters):
(JSC::CodeBlock::llintBaselineCalleeSaveSpaceAsVirtualRegisters):
(JSC::CodeBlock::calleeSaveSpaceAsVirtualRegisters):

  • bytecode/Opcode.h:

(JSC::padOpcodeName):

  • heap/Heap.cpp:

(JSC::Heap::gatherJSStackRoots):
(JSC::Heap::stopThePeriphery):

  • interpreter/CLoopStack.cpp:
  • interpreter/CLoopStack.h:
  • interpreter/CLoopStackInlines.h:
  • interpreter/EntryFrame.h:
  • interpreter/Interpreter.cpp:

(JSC::Interpreter::Interpreter):
(JSC::UnwindFunctor::copyCalleeSavesToEntryFrameCalleeSavesBuffer const):

  • interpreter/Interpreter.h:
  • interpreter/StackVisitor.cpp:

(JSC::StackVisitor::Frame::calleeSaveRegisters):

  • interpreter/VMEntryRecord.h:
  • jit/ExecutableAllocator.h:
  • jit/FPRInfo.h:

(WTF::printInternal):

  • jit/GPRInfo.cpp:
  • jit/GPRInfo.h:

(WTF::printInternal):

  • jit/HostCallReturnValue.cpp:

(JSC::getHostCallReturnValueWithExecState): Moved. They are used in LLInt ASM interpreter too.

  • jit/HostCallReturnValue.h:
  • jit/JITOperations.cpp:

(JSC::getHostCallReturnValueWithExecState): Deleted.

  • jit/JITOperationsMSVC64.cpp:
  • jit/Reg.cpp:
  • jit/Reg.h:
  • jit/RegisterAtOffset.cpp:
  • jit/RegisterAtOffset.h:
  • jit/RegisterAtOffsetList.cpp:
  • jit/RegisterAtOffsetList.h:
  • jit/RegisterMap.h:
  • jit/RegisterSet.cpp:
  • jit/RegisterSet.h:
  • jit/TempRegisterSet.cpp:
  • jit/TempRegisterSet.h:
  • llint/LLIntCLoop.cpp:
  • llint/LLIntCLoop.h:
  • llint/LLIntData.cpp:

(JSC::LLInt::initialize):
(JSC::LLInt::Data::performAssertions):

  • llint/LLIntData.h:
  • llint/LLIntOfflineAsmConfig.h:
  • llint/LLIntOpcode.h:
  • llint/LLIntPCRanges.h:
  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • llint/LLIntSlowPaths.h:
  • llint/LLIntThunks.cpp:
  • llint/LowLevelInterpreter.cpp:
  • llint/LowLevelInterpreter.h:
  • runtime/JSCJSValue.h:
  • runtime/MachineContext.h:
  • runtime/SamplingProfiler.cpp:

(JSC::SamplingProfiler::processUnverifiedStackTraces): Enable SamplingProfiler
for LLInt ASM interpreter with non JIT configuration.

  • runtime/TestRunnerUtils.cpp:

(JSC::optimizeNextInvocation):

  • runtime/VM.cpp:

(JSC::VM::VM):
(JSC::VM::getHostFunction):
(JSC::VM::updateSoftReservedZoneSize):
(JSC::sanitizeStackForVM):
(JSC::VM::committedStackByteCount):

  • runtime/VM.h:
  • runtime/VMInlines.h:

(JSC::VM::ensureStackCapacityFor):
(JSC::VM::isSafeToRecurseSoft const):

Source/WTF:

This patch adds ENABLE(C_LOOP) which indicates we use CLoop as the interpreter.
Previously, we used !ENABLE(JIT) for this configuration. But now, we have
a build configuration that has LLInt ASM interpreter (not CLoop) and !ENABLE(JIT).

We enable LLInt ASM interpreter for non JIT environment in X86_64 and ARM64 architectures.
And we enable ENABLE(ASSEMBLER) for non JIT environment since it offers machine register
information which is used for LLInt and SamplingProfiler.

  • wtf/Platform.h:
7:03 PM Changeset in webkit [236380] by Devin Rousso
  • 2 edits in trunk/LayoutTests

Web Inspector: REGRESSION(r236336): computed CSSProperty doesn't have a value for _text
https://bugs.webkit.org/show_bug.cgi?id=189864

Reviewed by Joseph Pecoraro.

  • inspector/css/pseudo-element-matches-for-pseudo-element-node.html:

CSS.types.CSSComputedStyleProperty doesn't include a text value, which was used to print

each property's text. Modify the test to generate it's own text via name and value.

6:03 PM Changeset in webkit [236379] by commit-queue@webkit.org
  • 20 edits
    4 adds in trunk

Implement initialValue support for CSS Custom Properties and Values API
https://bugs.webkit.org/show_bug.cgi?id=189819

Patch by Justin Michaud <Justin Michaud> on 2018-09-21
Reviewed by Simon Fraser.

Source/WebCore:

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::ComputedStyleExtractor::customPropertyValue):

  • css/CSSCustomPropertyValue.cpp:

(WebCore::CSSCustomPropertyValue::resolveVariableReferences const):

  • css/CSSCustomPropertyValue.h:
  • css/CSSRegisteredCustomProperty.h:
  • css/CSSVariableData.cpp:

(WebCore::CSSVariableData::resolveVariableFallback const):
(WebCore::CSSVariableData::resolveVariableReference const):
(WebCore::CSSVariableData::resolveVariableReferences const):
(WebCore::CSSVariableData::resolveTokenRange const):

  • css/CSSVariableData.h:
  • css/DOMCSSRegisterCustomProperty.cpp:

(WebCore::DOMCSSRegisterCustomProperty::registerProperty):

  • css/DOMCSSRegisterCustomProperty.h:
  • css/DOMCSSRegisterCustomProperty.idl:
  • css/StyleResolver.cpp:

(WebCore::StyleResolver::resolvedVariableValue):
(WebCore::StyleResolver::applyCascadedProperties):

  • css/parser/CSSParser.cpp:

(WebCore::CSSParser::parseValueWithVariableReferences):

  • css/parser/CSSParser.h:
  • dom/Document.h:

(WebCore::Document::getCSSRegisteredCustomPropertySet const):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::checkVariablesInCustomProperties):

  • rendering/style/RenderStyle.h:

LayoutTests:

  • css-custom-properties-api/initialValue-expected.html: Added.
  • css-custom-properties-api/initialValue.html: Added.
  • css-custom-properties-api/initialValueJS-expected.txt: Added.
  • css-custom-properties-api/initialValueJS.html: Added.
  • css-custom-properties-api/registerProperty-expected.txt:
  • css-custom-properties-api/registerProperty.html:
  • platform/win/TestExpectations:
5:51 PM Changeset in webkit [236378] by dino@apple.com
  • 13 edits
    38 adds in trunk

Add PointerEvent, plus feature flag, plus Web Platform Tests
https://bugs.webkit.org/show_bug.cgi?id=189867
<rdar://problem/44697384>

Reviewed by Simon Fraser.

LayoutTests/imported/w3c:

Import the Web Platform Tests for Pointer Events.

  • resources/import-expectations.json:
  • web-platform-tests/pointerevents/META.yml: Added.
  • web-platform-tests/pointerevents/README.md: Added.
  • web-platform-tests/pointerevents/extension/idlharness.window-expected.txt: Added.
  • web-platform-tests/pointerevents/extension/idlharness.window.html: Added.
  • web-platform-tests/pointerevents/extension/idlharness.window.js: Added.
  • web-platform-tests/pointerevents/extension/pointerevent_constructor-expected.txt: Added.
  • web-platform-tests/pointerevents/extension/pointerevent_constructor.html: Added.
  • web-platform-tests/pointerevents/extension/pointerevent_touch-action-verification-expected.txt: Added.
  • web-platform-tests/pointerevents/extension/pointerevent_touch-action-verification.html: Added.
  • web-platform-tests/pointerevents/extension/w3c-import.log: Added.
  • web-platform-tests/pointerevents/idlharness.window-expected.txt: Added.
  • web-platform-tests/pointerevents/idlharness.window.html: Added.
  • web-platform-tests/pointerevents/idlharness.window.js: Added.
  • web-platform-tests/pointerevents/pointerevent_constructor-expected.txt: Added.
  • web-platform-tests/pointerevents/pointerevent_constructor.html: Added.
  • web-platform-tests/pointerevents/pointerevent_on_event_handlers-expected.txt: Added.
  • web-platform-tests/pointerevents/pointerevent_on_event_handlers.html: Added.
  • web-platform-tests/pointerevents/pointerevent_styles.css: Added.
  • web-platform-tests/pointerevents/pointerevent_support.js: Added.
  • web-platform-tests/pointerevents/pointerevent_touch-action-illegal-expected.txt: Added.
  • web-platform-tests/pointerevents/pointerevent_touch-action-illegal.html: Added.
  • web-platform-tests/pointerevents/pointerevent_touch-action-verification-expected.txt: Added.
  • web-platform-tests/pointerevents/pointerevent_touch-action-verification.html: Added.
  • web-platform-tests/pointerevents/pointerlock/resources/pointerevent_movementxy-iframe.html: Added.
  • web-platform-tests/pointerevents/pointerlock/resources/w3c-import.log: Added.
  • web-platform-tests/pointerevents/resources/pointerevent_attributes_hoverable_pointers-iframe.html: Added.
  • web-platform-tests/pointerevents/resources/pointerevent_fractional_coordinates-iframe.html: Added.
  • web-platform-tests/pointerevents/resources/pointerevent_pointerId_scope-iframe.html: Added.
  • web-platform-tests/pointerevents/resources/w3c-import.log: Added.
  • web-platform-tests/pointerevents/w3c-import.log: Added.

Source/WebCore:

Add the PointerEvent interface.

Tests: imported/w3c/web-platform-tests/pointerevents/extension/idlharness.window.html

imported/w3c/web-platform-tests/pointerevents/extension/pointerevent_constructor.html
imported/w3c/web-platform-tests/pointerevents/extension/pointerevent_touch-action-verification.html
imported/w3c/web-platform-tests/pointerevents/idlharness.window.html
imported/w3c/web-platform-tests/pointerevents/pointerevent_constructor.html
imported/w3c/web-platform-tests/pointerevents/pointerevent_on_event_handlers.html
imported/w3c/web-platform-tests/pointerevents/pointerevent_touch-action-illegal.html
imported/w3c/web-platform-tests/pointerevents/pointerevent_touch-action-verification.html

  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:

Add the new files.

  • dom/Event.h:

(WebCore::Event::isPointerEvent const): New virtual identification method.

  • dom/EventNames.in: Add PointerEvent so the InterfaceType code is generated.
  • dom/PointerEvent.cpp: The PointerEvent interface, as specified by W3C.

(WebCore::PointerEvent::PointerEvent):
(WebCore::PointerEvent::eventInterface const):

  • dom/PointerEvent.h: Added.
  • dom/PointerEvent.idl: Added.
  • page/RuntimeEnabledFeatures.h: Clean up the ordering of the features, so there aren't

confusing blank lines interspersed with #if USE macros.
(WebCore::RuntimeEnabledFeatures::setPointerEventsEnabled): Add a new flag for Pointer Events.
(WebCore::RuntimeEnabledFeatures::pointerEventsEnabled const):

Source/WebKit:

Add PointerEvents as an experimental feature.

  • Shared/WebPreferences.yaml:
5:18 PM Changeset in webkit [236377] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[macOS EWS] Layout test accessibility/smart-invert-reference.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=189818

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: Mark test as flaky.
5:17 PM Changeset in webkit [236376] by rniwa@webkit.org
  • 7 edits
    4 adds in trunk

Custom elements in a reaction queue can lose its JS wrapper and become HTMLUnknownElement
https://bugs.webkit.org/show_bug.cgi?id=184307

Reviewed by Keith Miller.

Source/WebCore:

The bug was caused by the custom elements reaction queue not reporting its content to GC during marking.

When there is no JS reference to the JS wrappers of those custom element, and if those custom elements
are disconnected, GC would happily collect those the wrappers. Unfortunately, the same bug exists for
any asynchronous events and other WebCore code which keeps elements alive for a later use but doesn't
report them to GC (e.g. during visitChildren).

This patch, therefore, introduces a generic mechanism to keep these elements' wrappers alive. Namely,
we introduce GCReachableRef, a new smart pointer type for Node's subclasses, which keeps element as well
as its wrappers alive. GCReachableRef works by adding its Node to a global hash counted set when it's
created and making JSNodeOwner::isReachableFromOpaqueRoots return true when the node is in the set.

Test: fast/custom-elements/custom-elements-reaction-queue-retains-js-wrapper.html

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

(WebCore::isReachableFromDOM):

  • dom/CustomElementReactionQueue.cpp:

(WebCore::CustomElementReactionQueue::ElementQueue::invokeAll): Don't swap the vector of elements in
in the queue. Assuming each DOM API has an appropriate CustomElementsReactionStack, we should never
append a new element to this queue while invoking custom element reactions.

  • dom/CustomElementReactionQueue.h:
  • dom/GCReachableRef.cpp: Added.
  • dom/GCReachableRef.h: Added.

(WebCore::GCReachableRefMap::contains): Added.
(WebCore::GCReachableRefMap::add): Added.
(WebCore::GCReachableRefMap::remove): Added.
(WebCore::GCReachableRef::GCReachableRef): Added. We need isNull() check since WTFMove may have been
called on the source GCReachableRef.
(WebCore::GCReachableRef::~GCReachableRef): Ditto.
(WebCore::GCReachableRef::operator-> const): Added.
(WebCore::GCReachableRef::get const): Added.
(WebCore::GCReachableRef::operator T& const): Added.
(WebCore::GCReachableRef::operator! const): Added.
(WebCore::GCReachableRef::isNull const): Added. Returns true if WTFMove had been called on Ref.

LayoutTests:

Added a test for enqueuing a lot of custom elements into the reaction queue via innerHTML setter.
WebKit should retain the JS wrappers of all custom elements.

  • fast/custom-elements/custom-elements-reaction-queue-retains-js-wrapper-expected.txt: Added.
  • fast/custom-elements/custom-elements-reaction-queue-retains-js-wrapper.html: Added.
5:14 PM Changeset in webkit [236375] by BJ Burg
  • 2 edits in trunk/Source/WebKit

Web Inspector: dock buttons disappear if Web Inspector goes fullscreen
https://bugs.webkit.org/show_bug.cgi?id=189865
<rdar://problem/42600534>

Reviewed by Matt Baker.

When a fullscreen Safari tab has a docked Inspector, and the "detach" button
is clicked, Inspector goes into its own fullscreen window. In that window,
there are no buttons for docking to side or bottom.

It turns out that we always send setDockingUnavailable(true) if the inspector
window is fullscreen. This eventually causes the inspector to reflect that
by hiding the docking-related buttons.

  • UIProcess/mac/WebInspectorProxyMac.mm:

(WebKit::WebInspectorProxy::platformCanAttach):
This early exit does not seem to serve any purpose, so remove it.

4:42 PM Changeset in webkit [236374] by bshafiei@apple.com
  • 7 edits in tags/Safari-607.1.7.2/Source

Versioning.

4:39 PM Changeset in webkit [236373] by bshafiei@apple.com
  • 1 copy in tags/Safari-607.1.7.2

Tag Safari-607.1.7.2.

4:38 PM Changeset in webkit [236372] by keith_miller@apple.com
  • 21 edits
    1 add in trunk/Source

Add Promise SPI
https://bugs.webkit.org/show_bug.cgi?id=189809

Reviewed by Saam Barati.

Source/JavaScriptCore:

The Patch adds new SPI to create promises. It's mostly SPI because
I want to see how internal users react to it before we make it
public.

This patch adds a couple of new Obj-C SPI methods. The first
creates a new promise using the same API that JS does where the
user provides an executor callback. If an exception is raised
in/to that callback the promise is automagically rejected. The
other methods create a pre-resolved or rejected promise as this
appears to be a common way to initialize a promise.

I was also considering adding a second version of executor API
where it would catch specific Obj-C exceptions. This would work by
taking a Class paramter and checking isKindOfClass: on the
exception. I decided against this as nothing else in our API
handles Obj-C exceptions. I'm pretty sure the VM will end up in a
corrupt state if an Obj-C exception unwinds through JS frames.

This patch adds a new C function that will create a "deferred"
promise. A deferred promise is a style of creating promise/futures
where the resolve and reject functions are passed as outputs of a
function. I went with this style for the C SPI because we don't have
any concept of forwarding exceptions in the C API.

In order to make the C API work I refactored a bit of the promise code
so that we can call a static method on JSDeferredPromise and just get
the components without allocating an extra cell wrapper.

  • API/JSContext.mm:

(+[JSContext currentCallee]):

  • API/JSObjectRef.cpp:

(JSObjectMakeDeferredPromise):

  • API/JSObjectRefPrivate.h:
  • API/JSValue.mm:

(+[JSValue valueWithNewPromiseInContext:fromExecutor:]):
(+[JSValue valueWithNewPromiseResolvedWithResult:inContext:]):
(+[JSValue valueWithNewPromiseRejectedWithReason:inContext:]):

  • API/JSValuePrivate.h: Added.
  • API/JSVirtualMachine.mm:
  • API/JSVirtualMachinePrivate.h:
  • API/tests/testapi.c:

(main):

  • API/tests/testapi.cpp:

(APIContext::operator JSC::ExecState*):
(TestAPI::failed const):
(TestAPI::check):
(TestAPI::basicSymbol):
(TestAPI::symbolsTypeof):
(TestAPI::symbolsGetPropertyForKey):
(TestAPI::symbolsSetPropertyForKey):
(TestAPI::symbolsHasPropertyForKey):
(TestAPI::symbolsDeletePropertyForKey):
(TestAPI::promiseResolveTrue):
(TestAPI::promiseRejectTrue):
(testCAPIViaCpp):
(TestAPI::run): Deleted.

  • API/tests/testapi.mm:

(testObjectiveCAPIMain):
(promiseWithExecutor):
(promiseRejectOnJSException):
(promiseCreateResolved):
(promiseCreateRejected):
(parallelPromiseResolveTest):
(testObjectiveCAPI):

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • runtime/JSInternalPromiseDeferred.cpp:

(JSC::JSInternalPromiseDeferred::create):

  • runtime/JSPromise.h:
  • runtime/JSPromiseConstructor.cpp:

(JSC::constructPromise):

  • runtime/JSPromiseDeferred.cpp:

(JSC::JSPromiseDeferred::createDeferredData):
(JSC::JSPromiseDeferred::create):
(JSC::JSPromiseDeferred::finishCreation):
(JSC::newPromiseCapability): Deleted.

  • runtime/JSPromiseDeferred.h:

(JSC::JSPromiseDeferred::promise const):
(JSC::JSPromiseDeferred::resolve const):
(JSC::JSPromiseDeferred::reject const):

Source/WTF:

Fix issue where creating a JSContextRef off the main thread before
creating initializing the main thread would cause an assertion
failure.

  • wtf/MainThread.cpp:

(WTF::isMainThreadIfInitialized):

  • wtf/MainThread.h:
  • wtf/mac/MainThreadMac.mm:

(WTF::isMainThreadIfInitialized):

  • wtf/text/cf/StringImplCF.cpp:

(WTF::StringImpl::createCFString):

4:22 PM Changeset in webkit [236371] by Ryan Haddad
  • 21 edits
    1 delete in trunk/Source

Unreviewed, rolling out r236359.

Broke the Windows build.

Reverted changeset:

"Add Promise SPI"
https://bugs.webkit.org/show_bug.cgi?id=189809
https://trac.webkit.org/changeset/236359

4:18 PM Changeset in webkit [236370] by Chris Dumez
  • 3 edits in trunk/LayoutTests

Unreviewed, speed up storage/websql/transaction-database-expand-quota.html

This test was so slow that is sometimes timed out on the debug bots.

  • storage/websql/transaction-database-expand-quota-expected.txt:
  • storage/websql/transaction-database-expand-quota.html:
4:18 PM Changeset in webkit [236369] by mark.lam@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

JSRopeString::resolveRope() wrongly assumes that tryGetValue() passes it a valid ExecState.
https://bugs.webkit.org/show_bug.cgi?id=189855
<rdar://problem/44680181>

Reviewed by Filip Pizlo.

tryGetValue() always passes a nullptr to JSRopeString::resolveRope() for the
ExecState* argument. This is intentional so that resolveRope() does not throw
in the event of an OutOfMemory error. Hence, JSRopeString::resolveRope() should
get the VM from the cell instead of via the ExecState.

Also removed an obsolete and unused field in JSString.

  • runtime/JSString.cpp:

(JSC::JSRopeString::resolveRope const):
(JSC::JSRopeString::outOfMemory const):

  • runtime/JSString.h:

(JSC::JSString::tryGetValue const):

4:18 PM Changeset in webkit [236368] by Chris Dumez
  • 10 edits in trunk/Source/WebKit

Extending the lifetime of a NetworkProcessProxy / StorageProcessProxy may cause it to have a stale WebProcessPool pointer
https://bugs.webkit.org/show_bug.cgi?id=189851

Reviewed by Alex Christensen.

Extending the lifetime of a NetworkProcessProxy / StorageProcessProxy may cause it to have a stale WebProcessPool pointer:

  • NetworkProcessProxy::m_processPool
  • StorageProcessProxy::m_processPool

Those data members are C++ references because it is expected that the WebProcessPool owns the NetworkProcessProxy and
StorageProcessProxy. However, since NetworkProcessProxy / StorageProcessProxy are refcounted, it has happened that code
extends the lifetime of those past their process pool, leading to stale prrocess pool usage. The fix for these crashes
so far as been to ref the WebProcessPool instead of the NetworkProcessProxy / StorageProcessProxy. However, given how
error-prone this is, this patch updates NetworkProcessProxy / StorageProcessProxy so that they forward their refcounting
to the WebProcessPool.

  • UIProcess/ChildProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::ref):
(WebKit::NetworkProcessProxy::deref):
(WebKit::NetworkProcessProxy::didClose):
(WebKit::NetworkProcessProxy::updatePrevalentDomainsToBlockCookiesFor):
(WebKit::NetworkProcessProxy::create): Deleted.

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Plugins/PluginProcessProxy.h:
  • UIProcess/Storage/StorageProcessProxy.cpp:

(WebKit::StorageProcessProxy::ref):
(WebKit::StorageProcessProxy::deref):
(WebKit::StorageProcessProxy::create): Deleted.

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

(WebKit::WebProcessPool::ensureNetworkProcess):
(WebKit::WebProcessPool::ensureStorageProcessAndWebsiteDataStore):

  • UIProcess/WebProcessPool.h:
  • UIProcess/WebProcessProxy.h:
4:06 PM Changeset in webkit [236367] by commit-queue@webkit.org
  • 2 edits
    7 adds in trunk/LayoutTests/imported/w3c

Import WPT content hint tests
https://bugs.webkit.org/show_bug.cgi?id=189854

Patch by YUHAN WU <yuhan_wu@apple.com> on 2018-09-21
Reviewed by Youenn Fablet.

  • resources/import-expectations.json:
  • web-platform-tests/mst-content-hint/META.yml: Added.
  • web-platform-tests/mst-content-hint/MediaStreamTrack-contentHint-expected.txt: Added.
  • web-platform-tests/mst-content-hint/MediaStreamTrack-contentHint.html: Added.
  • web-platform-tests/mst-content-hint/idlharness.window.html: Added.
  • web-platform-tests/mst-content-hint/idlharness.window.js: Added.
  • web-platform-tests/mst-content-hint/w3c-import.log: Added.
3:56 PM Changeset in webkit [236366] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebCore/PAL

Unreviewed Sierra Build Fix; ensure AVVideoPerformanceMetrics are defined on Sierra.

  • pal/spi/mac/AVFoundationSPI.h:
3:50 PM Changeset in webkit [236365] by achristensen@apple.com
  • 16 edits in trunk/Source

Use a Variant for FormDataElement
https://bugs.webkit.org/show_bug.cgi?id=189777

Reviewed by Chris Dumez.

Source/WebCore:

  • platform/network/FormData.cpp:

(WebCore::FormData::FormData):
(WebCore::FormDataElement::lengthInBytes const):
(WebCore::FormDataElement::isolatedCopy const):
(WebCore::FormData::appendData):
(WebCore::FormData::flatten const):
(WebCore::FormData::resolveBlobReferences):
(WebCore::FormData::generateFiles):
(WebCore::FormData::hasGeneratedFiles const):
(WebCore::FormData::hasOwnedGeneratedFiles const):
(WebCore::FormData::removeGeneratedFilesIfNeeded):
(WebCore::FormData::asSharedBuffer const):
(WebCore::FormData::asBlobURL const):
(WebCore::FormData::expandDataStore): Deleted.

  • platform/network/FormData.h:

(WebCore::FormDataElement::FormDataElement):
(WebCore::FormDataElement::encode const):
(WebCore::FormDataElement::decode):
(WebCore::FormDataElement::EncodedFileData::isolatedCopy const):
(WebCore::FormDataElement::EncodedFileData::operator== const):
(WebCore::FormDataElement::EncodedFileData::encode const):
(WebCore::FormDataElement::EncodedFileData::decode):
(WebCore::FormDataElement::EncodedBlobData::operator== const):
(WebCore::FormDataElement::EncodedBlobData::encode const):
(WebCore::FormDataElement::EncodedBlobData::decode):
(WebCore::FormDataElement::operator== const):
(WebCore::FormDataElement::operator!= const):

  • platform/network/cf/FormDataStreamCFNet.cpp:

(WebCore::advanceCurrentStream):
(WebCore::createHTTPBodyCFReadStream):
(WebCore::setHTTPBody):

  • platform/network/curl/CurlFormDataStream.cpp:

(WebCore::CurlFormDataStream::computeContentLength):
(WebCore::CurlFormDataStream::read):
(WebCore::CurlFormDataStream::readFromFile):
(WebCore::CurlFormDataStream::readFromData):

  • platform/network/curl/CurlFormDataStream.h:

Source/WebKit:

  • NetworkProcess/NetworkResourceLoadParameters.cpp:

(WebKit::NetworkResourceLoadParameters::encode const):

  • NetworkProcess/NetworkResourceLoader.cpp:
  • Shared/SessionState.h:
  • WebProcess/WebCoreSupport/SessionStateConversion.cpp:

(WebKit::toHTTPBody):

Source/WebKitLegacy/win:

  • WebMutableURLRequest.cpp:

(WebMutableURLRequest::setHTTPBody):

2:50 PM Changeset in webkit [236364] by Ryan Haddad
  • 2 edits
    1 delete in trunk/LayoutTests

Unreviewed test gardening, consolidate iOS expectation files for EventTarget-dispatchEvent.html.

  • platform/ios-11/imported/w3c/web-platform-tests/dom/events/EventTarget-dispatchEvent-expected.txt: Removed.
  • platform/ios/imported/w3c/web-platform-tests/dom/events/EventTarget-dispatchEvent-expected.txt:
2:50 PM Changeset in webkit [236363] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

REGRESSION (r235948?): Layout Test media/media-controls-accessibility.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=189674

Unreviewed test gardening.

  • platform/mac/TestExpectations: Mark test as flaky.
2:47 PM Changeset in webkit [236362] by msaboff@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Add functions to measure memory footprint to JSC
https://bugs.webkit.org/show_bug.cgi?id=189768

Reviewed by Saam Barati.

Rolling this back in again.

Provide system memory metrics for the current process to aid in memory reduction measurement and
tuning using native JS tests.

  • jsc.cpp:

(MemoryFootprint::now):
(MemoryFootprint::resetPeak):
(GlobalObject::finishCreation):
(JSCMemoryFootprint::JSCMemoryFootprint):
(JSCMemoryFootprint::createStructure):
(JSCMemoryFootprint::create):
(JSCMemoryFootprint::finishCreation):
(JSCMemoryFootprint::addProperty):
(functionResetMemoryPeak):

2:46 PM Changeset in webkit [236361] by commit-queue@webkit.org
  • 13 edits
    1 add in trunk/Tools

[WHLSL] Local variables should be statically allocated
https://bugs.webkit.org/show_bug.cgi?id=188402

Patch by Thomas Denney <tdenney@apple.com> on 2018-09-21
Reviewed by Myles C. Maxfield.

An additional preparation stage is now performed so that all local
variables and function parameters are allocated in a single struct at
entry points. A pointer to this struct is then passed for function
calls.

  • WebGPUShadingLanguageRI/All.js: Update dependencies.
  • WebGPUShadingLanguageRI/AllocateAtEntryPoints.js: Added new stage.
  • WebGPUShadingLanguageRI/CallExpression.js:

(CallExpression.prototype.set argumentList): Add setter because
allocateAtEntryPoints needs to change this.

  • WebGPUShadingLanguageRI/EBufferBuilder.js: Remove a redundant

constructor that wasn't used anywhere.

  • WebGPUShadingLanguageRI/Func.js:

(Func.prototype.set parameters): Add setter.

  • WebGPUShadingLanguageRI/FuncDef.js:

(FuncDef.prototype.set body): Ditto.

  • WebGPUShadingLanguageRI/Prepare.js:

(let.prepare): Add call to allocateAtEntryPoints. This call cannot
happen any earlier because it depends on having types for call
arguments.

  • WebGPUShadingLanguageRI/Rewriter.js:

(Rewriter.prototype.visitReturn): Resolve issue where the return
statement's function wasn't copied. A null check is required as the
Rewriter might be used before this property is set.

  • WebGPUShadingLanguageRI/SPIRV.html: Update dependencies.
  • WebGPUShadingLanguageRI/SynthesizeStructAccessors.js: Abstracted logic

into a separate function so that allocateAtEntryPoints can create the
accessors for the struct type it introduces.

  • WebGPUShadingLanguageRI/Test.html: Update dependencies.
  • WebGPUShadingLanguageRI/Test.js: Add new tests to verify the static

allocation transform works safely.

  • WebGPUShadingLanguageRI/index.html: Update dependencies.
2:23 PM Changeset in webkit [236360] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

[Win10] Update test expectations for failing tests.
https://bugs.webkit.org/show_bug.cgi?id=189858

Unreviewed test gardening.

  • platform/win/TestExpectations:
2:16 PM Changeset in webkit [236359] by keith_miller@apple.com
  • 21 edits
    1 add in trunk/Source

Add Promise SPI
https://bugs.webkit.org/show_bug.cgi?id=189809

Reviewed by Saam Barati.

Source/JavaScriptCore:

The Patch adds new SPI to create promises. It's mostly SPI because
I want to see how internal users react to it before we make it
public.

This patch adds a couple of new Obj-C SPI methods. The first
creates a new promise using the same API that JS does where the
user provides an executor callback. If an exception is raised
in/to that callback the promise is automagically rejected. The
other methods create a pre-resolved or rejected promise as this
appears to be a common way to initialize a promise.

I was also considering adding a second version of executor API
where it would catch specific Obj-C exceptions. This would work by
taking a Class paramter and checking isKindOfClass: on the
exception. I decided against this as nothing else in our API
handles Obj-C exceptions. I'm pretty sure the VM will end up in a
corrupt state if an Obj-C exception unwinds through JS frames.

This patch adds a new C function that will create a "deferred"
promise. A deferred promise is a style of creating promise/futures
where the resolve and reject functions are passed as outputs of a
function. I went with this style for the C SPI because we don't have
any concept of forwarding exceptions in the C API.

In order to make the C API work I refactored a bit of the promise code
so that we can call a static method on JSDeferredPromise and just get
the components without allocating an extra cell wrapper.

  • API/JSContext.mm:

(+[JSContext currentCallee]):

  • API/JSObjectRef.cpp:

(JSObjectMakeDeferredPromise):

  • API/JSObjectRefPrivate.h:
  • API/JSValue.mm:

(+[JSValue valueWithNewPromiseInContext:fromExecutor:]):
(+[JSValue valueWithNewPromiseResolvedWithResult:inContext:]):
(+[JSValue valueWithNewPromiseRejectedWithReason:inContext:]):

  • API/JSValuePrivate.h: Added.
  • API/JSVirtualMachine.mm:
  • API/JSVirtualMachinePrivate.h:
  • API/tests/testapi.c:

(main):

  • API/tests/testapi.cpp:

(APIContext::operator JSC::ExecState*):
(TestAPI::failed const):
(TestAPI::check):
(TestAPI::basicSymbol):
(TestAPI::symbolsTypeof):
(TestAPI::symbolsGetPropertyForKey):
(TestAPI::symbolsSetPropertyForKey):
(TestAPI::symbolsHasPropertyForKey):
(TestAPI::symbolsDeletePropertyForKey):
(TestAPI::promiseResolveTrue):
(TestAPI::promiseRejectTrue):
(testCAPIViaCpp):
(TestAPI::run): Deleted.

  • API/tests/testapi.mm:

(testObjectiveCAPIMain):
(promiseWithExecutor):
(promiseRejectOnJSException):
(promiseCreateResolved):
(promiseCreateRejected):
(parallelPromiseResolveTest):
(testObjectiveCAPI):

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • runtime/JSInternalPromiseDeferred.cpp:

(JSC::JSInternalPromiseDeferred::create):

  • runtime/JSPromise.h:
  • runtime/JSPromiseConstructor.cpp:

(JSC::constructPromise):

  • runtime/JSPromiseDeferred.cpp:

(JSC::JSPromiseDeferred::createDeferredData):
(JSC::JSPromiseDeferred::create):
(JSC::JSPromiseDeferred::finishCreation):
(JSC::newPromiseCapability): Deleted.

  • runtime/JSPromiseDeferred.h:

(JSC::JSPromiseDeferred::promise const):
(JSC::JSPromiseDeferred::resolve const):
(JSC::JSPromiseDeferred::reject const):

Source/WTF:

Fix issue where creating a JSContextRef off the main thread before
creating initializing the main thread would cause an assertion
failure.

  • wtf/MainThread.cpp:

(WTF::isMainThreadIfInitialized):

  • wtf/MainThread.h:
  • wtf/mac/MainThreadMac.mm:

(WTF::isMainThreadIfInitialized):

  • wtf/text/cf/StringImplCF.cpp:

(WTF::StringImpl::createCFString):

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

REGRESSION(r236237): Web Inspector: DarkMode: white background in Elements and Timelines
https://bugs.webkit.org/show_bug.cgi?id=189852

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/Main.css:

(body):
(#main):

1:32 PM Changeset in webkit [236357] by BJ Burg
  • 4 edits in trunk/Source/WebInspectorUI

Web Inspector: remove unnecessary WI.Platform.version checks
https://bugs.webkit.org/show_bug.cgi?id=189845

Reviewed by Matt Baker.

  • UserInterface/Base/Platform.js:

(osVersionMatch): Add name for macOS Mojave.

  • UserInterface/Base/Main.js:
  • UserInterface/Views/Popover.js:

Remove old logic that's no longer needed.

1:29 PM Changeset in webkit [236356] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

Simplify the logic around has*ScrollbarWithAutoBehavior
https://bugs.webkit.org/show_bug.cgi?id=189813

Reviewed by Zalan Bujtas.

The boolean logic in scrollsOverflowX() and hasHorizontalScrollbarWithAutoBehavior() (and the vertical

equivalents) reduces simply to hasOverflowClip() && (style().overflowX() == Overflow::Scroll
style().overflowX() == Overflow::Auto);

Similarly, RenderBox::intrinsicScrollbarLogicalWidth() just needs the part of the logic
that asks whether the theme uses overlay scrollbars which are not customized (and thus
turned into non-overlay scrollbars).

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::intrinsicScrollbarLogicalWidth const):
(WebCore::RenderBox::canUseOverlayScrollbars const):
(WebCore::RenderBox::hasVerticalScrollbarWithAutoBehavior const):
(WebCore::RenderBox::hasHorizontalScrollbarWithAutoBehavior const):

  • rendering/RenderBox.h:

(WebCore::RenderBox::scrollsOverflowX const):
(WebCore::RenderBox::scrollsOverflowY const):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::updateScrollbarsAfterLayout):

1:15 PM Changeset in webkit [236355] by Adrian Perez de Castro
  • 1 copy in releases/WebKitGTK/webkit-2.22.2

WebKitGTK+ 2.22.2

1:11 PM Changeset in webkit [236354] by Adrian Perez de Castro
  • 4 edits in releases/WebKitGTK/webkit-2.22

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.22.1 release.

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.22.2.
1:11 PM Changeset in webkit [236353] by Adrian Perez de Castro
  • 3 edits in releases/WebKitGTK/webkit-2.22/Source/ThirdParty/ANGLE

Merge r236349 - [GTK] ANGLE's eglplatform.h does not support Wayland-only builds
https://bugs.webkit.org/show_bug.cgi?id=189844

Reviewed by Michael Catanzaro.

This makes it possible to build WebKitGTK+ after r225340 when the
build is configured to support only Wayland, and the X11 headers
are not present.

  • changes.diff: Updated.
  • include/EGL/eglplatform.h: Include the X11 headers only when

ANGLE_USE_X11 is defined and, for consistency with Mesa's version
of the header, when MESA_EGL_NO_X11_HEADERS is not defined.

1:08 PM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
1:07 PM Changeset in webkit [236352] by Michael Catanzaro
  • 5 edits in trunk/Source/WebCore

Unreviewed, rolling out r236255.

Many WebAudio crashes

Reverted changeset:

"[GStreamer] Utilities cleanups"
https://bugs.webkit.org/show_bug.cgi?id=189699
https://trac.webkit.org/changeset/236255

1:05 PM Changeset in webkit [236351] by Truitt Savell
  • 3 edits in trunk/Source/JavaScriptCore

Rebaseline tests after changes in https://trac.webkit.org/changeset/236321/webkit
https://bugs.webkit.org/show_bug.cgi?id=156674

Unreviewed Test Gardening

  • Scripts/tests/builtins/expected/JavaScriptCore-Builtin.Promise-Combined.js-result:
  • Scripts/tests/builtins/expected/JavaScriptCore-BuiltinConstructor-Combined.js-result:
1:04 PM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
1:01 PM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
1:00 PM Changeset in webkit [236350] by jer.noble@apple.com
  • 4 edits in trunk/Source/WebCore

Move AVVideoPerformanceMetrics into AVFoundationSPI.h
https://bugs.webkit.org/show_bug.cgi?id=189842

Reviewed by Jon Lee.

Source/WebCore:

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

Source/WebCore/PAL:

  • pal/spi/mac/AVFoundationSPI.h:
12:59 PM Changeset in webkit [236349] by Adrian Perez de Castro
  • 3 edits in trunk/Source/ThirdParty/ANGLE

[GTK] ANGLE's eglplatform.h does not support Wayland-only builds
https://bugs.webkit.org/show_bug.cgi?id=189844

Reviewed by Michael Catanzaro.

This makes it possible to build WebKitGTK+ after r225340 when the
build is configured to support only Wayland, and the X11 headers
are not present.

  • changes.diff: Updated.
  • include/EGL/eglplatform.h: Include the X11 headers only when

ANGLE_USE_X11 is defined and, for consistency with Mesa's version
of the header, when MESA_EGL_NO_X11_HEADERS is not defined.

12:59 PM Changeset in webkit [236348] by Chris Dumez
  • 6 edits
    2 adds in trunk

WebSQL: User cannot grant quota increase if the JS provides an expected usage value that is too low
https://bugs.webkit.org/show_bug.cgi?id=189801
<rdar://problem/43592498>

Reviewed by Youenn Fablet.

Source/WebCore:

User was unable to grant a quota increase for WebSQL if the JS provided an expected usage value that
is too low. This is because WebKit was passing this provided expectedUsage value to the client for
the purpose of quota increase, even when this expectedUsage value does not make any sense (i.e. it
is lower than the current database size). As a result, the client would grant a quota that is equal
to the previous quota and the JS would not be able to insert any data.

In order to address the issue, when the current quota is exceeded and Database::didExceedQuota()
is called, we now make sure that the expectedUsage value is greater than the current quota. If it
is not, we provide current quota + 5MB as expected usage to the client. This way, the client will
grant a quota that is actually increased (provided that the user accepts).

Test: storage/websql/transaction-database-expand-quota.html

  • Modules/webdatabase/Database.cpp:

(WebCore::Database::setEstimatedSize):
(WebCore::Database::didExceedQuota):

  • Modules/webdatabase/Database.h:

LayoutTests:

Add layout test coverage.

  • storage/websql/transaction-database-expand-quota-expected.txt: Added.
  • storage/websql/transaction-database-expand-quota.html: Added.
12:55 PM Changeset in webkit [236347] by youenn@apple.com
  • 4 edits in trunk/Source/WebCore

Use biplanar CVPixelBuffer for black frames sent to libwebrtc
https://bugs.webkit.org/show_bug.cgi?id=189837

Reviewed by Eric Carlson.

Covered by webrtc/video-mute.html.

Add support to call CVPixelBufferGetBytesPerRowOfPlane.
Make createBlackPixelBuffer use a biplanar CVPixelBuffer as this is better supported in libwebrtc.
It is also what is being used in iOS for capture.

  • platform/cocoa/CoreVideoSoftLink.cpp:
  • platform/cocoa/CoreVideoSoftLink.h:
  • platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm:

(WebCore::createBlackPixelBuffer):

12:39 PM Changeset in webkit [236346] by youenn@apple.com
  • 10 edits in trunk

Add RTCCodecStats support
https://bugs.webkit.org/show_bug.cgi?id=189792
<rdar://problem/32370668>

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • web-platform-tests/webrtc/RTCPeerConnection-addIceCandidate-expected.txt:
  • web-platform-tests/webrtc/RTCRtpReceiver-getStats.https-expected.txt:
  • web-platform-tests/webrtc/RTCRtpSender-getStats.https-expected.txt:

Source/WebCore:

Covered by updated and rebased tests.

  • Modules/mediastream/RTCStatsReport.h:

Removed fields that are already defined in the base class.
(WebCore::RTCStatsReport::CodecStats::CodecStats):
Add support for RTCCodecStats.

  • Modules/mediastream/RTCStatsReport.idl:
  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::OnStatsDelivered):

  • Modules/mediastream/libwebrtc/LibWebRTCStatsCollector.cpp:

(WebCore::fillRTCRTPStreamStats):
(WebCore::fillRTCCodecStats):
(WebCore::LibWebRTCStatsCollector::OnStatsDelivered):
Add routines to fill RTCCodecStats from libwebrtc stats.

LayoutTests:

  • webrtc/video-stats.html:
12:30 PM Changeset in webkit [236345] by Megan Gardner
  • 4 edits in trunk/LayoutTests

[iOS] Layout test fast/gradients/conic-gradient-alpha.html is failing
https://bugs.webkit.org/show_bug.cgi?id=189802

Unreviewed test gardening

It is more difficult to squish the alpha channel than the other channels using an SVG filters.
Thus the cropping bars need to be slightly wider to cover the imperfections in the filter.
Made the bars even more slightly wider, since apparenlty they weren't quite wide enough for iOS.

  • fast/gradients/conic-gradient-alpha-expected.html:
  • fast/gradients/conic-gradient-alpha.html:
  • platform/ios-12/TestExpectations:
12:25 PM Changeset in webkit [236344] by achristensen@apple.com
  • 25 edits
    1 add in trunk/Source/WebKit

Simply authentication code even more!
https://bugs.webkit.org/show_bug.cgi?id=189719

Reviewed by Andy Estes.

Just when you thought it couldn't get simpler and more elegant, it can!

  • NetworkProcess/Downloads/Download.cpp:
  • NetworkProcess/NetworkCORSPreflightChecker.cpp:
  • NetworkProcess/NetworkLoad.cpp:
  • NetworkProcess/PingLoad.cpp:
  • NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:
  • Shared/Authentication/AuthenticationChallengeDisposition.h: Added.
  • Shared/Authentication/AuthenticationManager.cpp:

(WebKit::AuthenticationManager::completeAuthenticationChallenge):
(WebKit::AuthenticationManager::useCredentialForChallenge): Deleted.
(WebKit::AuthenticationManager::useCredentialForSingleChallenge): Deleted.
(WebKit::AuthenticationManager::continueWithoutCredentialForChallenge): Deleted.
(WebKit::AuthenticationManager::continueWithoutCredentialForSingleChallenge): Deleted.
(WebKit::AuthenticationManager::cancelChallenge): Deleted.
(WebKit::AuthenticationManager::cancelSingleChallenge): Deleted.
(WebKit::AuthenticationManager::performDefaultHandling): Deleted.
(WebKit::AuthenticationManager::performDefaultHandlingForSingleChallenge): Deleted.
(WebKit::AuthenticationManager::rejectProtectionSpaceAndContinue): Deleted.
(WebKit::AuthenticationManager::rejectProtectionSpaceAndContinueForSingleChallenge): Deleted.

  • Shared/Authentication/AuthenticationManager.h:
  • Shared/Authentication/AuthenticationManager.messages.in:
  • Shared/Authentication/cocoa/AuthenticationManagerCocoa.mm:

(WebKit::AuthenticationManager::initializeConnection):

  • UIProcess/API/C/WKAuthenticationDecisionListener.cpp:

(WKAuthenticationDecisionListenerUseCredential):

  • UIProcess/API/Cocoa/WKNSURLAuthenticationChallenge.mm:

(-[WKNSURLAuthenticationChallengeSender continueWithoutCredentialForAuthenticationChallenge:]):

  • UIProcess/API/glib/WebKitAuthenticationRequest.cpp:

(webkit_authentication_request_authenticate):

  • UIProcess/Authentication/AuthenticationChallengeProxy.cpp:

(WebKit::AuthenticationChallengeProxy::AuthenticationChallengeProxy):

  • UIProcess/Authentication/AuthenticationDecisionListener.cpp:

(WebKit::AuthenticationDecisionListener::AuthenticationDecisionListener):
(WebKit::AuthenticationDecisionListener::~AuthenticationDecisionListener):
(WebKit::AuthenticationDecisionListener::useCredential):
(WebKit::AuthenticationDecisionListener::cancel):
(WebKit::AuthenticationDecisionListener::performDefaultHandling):
(WebKit::AuthenticationDecisionListener::rejectProtectionSpaceAndContinue):

  • UIProcess/Authentication/AuthenticationDecisionListener.h:

(WebKit::AuthenticationDecisionListener::create):

  • UIProcess/Cocoa/DownloadClient.mm:

(WebKit::DownloadClient::didReceiveAuthenticationChallenge):

  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::NavigationClient::didReceiveAuthenticationChallenge):

  • WebKit.xcodeproj/project.pbxproj:
12:19 PM Changeset in webkit [236343] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Regression(Mojave): Resuming a WK2 download crashes
https://bugs.webkit.org/show_bug.cgi?id=189838
<rdar://problem/44618538>

Reviewed by Alex Christensen.

Update our workaround to tweak the download resume data to include the actual download path so that
it works on macOS Mojave and up. Unfortunately, the resume data internal representation has changed,
causing our previous workaround to fail.

  • NetworkProcess/Downloads/cocoa/DownloadCocoa.mm:

(WebKit::Download::resume):

11:56 AM Changeset in webkit [236342] by Devin Rousso
  • 8 edits
    3 deletes in trunk/Source/WebInspectorUI

Web Inspector: remove setting for Sources tab
https://bugs.webkit.org/show_bug.cgi?id=189817

Reviewed by Joseph Pecoraro.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Base/Setting.js:
  • UserInterface/Main.html:
  • UserInterface/Base/Main.js:

(WI.contentLoaded):
(WI._debuggerDidPause):
(WI.isShowingSourcesTab): Removed.
(WI.showSourcesTab): Removed.

  • UserInterface/Views/SourcesSidebarPanel.css: Removed.
  • UserInterface/Views/SourcesSidebarPanel.js: Removed.
  • UserInterface/Views/SourcesTabContentView.js: Removed.
  • UserInterface/Views/ContextMenuUtilities.js:

(WI.appendContextMenuItemsForURL):

  • UserInterface/Views/SettingsTabContentView.js:

(WI.SettingsTabContentView.prototype._createExperimentalSettingsView):

  • UserInterface/Views/SourceCodeTextEditor.js:

(WI.SourceCodeTextEditor.prototype.textEditorGutterContextMenu):

11:42 AM Changeset in webkit [236341] by Simon Fraser
  • 14 edits
    2 adds
    2 deletes in trunk

Make "overflow: overlay" a synonym for "overflow: auto"
https://bugs.webkit.org/show_bug.cgi?id=189811

Source/WebCore:

Reviewed by Zalan Bujtas.

The "overlay" value for overflow was added for an internal Safari feature, and only has
an effect (allow the scrollbar to overlap the content) with legacy scrollbars on macOS.
It's little used on the web.

To simplify code in rendering, just make "overflow: overlay" behave like "overflow: auto".
It's still parsed, but turns into an "auto" value internally, and will be returned from getComputedStyle
as "auto".

Test: fast/css/getComputedStyle/getComputedStyle-overflow.html

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator Overflow const):

  • css/CSSProperties.json:
  • css/CSSValueKeywords.in:
  • css/StyleResolver.cpp:

(WebCore::isScrollableOverflow):

  • css/parser/CSSParserFastPaths.cpp:

(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):

  • page/ios/FrameIOS.mm:

(WebCore::Frame::nodeRespondingToScrollWheelEvents):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::hasVerticalScrollbarWithAutoBehavior const):
(WebCore::RenderBox::hasHorizontalScrollbarWithAutoBehavior const):

  • rendering/RenderLayer.cpp:

(WebCore::styleDefinesAutomaticScrollbar):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::isScrollableOverflow):

  • rendering/style/RenderStyleConstants.h:

Source/WebInspectorUI:

Reviewed by Zalan Bujtas.

Remove "overlay" from the overflow values.

  • UserInterface/Models/CSSKeywordCompletions.js:
  • UserInterface/Views/VisualStyleDetailsPanel.js:

(WI.VisualStyleDetailsPanel.prototype._populateDisplaySection):

LayoutTests:

Reviewed by Zalan Bujtas.

Add a modern CSS parsing/computed style test for overflow, superseding
fast/css/overflow-property.html.

  • fast/css/getComputedStyle/getComputedStyle-overflow-expected.txt: Added.
  • fast/css/getComputedStyle/getComputedStyle-overflow.html: Added.
  • fast/css/overflow-property-expected.txt: Removed.
  • fast/css/overflow-property.html: Removed.
11:40 AM Changeset in webkit [236340] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Tests checking document GC in case of ActiveDOMObjects are flaky
https://bugs.webkit.org/show_bug.cgi?id=189413

Unreviewed test gardening.

  • platform/mac/TestExpectations: Mark http/tests/media/clearkey/collect-webkit-media-session.html as flaky.
11:37 AM Changeset in webkit [236339] by youenn@apple.com
  • 6 edits
    1 add in trunk/Source/WebCore

Centralize which CVPixelBuffer format is being used
https://bugs.webkit.org/show_bug.cgi?id=189772

Reviewed by Eric Carlson.

Get the format type from a single point.
This changes the video capture and mock realtime video sources on Mac to use a biplanar format.
No observable change of behavior.

  • WebCore.xcodeproj/project.pbxproj:
  • platform/mediastream/mac/AVVideoCaptureSource.mm:

(WebCore::AVVideoCaptureSource::setSizeAndFrameRateWithPreset):
(WebCore::AVVideoCaptureSource::setupCaptureSession):
(WebCore::AVVideoCaptureSource::captureOutputDidOutputSampleBufferFromConnection):

  • platform/mediastream/mac/MockRealtimeVideoSourceMac.mm:

(WebCore::MockRealtimeVideoSourceMac::updateSampleBuffer):
(WebCore::MockRealtimeVideoSourceMac::setSizeAndFrameRateWithPreset):

  • platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm:

(WebCore::createBlackPixelBuffer):

  • platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.cpp:

(WebCore::RealtimeOutgoingVideoSourceCocoa::sampleBufferUpdated):

  • platform/mediastream/mac/RealtimeVideoUtilities.h: Added.
11:33 AM Changeset in webkit [236338] by Devin Rousso
  • 3 edits in trunk/Source/WebInspectorUI

Web Inspector: hide Accessibility Audit Tab setting
https://bugs.webkit.org/show_bug.cgi?id=189816

Reviewed by Joseph Pecoraro.

Considering that this tab doesn't exist, there's no reason to have a setting/UI for it.

  • UserInterface/Base/Setting.js:
  • UserInterface/Views/SettingsTabContentView.js:

(WI.SettingsTabContentView.prototype._createExperimentalSettingsView):

11:33 AM Changeset in webkit [236337] by Jonathan Bedard
  • 2 edits in trunk/Source/WebCore/PAL

Bring up queues for iOS 12 (Build fix)
https://bugs.webkit.org/show_bug.cgi?id=189683

Unreviewed build fix.

  • pal/spi/cocoa/QuartzCoreSPI.h: Declare setCornerRadius and continuousCorner.
11:30 AM Changeset in webkit [236336] by Devin Rousso
  • 35 edits
    13 deletes in trunk

Web Inspector: remove Legacy Style Editor
https://bugs.webkit.org/show_bug.cgi?id=189808

Reviewed by Joseph Pecoraro.

Source/WebInspectorUI:

The Legacy Style Editor has been hidden behind an "experimental" setting for almost a year.
It's time that we remove it, especially since the new Style Editor is at a similar, if not
more advanced, state.

  • .eslintrc:
  • WebInspectorUI.vcxproj/WebInspectorUI.vcxproj:
  • WebInspectorUI.vcxproj/WebInspectorUI.vcxproj.filters:
  • Localizations/en.lproj/localizedStrings.js:
  • Tools/PrettyPrinting/index.html:
  • UserInterface/Main.html:
  • UserInterface/Test.html:
  • UserInterface/Base/Setting.js:
  • UserInterface/Base/TextUtilities.js: Removed.
  • UserInterface/Base/Utilities.js:
  • UserInterface/Views/RulesStyleDetailsPanel.css: Removed.
  • UserInterface/Views/RulesStyleDetailsPanel.js: Removed.
  • UserInterface/Views/CSSStyleDeclarationSection.css: Removed.
  • UserInterface/Views/CSSStyleDeclarationSection.js: Removed.
  • UserInterface/Views/CSSStyleDeclarationTextEditor.css: Removed.
  • UserInterface/Views/CSSStyleDeclarationTextEditor.js: Removed.
  • UserInterface/Models/CSSProperty.js:

(WI.CSSProperty.prototype.get text):
(WI.CSSProperty.prototype.get synthesizedText): Deleted.

  • UserInterface/Models/CSSStyleDeclaration.js:

(WI.CSSStyleDeclaration):
(WI.CSSStyleDeclaration.prototype.set text):
(WI.CSSStyleDeclaration.prototype.resetText): Deleted.
(WI.CSSStyleDeclaration.prototype.get modified): Deleted.
(WI.CSSStyleDeclaration.prototype.generateCSSRuleString): Deleted.
(WI.CSSStyleDeclaration.prototype.isInspectorRule): Deleted.

  • UserInterface/Models/CSSSelector.js:

(WI.CSSSelector.prototype.isGreaterThan): Deleted.

  • UserInterface/Models/CSSRule.js:

(WI.CSSRule.prototype.update):
(WI.CSSRule.prototype.get matchedSelectors): Deleted.
(WI.CSSRule.prototype.get matchedSelectorText): Deleted.
(WI.CSSRule.prototype.hasMatchedPseudoElementSelector): Deleted.
(WI.CSSRule.prototype.get mediaText): Deleted.
(WI.CSSRule.prototype.get mostSpecificSelector): Deleted.
(WI.CSSRule.prototype.selectorIsGreater): Deleted.
(WI.CSSRule.prototype._determineMostSpecificSelector): Deleted.

  • UserInterface/Models/DOMNodeStyles.js:

(WI.DOMNodeStyles.prototype.changeRule.changeCompleted): Deleted.
(WI.DOMNodeStyles.prototype.changeRule.styleChanged): Deleted.
(WI.DOMNodeStyles.prototype.changeRule.changeText): Deleted.
(WI.DOMNodeStyles.prototype.changeRule.ruleSelectorChanged): Deleted.
(WI.DOMNodeStyles.prototype.changeRule): Deleted.

  • UserInterface/Models/CSSCompletions.js:

(WI.CSSCompletions.prototype.isValidPropertyName):
(WI.CSSCompletions):
(WI.CSSCompletions.prototype.keySet): Deleted.
(WI.CSSCompletions.prototype.propertyRequiresWebkitPrefix): Deleted.
(WI.CSSCompletions.prototype.getClosestPropertyName): Deleted.

  • UserInterface/Views/ComputedStyleDetailsPanel.js:

(WI.ComputedStyleDetailsPanel.prototype.cssStyleDeclarationTextEditorStartEditingAdjacentRule): Deleted.

  • UserInterface/Views/RulesStyleDetailsSidebarPanel.js:

(WI.RulesStyleDetailsSidebarPanel):

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:

(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyFocusMoved):

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.js:

(WI.SpreadsheetCSSStyleDeclarationSection.prototype.spreadsheetCSSStyleDeclarationEditorStartEditingRuleSelector): Added.
(WI.SpreadsheetCSSStyleDeclarationSection.prototype.cssStyleDeclarationTextEditorStartEditingRuleSelector): Deleted.

  • UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.js:

(WI.SpreadsheetRulesStyleDetailsPanel):

  • UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.css:

(.sidebar > .panel.details.css-style .rules): Added.
(.sidebar > .panel.details.css-style > .content > .rules .section-header): Added.
(.sidebar > .panel.details.css-style > .content > .rules .section-header .node-link): Added.
(.sidebar > .panel.details.css-style > .content > .rules .section-header .node-link:hover): Added.
(.sidebar > .panel.details.css-style > .content > .rules > .message-text-view): Added.
(.sidebar > .panel.details.css-style > .content > .rules:not(.filter-non-matching) > .message-text-view): Added.
(@media (prefers-dark-interface)):
(.sidebar > .panel.details.css-style > .content > .rules .section-header): Added.
(.sidebar > .panel.details.css-style > .content > .rules .section-header .node-link:hover): Added.
(.spreadsheet-style-panel .section-header): Deleted.
(.spreadsheet-style-panel .section-header .node-link): Deleted.
(.spreadsheet-style-panel .section-header .node-link:hover): Deleted.
(.spreadsheet-style-panel .section-header): Deleted.
(.spreadsheet-style-panel .section-header .node-link:hover): Deleted.

  • UserInterface/Views/CodeMirrorAdditions.js:

(extendedCSSRuleStartState): Removed.

  • UserInterface/Views/CodeMirrorFormatters.js:

Remove "css-rule" CodeMirror mode.

  • UserInterface/Views/CodeMirrorTextMarkers.js:

(createCodeMirrorVariableTextMarkers): Deleted.

  • UserInterface/Views/SettingsTabContentView.js:

(WI.SettingsTabContentView.prototype._createExperimentalSettingsView):

LayoutTests:

  • platform/gtk/TestExpectations:
  • platform/mac/TestExpectations:
  • inspector/css/css-property-expected.txt:
  • inspector/css/css-property.html:
  • inspector/css/modify-css-property.html:
  • inspector/css/shadow-scoped-style.html:

Update tests for functionality that has been deleted.

  • inspector/unit-tests/test-harness-expect-functions-expected.txt:
  • inspector/unit-tests/test-harness-expect-functions.html:

The changes to WI.CSSRule now make it small enough that InspectorTest will print it as
JSON instead of an object instance. Change the test to use different objects so this doesn't
happen.

  • inspector/unit-tests/text-utilities-expected.txt: Removed.
  • inspector/unit-tests/text-utilities.html: Removed.
  • inspector/css/generate-css-rule-string-expected.txt: Removed.
  • inspector/css/generate-css-rule-string.html: Removed.

Remove tests for functionality that has been deleted.

  • inspector/codemirror/prettyprinting-css-rules.html: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/add-whitespace-after-colon-expected.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/add-whitespace-after-colon.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/add-whitespace-after-comma-expected.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/add-whitespace-after-comma.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/add-whitespace-between-rules-expected.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/add-whitespace-between-rules.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/add-whitespace-between-values-expected.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/add-whitespace-between-values.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/css-variables-expected.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/css-variables.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/do-not-add-whitespace-before-prefixed-property-value-expected.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/do-not-add-whitespace-before-prefixed-property-value.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/do-not-append-semicolon-expected.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/do-not-append-semicolon.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/invalid-property-is-not-removed-expected.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/invalid-property-is-not-removed.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/keep-prefixed-value-expected.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/keep-prefixed-value.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/remove-newline-between-values-expected.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/remove-newline-between-values.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/remove-whitespace-before-colon-expected.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/remove-whitespace-before-colon.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/remove-whitespace-before-comment-expected.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/remove-whitespace-before-comment.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/remove-whitespace-before-invalid-property-expected.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/remove-whitespace-before-invalid-property.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/remove-whitespace-before-prefixed-property-expected.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/remove-whitespace-before-prefixed-property.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/remove-whitespace-before-property-expected.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/remove-whitespace-before-property.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/remove-whitespace-before-semicolon-expected.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/remove-whitespace-before-semicolon.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/split-comment-followed-by-comment-expected.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/split-comment-followed-by-comment.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/split-comment-followed-by-invalid-property-expected.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/split-comment-followed-by-invalid-property.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/split-comment-followed-by-prefixed-property-expected.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/split-comment-followed-by-prefixed-property.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/split-comment-followed-by-property-expected.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/split-comment-followed-by-property.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/split-invalid-property-followed-by-comment-expected.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/split-invalid-property-followed-by-comment.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/split-invalid-property-followed-by-invalid-property-expected.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/split-invalid-property-followed-by-invalid-property.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/split-invalid-property-followed-by-prefixed-property-expected.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/split-invalid-property-followed-by-prefixed-property.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/split-invalid-property-followed-by-property-expected.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/split-invalid-property-followed-by-property.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/split-property-followed-by-comment-expected.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/split-property-followed-by-comment.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/split-property-followed-by-invalid-property-expected.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/split-property-followed-by-invalid-property.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/split-property-followed-by-prefixed-property-expected.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/split-property-followed-by-prefixed-property.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/split-property-followed-by-property-expected.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/split-property-followed-by-property.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/split-property-without-semicolon-followed-by-comment-and-property-expected.css: Removed.
  • inspector/codemirror/resources/prettyprinting/css-rule-tests/split-property-without-semicolon-followed-by-comment-and-property.css: Removed.

Remove all tests for the "css-rule" CodeMirror mode since it's been removed.

10:55 AM Changeset in webkit [236335] by Kocsen Chung
  • 2 edits in branches/safari-606-branch/Source/WebKit

Cherry-pick r236322. rdar://problem/44660342

Whitelist two additional plugins
https://bugs.webkit.org/show_bug.cgi?id=189832
<rdar://problem/44628127>

Reviewed by Brent Fulgham.

  • UIProcess/Plugins/mac/PluginInfoStoreMac.mm: (WebKit::PluginInfoStore::shouldAllowPluginToRunUnsandboxed):

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

10:55 AM Changeset in webkit [236334] by Kocsen Chung
  • 2 edits in branches/safari-606-branch/Source/WebKit

Cherry-pick r236291. rdar://problem/44660342

Allow additional plug-ins to run unsandboxed
https://bugs.webkit.org/show_bug.cgi?id=189791
<rdar://problem/44628127>

Reviewed by Brent Fulgham.

  • UIProcess/Plugins/mac/PluginInfoStoreMac.mm: (WebKit::PluginInfoStore::shouldAllowPluginToRunUnsandboxed):

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

10:48 AM Changeset in webkit [236333] by Kocsen Chung
  • 4 edits
    10 adds in branches/safari-606-branch

Cherry-pick r236306. rdar://problem/44682841

Restrict the total combined size of backdrop filters
https://bugs.webkit.org/show_bug.cgi?id=189812
<rdar://problem/44532782>

Reviewed by Simon Fraser.

Source/WebCore:

If the total area of all backdrop filters on the page gets
too large, the universe collapses in on itself and we enter
the Quantum Realm (i.e. crash horribly).

Put a hard limit on the total coverage, and ignore any backdrop
filters after the limit. This might break some content, but
such content is likely not doing things in the most optimal manner.
There isn't any reason to have a backdrop larger than the size of
the screen, because you'd be better off applying a foreground
filter to the main content and showing something above it.

Tests: css3/filters/backdrop/resource-use-add-more-layers.html

css3/filters/backdrop/resource-use-excessive.html
css3/filters/backdrop/resource-use-ok.html
css3/filters/backdrop/resource-use-remove-some-layers.html

  • platform/graphics/ca/GraphicsLayerCA.cpp: Pick a fairly small maximum size. We can consider increasing this if necessary, and as devices with less RAM are upgraded. (WebCore::GraphicsLayerCA::recursiveCommitChanges): Gather the accumulated size of backdrop filters into the commit state as we are recursing through the tree. (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers): Force any layer with backdrop filters, or any that is removing backdrop filters, into an update. (WebCore::GraphicsLayerCA::updateBackdropFilters): Update the logic to first check if this backdrop layer causes us to exceed the total allowed size, and if it does, forbid it from getting the GraphicsLayer that composits the backdrop.
  • platform/graphics/ca/GraphicsLayerCA.h: Remove const from some parameters so that we can use the CommitState to hold the accumulated size.

LayoutTests:

Tests that have an acceptable number of backdrops, an excessive
number of backdrops, and then some that add and remove backdrops
at various points in the tree to confirm we do recursive checks
correctly.

  • css3/filters/backdrop/layer-tree-as-text.js: Added.
  • css3/filters/backdrop/resource-use-add-more-layers-expected.txt: Added.
  • css3/filters/backdrop/resource-use-add-more-layers.html: Added.
  • css3/filters/backdrop/resource-use-excessive-expected.txt: Added.
  • css3/filters/backdrop/resource-use-excessive.html: Added.
  • css3/filters/backdrop/resource-use-ok-expected.txt: Added.
  • css3/filters/backdrop/resource-use-ok.html: Added.
  • css3/filters/backdrop/resource-use-remove-some-layers-expected.txt: Added.
  • css3/filters/backdrop/resource-use-remove-some-layers.html: Added.
  • css3/filters/backdrop/resource-use.css: Added.

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

10:48 AM Changeset in webkit [236332] by Kocsen Chung
  • 3 edits
    1 add in branches/safari-606-branch

Cherry-pick r236223. rdar://problem/44682814

AI rule for MultiPutByOffset executes its effects in the wrong order
https://bugs.webkit.org/show_bug.cgi?id=189757
<rdar://problem/43535257>

Reviewed by Michael Saboff.

JSTests:

  • stress/multi-put-by-offset-must-filter-value-before-filtering-base.js: Added. (foo): (Foo): (g):

Source/JavaScriptCore:

The AI rule for MultiPutByOffset was executing effects in the wrong order.
It first executed the transition effects and the effects on the base, and
then executed the filtering effects on the value being stored. However, you
can end up with the wrong type when the base and the value being stored
are the same. E.g, in a program like o.f = o. These effects need to happen
in the opposite order, modeling what happens in the runtime executing of
MultiPutByOffset.

  • dfg/DFGAbstractInterpreterInlines.h: (JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

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

10:13 AM Changeset in webkit [236331] by Jonathan Bedard
  • 3 edits in trunk/Tools

Bring up queues for iOS 12 (Build fix)
https://bugs.webkit.org/show_bug.cgi?id=189683

Unreviewed build fix.

We should not build ImageDiff as x86 by default since 32 bit projects are
deprecated in Xcode. ImageDiff should only be built once.

  • Scripts/build-webkit:
  • Scripts/webkitdirs.pm:

(argumentsForConfiguration):

10:04 AM Changeset in webkit [236330] by Kocsen Chung
  • 7 edits in branches/safari-606-branch/Source

Versioning.

10:04 AM Changeset in webkit [236329] by Adrian Perez de Castro
  • 2 edits
    2 adds in releases/WebKitGTK/webkit-2.22

Merge r236314 - [MSE] Fix comparsion with uninitialized greatestDecodeDuration
https://bugs.webkit.org/show_bug.cgi?id=189805

Reviewed by Michael Catanzaro.

This bug was causing greatestDecodeDuration to never be initialized,
which in turned caused unintended frame erase as distant appends where
not being recognized as distinct coded frame groups.

A test reproducing the sequence of appends that caused unintended
frame deletion has also been added (media-source-append-out-of-order.html).

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):

10:04 AM Changeset in webkit [236328] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/JavaScriptCore

Merge r236315 - [ARM] Build broken on armv7hl after r235517
https://bugs.webkit.org/show_bug.cgi?id=189831

Reviewed by Yusuke Suzuki.

Add missing implementation of patchebleBranch8() for traditional ARM.

  • assembler/MacroAssemblerARM.h:

(JSC::MacroAssemblerARM::patchableBranch8):

10:04 AM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
10:04 AM Changeset in webkit [236327] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.22/Tools

Merge r236309 - [WPE] Built RPM of WPE webkit fails to install with "nothing provides libWPEToolingBackends.so()"
https://bugs.webkit.org/show_bug.cgi?id=189797

Reviewed by Žan Doberšek.

  • wpe/backends/CMakeLists.txt: Make libWPEToolingBackends a static library to avoid

the need for installing it. This works fine because the library only contains utility
code intended to be reused from other various components (MiniBrowser, WebKitTestRunner).

10:04 AM Changeset in webkit [236326] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.22/Tools

Merge r236275 - [WPE] fails to build on ARM arches complaining about undefined reference to `epoxy_eglMakeCurrent'
https://bugs.webkit.org/show_bug.cgi?id=189556

Reviewed by Konstantin Tokarev.

This is only a speculative build fix as I didn't attempt to reproduce. Explicitly link to
libepoxy.

  • wpe/backends/CMakeLists.txt:
10:04 AM Changeset in webkit [236325] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r236264 - [GStreamer][MSE] Add a default sample duration
https://bugs.webkit.org/show_bug.cgi?id=189788

Some WebM files don't provide sample durations, so we need to provide
a safe default in order for them to be playable.

Reviewed by Michael Catanzaro.

  • platform/graphics/gstreamer/MediaSampleGStreamer.cpp:

(WebCore::MediaSampleGStreamer::MediaSampleGStreamer):

10:04 AM Changeset in webkit [236324] by Adrian Perez de Castro
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r236258 - [MSE] Use some tolerance when deciding whether a frame should be appended to the decode queue
https://bugs.webkit.org/show_bug.cgi?id=189782

Reviewed by Xabier Rodriguez-Calvar.

Ideally, container formats should use exact timestamps and frames
should not overlap. Unfortunately, there are lots of files out there
where this is not always the case.

This is particularly a problem in WebM, where timestamps are expressed
in a power of 10 timescale, which forces some rounding.

This patch makes SourceBuffer allow frames with a small overlaps
(<=1ms) as those usually found in WebM. 1 ms is chosen because it's
the default time scale of WebM files.

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):

10:02 AM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
9:59 AM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
9:57 AM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
9:57 AM Changeset in webkit [236323] by graouts@webkit.org
  • 5 edits in trunk

REGRESSION (r235962-r235963): Layout Test animations/suspend-resume-animation-events.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=189607
<rdar://problem/44652315>

Reviewed by Dean Jackson.

Source/WebCore:

There is no reason we shouldn't return the document timeline's time when suspended as otherwise animations may
report an unresolved current time when suspended which would wreak havoc when invalidating what DOM events to
dispatch for CSS Animations and Transitions. We also shouldn't be invalidation DOM events when suspended.

  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::currentTime):
(WebCore::DocumentTimeline::DocumentTimeline::performInvalidationTask):

LayoutTests:

  • animations/suspend-resume-animation-events.html: Ensure the test always opts into Web Animations backing CSS Animations and Transitions.
  • platform/mac-wk2/TestExpectations: Mark the test as no longer flaky.
9:54 AM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
9:51 AM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
9:41 AM Changeset in webkit [236322] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

Whitelist two additional plugins
https://bugs.webkit.org/show_bug.cgi?id=189832
<rdar://problem/44628127>

Reviewed by Brent Fulgham.

  • UIProcess/Plugins/mac/PluginInfoStoreMac.mm:

(WebKit::PluginInfoStore::shouldAllowPluginToRunUnsandboxed):

9:20 AM Changeset in webkit [236321] by commit-queue@webkit.org
  • 46 edits in trunk

Build tools should work when the /usr/bin/python is python3
https://bugs.webkit.org/show_bug.cgi?id=156674

Patch by Mike Gorse <mgorse@suse.com> on 2018-09-21
Reviewed by Michael Catanzaro.

.:

  • Source/cmake/WebKitCommon.cmake: Allow python 3.

Source/JavaScriptCore:

  • Scripts/cssmin.py:
  • Scripts/generate-js-builtins.py:

(do_open):
(generate_bindings_for_builtins_files):

  • Scripts/generateIntlCanonicalizeLanguage.py:
  • Scripts/jsmin.py:

(JavascriptMinify.minify.write):
(JavascriptMinify):
(JavascriptMinify.minify):

  • Scripts/make-js-file-arrays.py:

(chunk):
(main):

  • Scripts/wkbuiltins/init.py:
  • Scripts/wkbuiltins/builtins_generate_combined_header.py:

(generate_section_for_global_private_code_name_macro):

  • Scripts/wkbuiltins/builtins_generate_internals_wrapper_header.py:

(BuiltinsInternalsWrapperHeaderGenerator.init):

  • Scripts/wkbuiltins/builtins_generate_internals_wrapper_implementation.py:

(BuiltinsInternalsWrapperImplementationGenerator.init):

  • Scripts/wkbuiltins/builtins_model.py:

(BuiltinFunction.lt):
(BuiltinsCollection.copyrights):
(BuiltinsCollection._parse_functions):

  • disassembler/udis86/ud_opcode.py:

(UdOpcodeTables.pprint.printWalk):

  • generate-bytecode-files:
  • inspector/scripts/codegen/init.py:
  • inspector/scripts/codegen/cpp_generator.py:
  • inspector/scripts/codegen/generate_cpp_alternate_backend_dispatcher_header.py:

(CppAlternateBackendDispatcherHeaderGenerator.generate_output):

  • inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py:

(CppBackendDispatcherHeaderGenerator.domains_to_generate):
(CppBackendDispatcherHeaderGenerator.generate_output):
(CppBackendDispatcherHeaderGenerator._generate_dispatcher_declarations_for_domain):

  • inspector/scripts/codegen/generate_cpp_backend_dispatcher_implementation.py:

(CppBackendDispatcherImplementationGenerator.domains_to_generate):
(CppBackendDispatcherImplementationGenerator.generate_output):

  • inspector/scripts/codegen/generate_cpp_frontend_dispatcher_header.py:

(CppFrontendDispatcherHeaderGenerator.domains_to_generate):
(CppFrontendDispatcherHeaderGenerator.generate_output):

  • inspector/scripts/codegen/generate_cpp_frontend_dispatcher_implementation.py:

(CppFrontendDispatcherImplementationGenerator.domains_to_generate):
(CppFrontendDispatcherImplementationGenerator.generate_output):

  • inspector/scripts/codegen/generate_cpp_protocol_types_header.py:

(CppProtocolTypesHeaderGenerator.generate_output):
(CppProtocolTypesHeaderGenerator._generate_forward_declarations):

  • inspector/scripts/codegen/generate_cpp_protocol_types_implementation.py:

(CppProtocolTypesImplementationGenerator.generate_output):
(CppProtocolTypesImplementationGenerator._generate_enum_conversion_methods_for_domain):
(CppProtocolTypesImplementationGenerator._generate_enum_mapping_and_conversion_methods):
(CppProtocolTypesImplementationGenerator._generate_open_field_names):
(CppProtocolTypesImplementationGenerator._generate_builders_for_domain):
(CppProtocolTypesImplementationGenerator._generate_assertion_for_object_declaration):

  • inspector/scripts/codegen/generate_js_backend_commands.py:

(JSBackendCommandsGenerator.should_generate_domain):
(JSBackendCommandsGenerator.domains_to_generate):
(JSBackendCommandsGenerator.generate_output):
(JSBackendCommandsGenerator.generate_domain):

  • inspector/scripts/codegen/generate_objc_backend_dispatcher_header.py:

(ObjCBackendDispatcherHeaderGenerator.domains_to_generate):
(ObjCBackendDispatcherHeaderGenerator.generate_output):

  • inspector/scripts/codegen/generate_objc_backend_dispatcher_implementation.py:

(ObjCBackendDispatcherImplementationGenerator.domains_to_generate):
(ObjCBackendDispatcherImplementationGenerator.generate_output):
(ObjCBackendDispatcherImplementationGenerator._generate_success_block_for_command):

  • inspector/scripts/codegen/generate_objc_configuration_header.py:
  • inspector/scripts/codegen/generate_objc_configuration_implementation.py:
  • inspector/scripts/codegen/generate_objc_frontend_dispatcher_implementation.py:

(ObjCFrontendDispatcherImplementationGenerator.domains_to_generate):
(ObjCFrontendDispatcherImplementationGenerator.generate_output):
(ObjCFrontendDispatcherImplementationGenerator._generate_event):

  • inspector/scripts/codegen/generate_objc_header.py:

(ObjCHeaderGenerator.generate_output):
(ObjCHeaderGenerator._generate_type_interface):

  • inspector/scripts/codegen/generate_objc_internal_header.py:

(ObjCInternalHeaderGenerator.generate_output):

  • inspector/scripts/codegen/generate_objc_protocol_type_conversions_header.py:

(ObjCProtocolTypeConversionsHeaderGenerator.domains_to_generate):
(ObjCProtocolTypeConversionsHeaderGenerator.generate_output):

  • inspector/scripts/codegen/generate_objc_protocol_type_conversions_implementation.py:

(ObjCProtocolTypeConversionsImplementationGenerator.domains_to_generate):

  • inspector/scripts/codegen/generate_objc_protocol_types_implementation.py:

(ObjCProtocolTypesImplementationGenerator.domains_to_generate):
(ObjCProtocolTypesImplementationGenerator.generate_output):
(ObjCProtocolTypesImplementationGenerator.generate_type_implementation):
(ObjCProtocolTypesImplementationGenerator._generate_init_method_for_required_members):

  • inspector/scripts/codegen/generator.py:

(Generator.non_supplemental_domains):
(Generator.open_fields):
(Generator.calculate_types_requiring_shape_assertions):
(Generator._traverse_and_assign_enum_values):
(Generator.stylized_name_for_enum_value):

  • inspector/scripts/codegen/models.py:

(find_duplicates):

  • inspector/scripts/codegen/objc_generator.py:
  • wasm/generateWasm.py:

(opcodeIterator):

  • yarr/generateYarrCanonicalizeUnicode:
  • yarr/generateYarrUnicodePropertyTables.py:
  • yarr/hasher.py:

(stringHash):

Source/WebCore:

No new tests (no behavior change).

  • platform/network/create-http-header-name-table: remove xreadlines.

Source/WebInspectorUI:

  • Scripts/copy-user-interface-resources.pl: Use $PYTHON if set

in the environment.

9:17 AM Changeset in webkit [236320] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebKit

Clear persistent storage between tests for resourceLoadStatistics
https://bugs.webkit.org/show_bug.cgi?id=189684
<rdar://problem/44540099>

Patch by Woodrow Wang <woodrow_wang@apple.com> on 2018-09-21
Reviewed by Chris Dumez.

  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp:

(WKWebsiteDataStoreStatisticsResetToConsistentState):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::didClose):
(WebKit::NetworkProcessProxy::updatePrevalentDomainsToBlockCookiesFor):

  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemoryAndPersistent):

Remove function only called in testing for resetting statistics to consistent
state.

(WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemory): Deleted.

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::WebsiteDataStore::updatePrevalentDomainsToBlockCookiesFor):
(WebKit::WebsiteDataStore::removeAllStorageAccessHandler):

8:57 AM Changeset in webkit [236319] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Layout Test webanimations/accelerated-animation-suspension.html is failing
https://bugs.webkit.org/show_bug.cgi?id=189836

Unreviewed test gardening.

  • platform/win/TestExpectations:
8:51 AM Changeset in webkit [236318] by pvollan@apple.com
  • 2 edits in trunk/LayoutTests

Layout Test css-custom-properties-api/registerProperty.html is failing
https://bugs.webkit.org/show_bug.cgi?id=189834

Unreviewed test gardening.

  • platform/win/TestExpectations:
8:44 AM WebKitGTK/2.22.x edited by Michael Catanzaro
(diff)
8:36 AM WebKitGTK/2.22.x edited by Michael Catanzaro
(diff)
8:08 AM Changeset in webkit [236317] by jer.noble@apple.com
  • 12 edits
    1 copy in trunk/Source/WebCore

[EME] Introduce the concept of CDMInstanceSession.
https://bugs.webkit.org/show_bug.cgi?id=189725

Reviewed by Eric Carlson.

Currently, the same CDMInstance owned by a MediaKeys object is passed to every MediaKeySession created by that
MediaKeys, and since the CDMInstance has only a single CDMInstanceClient, subsequent MediaKeySessions prevent
previous ones from getting updates.

Add a new virtual interface, CDMInstanceSession, to be passed to MediaKeySession upon creation. Refactor
CDMInstanceClearKey and CDMInstanceFairPlayStreamingAVFObjC to adopt this new interface.

Drive-by fixes: Made a number of virtual overrides in final classes final themselves.

  • Modules/encryptedmedia/MediaKeySession.cpp:

(WebCore::MediaKeySession::create):
(WebCore::MediaKeySession::MediaKeySession):
(WebCore::MediaKeySession::generateRequest):
(WebCore::MediaKeySession::load):
(WebCore::MediaKeySession::update):
(WebCore::MediaKeySession::remove):
(WebCore::MediaKeySession::updateKeyStatuses):

  • Modules/encryptedmedia/MediaKeySession.h:
  • Modules/encryptedmedia/MediaKeys.cpp:

(WebCore::MediaKeys::createSession):

  • WebCore.xcodeproj/project.pbxproj:
  • platform/encryptedmedia/CDMInstance.h:

(WebCore::CDMInstance::setHDCPStatus):
(WebCore::CDMInstance::setClient): Deleted.
(WebCore::CDMInstance::clearClient): Deleted.

  • platform/encryptedmedia/CDMInstanceSession.h: Copied from Source/WebCore/platform/encryptedmedia/CDMInstance.h.

(WebCore::CDMInstanceSession::setClient):
(WebCore::CDMInstanceSession::clearClient):

  • platform/encryptedmedia/clearkey/CDMClearKey.cpp:

(WebCore::parseLicenseFormat):
(WebCore::CDMInstanceClearKey::keySystem const):
(WebCore::CDMInstanceClearKey::createSession):
(WebCore::CDMInstanceSessionClearKey::requestLicense):
(WebCore::CDMInstanceSessionClearKey::keys const):
(WebCore::CDMInstanceSessionClearKey::updateLicense):
(WebCore::CDMInstanceSessionClearKey::loadSession):
(WebCore::CDMInstanceSessionClearKey::closeSession):
(WebCore::CDMInstanceSessionClearKey::removeSessionData):
(WebCore::CDMInstanceSessionClearKey::storeRecordOfKeyUsage):
(WebCore::CDMInstanceClearKey::requestLicense): Deleted.
(WebCore::CDMInstanceClearKey::keys const): Deleted.
(WebCore::CDMInstanceClearKey::updateLicense): Deleted.
(WebCore::CDMInstanceClearKey::loadSession): Deleted.
(WebCore::CDMInstanceClearKey::closeSession): Deleted.
(WebCore::CDMInstanceClearKey::removeSessionData): Deleted.
(WebCore::CDMInstanceClearKey::storeRecordOfKeyUsage): Deleted.

  • platform/encryptedmedia/clearkey/CDMClearKey.h:
  • platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.h:
  • platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm:

(WebCore::CDMInstanceFairPlayStreamingAVFObjC::createSession):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::processContentKeyRequestForSession):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::processNextContentKeyRequest):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::keySystem const):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::didProvideRequest):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::didProvideRenewingRequest):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::didProvidePersistableRequest):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::didFailToProvideRequest):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::requestDidSucceed):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::shouldRetryRequestForReason):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::sessionIdentifierChanged):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::outputObscuredDueToInsufficientExternalProtectionChanged):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::CDMInstanceSessionFairPlayStreamingAVFObjC):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::keyIDs):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::requestLicense):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::updateLicense):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::loadSession):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::closeSession):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::removeSessionData):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::storeRecordOfKeyUsage):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::setClient):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::clearClient):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didProvideRequest):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didProvideRenewingRequest):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didProvidePersistableRequest):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::didFailToProvideRequest):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::requestDidSucceed):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::shouldRetryRequestForReason):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::sessionIdentifierChanged):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::outputObscuredDueToInsufficientExternalProtectionChanged):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::isLicenseTypeSupported const):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::isLicenseTypeSupported const): Deleted.
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::keyIDs): Deleted.
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::requestLicense): Deleted.
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::updateLicense): Deleted.
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::loadSession): Deleted.
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::closeSession): Deleted.
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::removeSessionData): Deleted.
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::storeRecordOfKeyUsage): Deleted.
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::setClient): Deleted.
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::clearClient): Deleted.

  • testing/MockCDMFactory.cpp:

(WebCore::MockCDMInstance::keySystem const):
(WebCore::MockCDMInstance::createSession):
(WebCore::MockCDMInstanceSession::MockCDMInstanceSession):
(WebCore::MockCDMInstanceSession::requestLicense):
(WebCore::MockCDMInstanceSession::updateLicense):
(WebCore::MockCDMInstanceSession::loadSession):
(WebCore::MockCDMInstanceSession::closeSession):
(WebCore::MockCDMInstanceSession::removeSessionData):
(WebCore::MockCDMInstanceSession::storeRecordOfKeyUsage):
(WebCore::MockCDMInstance::requestLicense): Deleted.
(WebCore::MockCDMInstance::updateLicense): Deleted.
(WebCore::MockCDMInstance::loadSession): Deleted.
(WebCore::MockCDMInstance::closeSession): Deleted.
(WebCore::MockCDMInstance::removeSessionData): Deleted.
(WebCore::MockCDMInstance::storeRecordOfKeyUsage): Deleted.

  • testing/MockCDMFactory.h:

(WebCore::MockCDMInstance::factory const):
(WebCore::MockCDMInstance::distinctiveIdentifiersAllowed const):
(WebCore::MockCDMInstance::persistentStateAllowed const):

7:37 AM WebKitGTK/2.22.x edited by tpopela@redhat.com
(diff)
7:37 AM Changeset in webkit [236316] by commit-queue@webkit.org
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

[libwebrtc] Allow IP mismatch for local connections on localhost
https://bugs.webkit.org/show_bug.cgi?id=189828

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-09-21
Reviewed by Alejandro G. Castro.

The rest of the code allows it, but there was an unecessary assert

See Bug 187302

  • Source/webrtc/p2p/base/tcpport.cc:
7:35 AM Changeset in webkit [236315] by tpopela@redhat.com
  • 2 edits in trunk/Source/JavaScriptCore

[ARM] Build broken on armv7hl after r235517
https://bugs.webkit.org/show_bug.cgi?id=189831

Reviewed by Yusuke Suzuki.

Add missing implementation of patchebleBranch8() for traditional ARM.

  • assembler/MacroAssemblerARM.h:

(JSC::MacroAssemblerARM::patchableBranch8):

6:47 AM Changeset in webkit [236314] by aboya@igalia.com
  • 2 edits
    2 adds in trunk

[MSE] Fix comparsion with uninitialized greatestDecodeDuration
https://bugs.webkit.org/show_bug.cgi?id=189805

Reviewed by Michael Catanzaro.

This bug was causing greatestDecodeDuration to never be initialized,
which in turned caused unintended frame erase as distant appends where
not being recognized as distinct coded frame groups.

A test reproducing the sequence of appends that caused unintended
frame deletion has also been added (media-source-append-out-of-order.html).

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):

6:14 AM Changeset in webkit [236313] by graouts@webkit.org
  • 4 edits in trunk

[Web Animations] Accelerated animations don't get suspended
https://bugs.webkit.org/show_bug.cgi?id=189783
<rdar://problem/44652315>

Unreviewed, correct a merge error in the previous commit.

Source/WebCore:

  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::performInvalidationTask):

LayoutTests:

  • animations/suspend-resume-animation-events.html:
6:09 AM Changeset in webkit [236312] by graouts@webkit.org
  • 5 edits
    2 adds in trunk

[Web Animations] Accelerated animations don't get suspended
https://bugs.webkit.org/show_bug.cgi?id=189783
<rdar://problem/43033568>

Reviewed by Dean Jackson.

Source/WebCore:

Test: webanimations/accelerated-animation-suspension.html

We used to set the flag that marked the timeline as suspended prior to notifying animations that they need to be suspended.
However, since the timeline was marked as suspended, querying the running state of the animations would indicate that the
animations weren't running since a suspended timeline would identify its animations as not running. As such we would fail
to pause the accelerated animations because they were already not marked as running. We now set the suspended flag on the
timeline _after_ suspending its animations.

We also fix a bug in the new internals.acceleratedAnimationsForElement() test function so that we read from the actual
CA animations and not from a stale list of animations which would not indicate the correct animation speeds.

  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::suspendAnimations):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::acceleratedAnimationsForTesting):

LayoutTests:

Add a new test that checks whether an accelerated animation is correctly paused after suspending animations.

  • webanimations/accelerated-animation-suspension-expected.txt: Added.
  • webanimations/accelerated-animation-suspension.html: Added.
  • platform/win/TestExpectations:
5:47 AM Changeset in webkit [236311] by zandobersek@gmail.com
  • 6 edits in trunk/Source/WebCore

TransformationMatrix::toColumnMajorFloatArray() should return a std::array<> object
https://bugs.webkit.org/show_bug.cgi?id=189823

Reviewed by Michael Catanzaro.

Alias the TransformationMatrix::FloatMatrix4 type to
std::array<float, 16>. Instead of filling out the array object that's
passed in through a reference parameter, return the std::array<>
object from the function.

  • Modules/webvr/VRFrameData.cpp:

(WebCore::matrixToArray):

  • Modules/webvr/VRStageParameters.cpp:

(WebCore::VRStageParameters::sittingToStandingTransform const):

  • platform/graphics/texmap/TextureMapperShaderProgram.cpp:

(WebCore::TextureMapperShaderProgram::setMatrix):

  • platform/graphics/transforms/TransformationMatrix.cpp:

(WebCore::TransformationMatrix::toColumnMajorFloatArray const):

  • platform/graphics/transforms/TransformationMatrix.h:
5:45 AM Changeset in webkit [236310] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

FloatQuad point getters should return const references
https://bugs.webkit.org/show_bug.cgi?id=189821

Reviewed by Yusuke Suzuki.

Be pedantic and have the FloatQuad point getters return const references
to the FloatPoint member variables, instead of technically creating
copies of them (though much of this copying is eliminated when the
getters are inlined).

  • platform/graphics/FloatQuad.h:

(WebCore::FloatQuad::p1 const):
(WebCore::FloatQuad::p2 const):
(WebCore::FloatQuad::p3 const):
(WebCore::FloatQuad::p4 const):

5:09 AM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
4:42 AM Changeset in webkit [236309] by Adrian Perez de Castro
  • 2 edits in trunk/Tools

[WPE] Built RPM of WPE webkit fails to install with "nothing provides libWPEToolingBackends.so()"
https://bugs.webkit.org/show_bug.cgi?id=189797

Reviewed by Žan Doberšek.

  • wpe/backends/CMakeLists.txt: Make libWPEToolingBackends a static library to avoid

the need for installing it. This works fine because the library only contains utility
code intended to be reused from other various components (MiniBrowser, WebKitTestRunner).

4:28 AM Changeset in webkit [236308] by graouts@webkit.org
  • 9 edits
    2 adds in trunk

[Web Animations] DocumentTimeline::updateAnimations() is called endlessly
https://bugs.webkit.org/show_bug.cgi?id=189784
<rdar://problem/41705679>

Reviewed by Dean Jackson.

Source/WebCore:

Test: webanimations/accelerated-animation-interruption-display-none.html

We have code that keeps queueing pending accelerated actions for an animation that does not have a renderer until it has one
so that we can deal with situations where animations are ready to commited before its composited renderer is available. This
code ended up running continuously when an element with an accelerated animation had its renderer removed without the animation
being removed itself, such as setting "display: none" on an element with an acceelerated CSS Animation targeting it.

We fix this by queueing up a "Stop" accelerated action when updating the accelerated state if there is no renderer for the current
animation target. Then, we no longer re-queue pending accelerated actions if the last queued operation is "Stop". This ensures that
we no longer queue actions endlessly when there is no longer a visible animation.

To test this, we add a new internals.numberOfAnimationTimelineInvalidations() method that indicates the number of times the current
document's animation timeline was invalidated.

  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::updateAnimations):
(WebCore::DocumentTimeline::numberOfAnimationTimelineInvalidationsForTesting const):

  • animation/DocumentTimeline.h:
  • animation/KeyframeEffectReadOnly.cpp:

(WebCore::KeyframeEffectReadOnly::updateAcceleratedAnimationState): If the animation target does not have a renderer and it's still
marked as running, enqueue a "Stop" accelerated action.
(WebCore::KeyframeEffectReadOnly::addPendingAcceleratedAction): If we enqueue a "Stop" accelerated action, remove any other queued
action so that we only process the "Stop" action, which would have superseded all previously queued actions anyway.
(WebCore::KeyframeEffectReadOnly::applyPendingAcceleratedActions): Only re-queue pending accelerated actions when a composited renderer
is not yet available if we don't have a "Stop" action queued.

  • testing/Internals.cpp:

(WebCore::Internals::numberOfAnimationTimelineInvalidations const):

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

LayoutTests:

Add a new test that checks that setting "display: none" on an element with an accelerated CSS animation on it
will no longer update the animation timeline.

  • webanimations/accelerated-animation-interruption-display-none-expected.txt: Added.
  • webanimations/accelerated-animation-interruption-display-none.html: Added.
  • platform/win/TestExpectations:
12:37 AM Changeset in webkit [236307] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[EME] Fix typo in WebM sanitization variable
https://bugs.webkit.org/show_bug.cgi?id=189789

Patch by Yacine Bandou <yacine.bandou@softathome.com> on 2018-09-21
Reviewed by Xabier Rodriguez-Calvar.

This commit corrects a typo in the name of a local variable, sanitizedBuffer
instead of sanitazedBuffer.

  • Modules/encryptedmedia/InitDataRegistry.cpp:

(WebCore::extractKeyIDsWebM):

Sep 20, 2018:

10:37 PM Changeset in webkit [236306] by dino@apple.com
  • 4 edits
    10 adds in trunk

Restrict the total combined size of backdrop filters
https://bugs.webkit.org/show_bug.cgi?id=189812
<rdar://problem/44532782>

Reviewed by Simon Fraser.

Source/WebCore:

If the total area of all backdrop filters on the page gets
too large, the universe collapses in on itself and we enter
the Quantum Realm (i.e. crash horribly).

Put a hard limit on the total coverage, and ignore any backdrop
filters after the limit. This might break some content, but
such content is likely not doing things in the most optimal manner.
There isn't any reason to have a backdrop larger than the size of
the screen, because you'd be better off applying a foreground
filter to the main content and showing something above it.

Tests: css3/filters/backdrop/resource-use-add-more-layers.html

css3/filters/backdrop/resource-use-excessive.html
css3/filters/backdrop/resource-use-ok.html
css3/filters/backdrop/resource-use-remove-some-layers.html

  • platform/graphics/ca/GraphicsLayerCA.cpp: Pick a fairly small maximum size. We

can consider increasing this if necessary, and as devices with less RAM are
upgraded.
(WebCore::GraphicsLayerCA::recursiveCommitChanges): Gather the accumulated size
of backdrop filters into the commit state as we are recursing through the tree.
(WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers): Force any layer
with backdrop filters, or any that is removing backdrop filters, into an update.
(WebCore::GraphicsLayerCA::updateBackdropFilters): Update the logic to first
check if this backdrop layer causes us to exceed the total allowed size, and if
it does, forbid it from getting the GraphicsLayer that composits the backdrop.

  • platform/graphics/ca/GraphicsLayerCA.h: Remove const from some parameters so

that we can use the CommitState to hold the accumulated size.

LayoutTests:

Tests that have an acceptable number of backdrops, an excessive
number of backdrops, and then some that add and remove backdrops
at various points in the tree to confirm we do recursive checks
correctly.

  • css3/filters/backdrop/layer-tree-as-text.js: Added.
  • css3/filters/backdrop/resource-use-add-more-layers-expected.txt: Added.
  • css3/filters/backdrop/resource-use-add-more-layers.html: Added.
  • css3/filters/backdrop/resource-use-excessive-expected.txt: Added.
  • css3/filters/backdrop/resource-use-excessive.html: Added.
  • css3/filters/backdrop/resource-use-ok-expected.txt: Added.
  • css3/filters/backdrop/resource-use-ok.html: Added.
  • css3/filters/backdrop/resource-use-remove-some-layers-expected.txt: Added.
  • css3/filters/backdrop/resource-use-remove-some-layers.html: Added.
  • css3/filters/backdrop/resource-use.css: Added.
9:36 PM Changeset in webkit [236305] by Ryan Haddad
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, rolling out r236293.

Internal build still broken.

Reverted changeset:

"Add functions to measure memory footprint to JSC"
https://bugs.webkit.org/show_bug.cgi?id=189768
https://trac.webkit.org/changeset/236293

8:47 PM Changeset in webkit [236304] by Ryan Haddad
  • 3 edits in trunk/Source/WebKit

Unreviewed, rolling out r236289.

Caused 8 TestWebKitAPI.ContentFiltering test failures.

Reverted changeset:

"InjectedBundle parameters often need initialization function
called before unarchiving"
https://bugs.webkit.org/show_bug.cgi?id=189709
https://trac.webkit.org/changeset/236289

8:15 PM Changeset in webkit [236303] by dbates@webkit.org
  • 7 edits
    1 move in trunk

Move IOKitSPI.h from TestRunnerShared to PAL
https://bugs.webkit.org/show_bug.cgi?id=189804

Reviewed by Wenson Hsieh.

Towards fixing <https://bugs.webkit.org/show_bug.cgi?id=189604> move the IOKit SPI forward
Source/WebCore/PAL:

declarations to PAL so that they can be shared by both WebKit, DumpRenderTree, and WebKitTestRunner.

No functionality changed. So, no new tests.

  • PAL.xcodeproj/project.pbxproj:
  • pal/spi/cocoa/IOKitSPI.h: Renamed from Tools/TestRunnerShared/spi/IOKitSPI.h.

Tools:

declarations to PAL so that they can be shared by WebKit, DumpRenderTree and WebKitTestRunner.

No functionality changed. So, no new tests.

  • TestRunnerShared/EventSerialization/mac/EventSerializerMac.mm:
  • TestRunnerShared/spi/UIKitTestSPI.h:
  • WebKitTestRunner/WebKitTestRunner.xcodeproj/project.pbxproj:
  • WebKitTestRunner/ios/HIDEventGenerator.mm:
7:49 PM Changeset in webkit [236302] by Fujii Hironori
  • 2 edits in trunk/Source/WTF

[Win][Clang] UNUSED_PARAM(this) causes compilation error of "cannot take the address of an rvalue of type"
https://bugs.webkit.org/show_bug.cgi?id=189732

Reviewed by Per Arne Vollan.

Clang for Windows can't compile the MSVC workaround of
UNUSED_PARAM which has been introduced for Windows CE and Visual
Studio 10. I think it's safe just to remove it.

  • wtf/Compiler.h: Removed the code for COMPILER(MSVC).
7:23 PM Changeset in webkit [236301] by bshafiei@apple.com
  • 7 edits in tags/Safari-607.1.7.1/Source

Versioning.

7:19 PM Changeset in webkit [236300] by bshafiei@apple.com
  • 1 copy in tags/Safari-607.1.7.1

Tag Safari-607.1.7.1.

7:06 PM Changeset in webkit [236299] by commit-queue@webkit.org
  • 7 edits
    9 copies
    7 adds in trunk/Tools

[WHLSL] Metal code generation
https://bugs.webkit.org/show_bug.cgi?id=187735

Patch by Thomas Denney <tdenney@apple.com> on 2018-09-20
Reviewed by Myles C. Maxfield.

Adds support for generating Metal Shading Language from WHLSL. Clients
should include the file MetalCodegenAll.js and then call whlslToMsl
with their program source code to compile to Metal.

  • WebGPUShadingLanguageRI/ArrayType.js:

(ArrayType.prototype.get arrayRefType): Adds the arrayRefType method to
all types to find the type of that expression when it is used in a
MakeArrayRefExpression.

  • WebGPUShadingLanguageRI/MakeArrayRefExpression.js:

(MakeArrayRefExpression):
(MakeArrayRefExpression.prototype.get type): Uses the new arrayRefType
getter on all types to find the type of the expression.

  • WebGPUShadingLanguageRI/Metal/MSLBackend.js: Added.
  • WebGPUShadingLanguageRI/Metal/MSLCodegenAll.js: Added.
  • WebGPUShadingLanguageRI/Metal/MSLCompileResult.js: Added.
  • WebGPUShadingLanguageRI/Metal/MSLConstexprEmitter.js: Added.
  • WebGPUShadingLanguageRI/Metal/MSLFunctionDeclaration.js: Added.
  • WebGPUShadingLanguageRI/Metal/MSLFunctionDefinition.js: Added.
  • WebGPUShadingLanguageRI/Metal/MSLFunctionForwardDeclaration.js: Added.
  • WebGPUShadingLanguageRI/Metal/MSLNameMangler.js: Added.
  • WebGPUShadingLanguageRI/Metal/MSLNativeFunctionCall.js: Added.
  • WebGPUShadingLanguageRI/Metal/MSLStatementEmitter.js: Added.
  • WebGPUShadingLanguageRI/Metal/MSLTypeAttributes.js: Added.
  • WebGPUShadingLanguageRI/Metal/MSLTypeAttributesMap.js: Added.
  • WebGPUShadingLanguageRI/Metal/MSLTypeUnifier.js: Added.
  • WebGPUShadingLanguageRI/Metal/TypeOf.js: Added.
  • WebGPUShadingLanguageRI/Metal/WhlslToMsl.js: Added.
  • WebGPUShadingLanguageRI/PropertyResolver.js:
  • WebGPUShadingLanguageRI/SynthesizeStructAccessors.js:
  • WebGPUShadingLanguageRI/Test.js: Added awkward tests for the compiler

to generate code for.
(tests.incrementAndDecrement):
(tests.returnIntLiteralUint):
(tests.returnIntLiteralFloat):
(tests.nestedSubscriptWithArraysInStructs):
(tests.nestedSubscript):
(tests.lotsOfLocalVariables):

  • WebGPUShadingLanguageRI/Type.js:

(Type.prototype.get arrayRefType): See above.

7:04 PM Changeset in webkit [236298] by Devin Rousso
  • 6 edits
    63 deletes in trunk/Source/WebInspectorUI

Web Inspector: remove Visual Style CSS details sidebar panel
https://bugs.webkit.org/show_bug.cgi?id=189807

Reviewed by Joseph Pecoraro.

The Visual Style CSS details sidebar panel has been hidden behind an "experimental" setting
for almost a year. It's time that we remove it.

  • Localizations/en.lproj/localizedStrings.js:
  • UserInterface/Base/Setting.js:
  • UserInterface/Main.html:
  • UserInterface/Views/ElementsTabContentView.js:

(WI.ElementsTabContentView):

  • UserInterface/Views/SettingsTabContentView.js:

(WI.SettingsTabContentView.prototype._createExperimentalSettingsView):

  • UserInterface/Images/AnimationPlayStatePaused.svg: Removed.
  • UserInterface/Images/AnimationPlayStateRunning.svg: Removed.
  • UserInterface/Images/ClearBoth.svg: Removed.
  • UserInterface/Images/ClearLeft.svg: Removed.
  • UserInterface/Images/ClearRight.svg: Removed.
  • UserInterface/Images/FloatLeft.svg: Removed.
  • UserInterface/Images/FloatRight.svg: Removed.
  • UserInterface/Images/FontStyleItalic.svg: Removed.
  • UserInterface/Images/FontStyleNormal.svg: Removed.
  • UserInterface/Images/ListStylePositionInside.svg: Removed.
  • UserInterface/Images/ListStylePositionOutside.svg: Removed.
  • UserInterface/Images/TextAlignCenter.svg: Removed.
  • UserInterface/Images/TextAlignJustify.svg: Removed.
  • UserInterface/Images/TextAlignLeft.svg: Removed.
  • UserInterface/Images/TextAlignRight.svg: Removed.
  • UserInterface/Images/TextDecorationLineThrough.svg: Removed.
  • UserInterface/Images/TextDecorationOverline.svg: Removed.
  • UserInterface/Images/TextDecorationUnderline.svg: Removed.
  • UserInterface/Images/TextTransformCapitalize.svg: Removed.
  • UserInterface/Images/TextTransformLowercase.svg: Removed.
  • UserInterface/Images/TextTransformUppercase.svg: Removed.
  • UserInterface/Images/VisualStyleNone.svg: Removed.
  • UserInterface/Images/VisualStylePropertyLinked.svg: Removed.
  • UserInterface/Images/VisualStylePropertyUnlinked.svg: Removed.
  • UserInterface/Views/VisualStyleBackgroundPicker.css: Removed.
  • UserInterface/Views/VisualStyleBackgroundPicker.js: Removed.
  • UserInterface/Views/VisualStyleBasicInput.js: Removed.
  • UserInterface/Views/VisualStyleColorPicker.css: Removed.
  • UserInterface/Views/VisualStyleColorPicker.js: Removed.
  • UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.css: Removed.
  • UserInterface/Views/VisualStyleCommaSeparatedKeywordEditor.js: Removed.
  • UserInterface/Views/VisualStyleDetailsPanel.css: Removed.
  • UserInterface/Views/VisualStyleDetailsPanel.js: Removed.
  • UserInterface/Views/VisualStyleDetailsSidebarPanel.js: Removed.
  • UserInterface/Views/VisualStyleFontFamilyListEditor.js: Removed.
  • UserInterface/Views/VisualStyleFontFamilyTreeElement.js: Removed.
  • UserInterface/Views/VisualStyleKeywordCheckbox.css: Removed.
  • UserInterface/Views/VisualStyleKeywordCheckbox.js: Removed.
  • UserInterface/Views/VisualStyleKeywordIconList.css: Removed.
  • UserInterface/Views/VisualStyleKeywordIconList.js: Removed.
  • UserInterface/Views/VisualStyleKeywordPicker.js: Removed.
  • UserInterface/Views/VisualStyleNumberInputBox.css: Removed.
  • UserInterface/Views/VisualStyleNumberInputBox.js: Removed.
  • UserInterface/Views/VisualStylePropertyCombiner.js: Removed.
  • UserInterface/Views/VisualStylePropertyEditor.css: Removed.
  • UserInterface/Views/VisualStylePropertyEditor.js: Removed.
  • UserInterface/Views/VisualStylePropertyEditorLink.css: Removed.
  • UserInterface/Views/VisualStylePropertyEditorLink.js: Removed.
  • UserInterface/Views/VisualStylePropertyNameInput.js: Removed.
  • UserInterface/Views/VisualStyleRelativeNumberSlider.css: Removed.
  • UserInterface/Views/VisualStyleRelativeNumberSlider.js: Removed.
  • UserInterface/Views/VisualStyleSelectorSection.css: Removed.
  • UserInterface/Views/VisualStyleSelectorSection.js: Removed.
  • UserInterface/Views/VisualStyleSelectorTreeItem.css: Removed.
  • UserInterface/Views/VisualStyleSelectorTreeItem.js: Removed.
  • UserInterface/Views/VisualStyleTabbedPropertiesRow.css: Removed.
  • UserInterface/Views/VisualStyleTabbedPropertiesRow.js: Removed.
  • UserInterface/Views/VisualStyleTimingEditor.css: Removed.
  • UserInterface/Views/VisualStyleTimingEditor.js: Removed.
  • UserInterface/Views/VisualStyleURLInput.js: Removed.
  • UserInterface/Views/VisualStyleUnitSlider.css: Removed.
  • UserInterface/Views/VisualStyleUnitSlider.js: Removed.
  • UserInterface/Controllers/VisualStyleCompletionsController.js: Removed.
7:02 PM Changeset in webkit [236297] by Devin Rousso
  • 11 edits in trunk/Source/WebInspectorUI

Web Inspector: Styles Redesign: rework Computed panel to use Spreadsheet classes
https://bugs.webkit.org/show_bug.cgi?id=183627

Reviewed by Joseph Pecoraro.

  • UserInterface/Views/ComputedStyleDetailsPanel.js:

(WI.ComputedStyleDetailsPanel):
(WI.ComputedStyleDetailsPanel.prototype.refresh):
(WI.ComputedStyleDetailsPanel.prototype.applyFilter):
(WI.ComputedStyleDetailsPanel.prototype.spreadsheetCSSStyleDeclarationEditorShowProperty):
(WI.ComputedStyleDetailsPanel.prototype.initialLayout):
(WI.ComputedStyleDetailsPanel.prototype.filterDidChange):
(WI.ComputedStyleDetailsPanel.prototype._computedStyleShowAllCheckboxValueChanged):
(WI.ComputedStyleDetailsPanel.prototype._handlePropertiesSectionCollapsedStateChanged):
(WI.ComputedStyleDetailsPanel.prototype._handleVariablesSectionCollapsedStateChanged):
(WI.ComputedStyleDetailsPanel.prototype._handleEditorFilterApplied):
(WI.ComputedStyleDetailsPanel.prototype.cssStyleDeclarationTextEditorShowProperty.delegateShowProperty): Deleted.
(WI.ComputedStyleDetailsPanel.prototype.cssStyleDeclarationTextEditorShowProperty): Deleted.
Replace CSSStyleDeclarationTextEditor with SpreadsheetCSSStyleDeclarationEditor.

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.js:

(WI.SpreadsheetCSSStyleDeclarationEditor):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.initialLayout):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.layout):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.set showsImplicitProperties):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.set alwaysShowPropertyNames):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.set propertyVisibilityMode):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.set hideFilterNonMatchingProperties):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.set sortPropertiesByName): Added.
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.get propertiesToRender):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.highlightProperty):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.applyFilter):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.spreadsheetStylePropertyShowProperty):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype._updateStyleLock):
(WI.SpreadsheetCSSStyleDeclarationEditor.prototype.get _propertiesToRender): Deleted.
Create setters for the "special" functionality required by the Computed panel and tie them
into the logic that determines what properties are rendered.

  • UserInterface/Views/SpreadsheetStyleProperty.js:

(WI.SpreadsheetStyleProperty.prototype._update):
Create go-to arrow if the property has a shorthand version or a source code location.

  • UserInterface/Views/GeneralStyleDetailsSidebarPanel.js:

(WI.GeneralStyleDetailsSidebarPanel.prototype.initialLayout):
Don't reapply the filter after refreshing, as the current panel will handle applying it.

  • UserInterface/Views/ComputedStyleDetailsPanel.css:

(.details-section:matches(.computed-style-properties, .computed-style-box-model):not(.collapsed) > :matches(.header, .content)):
(.computed-style-properties .property .go-to-arrow):
(.computed-style-properties .property:hover .go-to-arrow):
(.computed-style-properties.details-section): Deleted.
(.details-section > .content > .group > .row .CodeMirror-code pre .go-to-arrow): Deleted.
(.details-section > .content > .group > .row .CodeMirror-code pre:hover .go-to-arrow): Deleted.
(.details-section.style-box-model:not(.collapsed) > :matches(.header, .content)): Deleted.

  • UserInterface/Views/DetailsSection.css:

(.details-section.computed-style-properties:not(.collapsed) > .header): Deleted.
Consolidate Computed panel styles to it's respective CSS file.

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:

(.spreadsheet-style-declaration-editor):
(.spreadsheet-style-declaration-editor .property:matches(.implicit, .not-inherited) .content > *):
(.spreadsheet-style-declaration-editor .property.not-inherited .content > *): Deleted.

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.css:

(.spreadsheet-css-declaration):

  • UserInterface/Views/Variables.css:

(:root):
Move css-declaration padding variables so they can be used by SpreadsheetCSSStyleDeclarationEditor
without a parent SpreadsheetCSSStyleDeclarationSection.

  • UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.css:

(.style-spreadsheet .style-rule): Deleted.
(.style-spreadsheet .selector-line): Deleted.
(.style-spreadsheet .selector): Deleted.
(.style-spreadsheet :matches(.selector .matched, .selector:focus)): Deleted.
(.style-spreadsheet .name): Deleted.
(.style-spreadsheet .value): Deleted.
(.style-spreadsheet :matches(.selector, .name, .value)): Deleted.
(.style-spreadsheet :matches(.selector, .name, .value):focus): Deleted.
(.style-spreadsheet .selector-inline): Deleted.
(.style-spreadsheet .property): Deleted.
(.style-spreadsheet .property-disabled,): Deleted.
(.style-spreadsheet .property-disabled :matches(.name, .value)): Deleted.
(.style-spreadsheet .styles-source): Deleted.
(.style-spreadsheet :matches(a, .node-link)): Deleted.
(.style-spreadsheet :matches(a, .node-link):hover): Deleted.
(.style-spreadsheet .declarations): Deleted.
(.style-spreadsheet input[type="checkbox"]): Deleted.
(.style-spreadsheet input[type="checkbox"]:not(:checked)): Deleted.
(.style-spreadsheet .declarations:hover input[type="checkbox"]): Deleted.
Drive-by fix: remove styles that don't apply to anything.

6:11 PM Changeset in webkit [236296] by yusukesuzuki@slowstart.org
  • 8 edits in trunk/Source/JavaScriptCore

[JSC] Heap::reportExtraMemoryVisited shows contention if we have many JSString
https://bugs.webkit.org/show_bug.cgi?id=189558

Reviewed by Mark Lam.

When running web-tooling-benchmark postcss test on Linux JSCOnly port, we get the following result in perf report.

10.95% AutomaticThread libJavaScriptCore.so.1.0.0 . JSC::Heap::reportExtraMemoryVisited

This is because postcss produces bunch of JSString, which require reportExtraMemoryVisited calls in JSString::visitChildren.
And since reportExtraMemoryVisited attempts to update atomic counter, if we have bunch of marking threads, it becomes super contended.

This patch reduces the frequency of updating the atomic counter. Each SlotVisitor has per-SlotVisitor m_extraMemorySize counter.
And we propagate this value to the global atomic counter when rebalance happens.

We also reduce HeapCell::heap() access by using vm.heap.

  • heap/SlotVisitor.cpp:

(JSC::SlotVisitor::didStartMarking):
(JSC::SlotVisitor::propagateExternalMemoryVisitedIfNecessary):
(JSC::SlotVisitor::drain):
(JSC::SlotVisitor::performIncrementOfDraining):

  • heap/SlotVisitor.h:
  • heap/SlotVisitorInlines.h:

(JSC::SlotVisitor::reportExtraMemoryVisited):

  • runtime/JSString.cpp:

(JSC::JSRopeString::resolveRopeToAtomicString const):
(JSC::JSRopeString::resolveRope const):

  • runtime/JSString.h:

(JSC::JSString::finishCreation):

  • wasm/js/JSWebAssemblyInstance.cpp:

(JSC::JSWebAssemblyInstance::finishCreation):

  • wasm/js/JSWebAssemblyMemory.cpp:

(JSC::JSWebAssemblyMemory::finishCreation):

5:28 PM Changeset in webkit [236295] by Ryan Haddad
  • 2 edits
    1 move in trunk/Tools

Bring up queues for iOS 12
https://bugs.webkit.org/show_bug.cgi?id=189683

Unreviewed infrastructure fix.

  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/IOS12@2x.png: Renamed from Tools/BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/iOS12@2x.png.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/BubbleQueueServer.js:

(BubbleQueueServer): Move EWS bubbles to the iOS 12 section of the dashboard.

4:50 PM Changeset in webkit [236294] by Ryan Haddad
  • 8 edits
    4 adds in trunk/Tools

Bring up queues for iOS 12
https://bugs.webkit.org/show_bug.cgi?id=189683

Reviewed by Aakash Jain.

  • BuildSlaveSupport/build.webkit.org-config/config.json:
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/IOS12.png: Added.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/IOS12Simulator.png: Added.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/IOS12Simulator@2x.png: Added.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Images/iOS12@2x.png: Added.
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/Dashboard.js:
  • BuildSlaveSupport/build.webkit.org-config/public_html/dashboard/Scripts/WebKitBuildbot.js:

(WebKitBuildbot):

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

(table.queue-grid tr.platform.ios-simulator-12 img.logo):
(table.queue-grid tr.platform.ios-12 img.logo):
(table.queue-grid tr.platform.ios-simulator-11 img.logo): Deleted.
(table.queue-grid tr.platform.ios-11 img.logo): Deleted.

  • BuildSlaveSupport/build.webkit.org-config/steps_unittest.py:
  • BuildSlaveSupport/build.webkit.org-config/wkbuild.py:

(_should_file_trigger_build):

  • BuildSlaveSupport/build.webkit.org-config/wkbuild_unittest.py:

(ShouldBuildTest):
(ShouldBuildTest.test_should_build):

4:46 PM Changeset in webkit [236293] by msaboff@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Add functions to measure memory footprint to JSC
https://bugs.webkit.org/show_bug.cgi?id=189768

Reviewed by Saam Barati.

Rolling this back in.

Provide system memory metrics for the current process to aid in memory reduction measurement and
tuning using native JS tests.

  • jsc.cpp:

(MemoryFootprint::now):
(MemoryFootprint::resetPeak):
(GlobalObject::finishCreation):
(JSCMemoryFootprint::JSCMemoryFootprint):
(JSCMemoryFootprint::createStructure):
(JSCMemoryFootprint::create):
(JSCMemoryFootprint::finishCreation):
(JSCMemoryFootprint::addProperty):
(functionResetMemoryPeak):

4:19 PM Changeset in webkit [236292] by Truitt Savell
  • 2 edits in trunk/LayoutTests

Continued test gardening after r236236
https://bugs.webkit.org/show_bug.cgi?id=189641

Unreviewed test gardening

4:17 PM Changeset in webkit [236291] by youenn@apple.com
  • 2 edits in trunk/Source/WebKit

Allow additional plug-ins to run unsandboxed
https://bugs.webkit.org/show_bug.cgi?id=189791
<rdar://problem/44628127>

Reviewed by Brent Fulgham.

  • UIProcess/Plugins/mac/PluginInfoStoreMac.mm:

(WebKit::PluginInfoStore::shouldAllowPluginToRunUnsandboxed):

4:11 PM Changeset in webkit [236290] by benjamin@webkit.org
  • 2 edits in trunk/Source/WebCore

Adopt safe-area-insets on ImageDocument
https://bugs.webkit.org/show_bug.cgi?id=189774

Reviewed by Tim Horton.
rdar://problem/44624432

By having the safe-area insets on the image, we ensure that they only
grow the document if there is not enough space. This also ensures the image
does not have parts under UI elements.

  • html/ImageDocument.cpp:

(WebCore::ImageDocument::createDocumentStructure):
(WebCore::ImageDocument::imageUpdated):

4:11 PM Changeset in webkit [236289] by Brent Fulgham
  • 3 edits in trunk/Source/WebKit

InjectedBundle parameters often need initialization function called before unarchiving
https://bugs.webkit.org/show_bug.cgi?id=189709
<rdar://problem/44573653>

Reviewed by Chris Dumez.

Handle the case where the InjectedBundle parameters do not successfully decode because they contain
an unexpected class from the embedding program. If this happens, try decoding the bundle parameters
after the bundle initialiation function runs, which gives the embedding program the opportunity to
register additional classes that are safe for serialization.

Create a new 'decodeBundleParameters' method that contains the logic that used to live in 'initialize'.
This new method returns 'true' if the serialization was successful, otherwise it returns false.

Revise 'initialize' to call this new method and check the return value. If it fails, try decoding the
bundle parameters after the bundle's initialization function is called.

  • WebProcess/InjectedBundle/InjectedBundle.h:
  • WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:

(WebKit::InjectedBundle::initialize): Use the new method.
(WebKit::InjectedBundle::decodeBundleParameters): Added.
(WebKit::InjectedBundle::setBundleParameters): Use 'decodeObjectOfClasses' with the more complete
'classesForCoder' method to unarchive the passed bundle parameters, rather than the
NSDictionary-specific method, since InjectedBundles often encode other types of objects, and the
NSDictionary object may itself hold other kinds of objects.

3:27 PM Changeset in webkit [236288] by Alan Bujtas
  • 3 edits
    2 adds in trunk

Release assert under RenderView::pageOrViewLogicalHeight
https://bugs.webkit.org/show_bug.cgi?id=189798
<rdar://problem/43659749>

Reviewed by Simon Fraser.

Source/WebCore:

Only the mainframe's render view is sized to the page while printing.
Use the matching check (see RenderView::layout) when accessing m_pageLogicalSize.

Test: printing/crash-while-formatting-subframe-for-printing.html

  • rendering/RenderView.cpp:

(WebCore::RenderView::pageOrViewLogicalHeight const):

LayoutTests:

  • printing/crash-while-formatting-subframe-for-printing-expected.txt: Added.
  • printing/crash-while-formatting-subframe-for-printing.html: Added.
3:23 PM Changeset in webkit [236287] by Kocsen Chung
  • 1 copy in tags/Safari-606.2.101

Tag Safari-606.2.101.

3:05 PM Changeset in webkit [236286] by sihui_liu@apple.com
  • 6 edits
    2 adds in trunk

REGRESSION(r196265): WKWebView fires mouseover, mouseenter, and mouseleave events even when it's in a background window
https://bugs.webkit.org/show_bug.cgi?id=187545
<rdar://problem/42401575>

Reviewed by Ryosuke Niwa.

Source/WebCore:

When the window is not active, we should only update the scrollbar for mouse events. GTK
apps have different expectation on this behavior.

Test: fast/events/inactive-window-no-mouse-event.html

  • page/EventHandler.cpp:

(WebCore::EventHandler::handleMouseMoveEvent):
(WebCore::EventHandler::shouldSendMouseEventsToInactiveWindows const):

  • page/EventHandler.h:

LayoutTests:

  • TestExpectations:
  • fast/events/inactive-window-no-mouse-event-expected.txt: Added.
  • fast/events/inactive-window-no-mouse-event.html: Added.
  • platform/mac-wk2/TestExpectations:
2:36 PM Changeset in webkit [236285] by Basuke Suzuki
  • 4 edits in trunk

[Win] TestRunner::queueLoad() fails to generate correct url for some urls.
https://bugs.webkit.org/show_bug.cgi?id=189679

Reviewed by Fujii Hironori.

Tools:

Replace the implementation with correct API call.

  • DumpRenderTree/win/TestRunnerWin.cpp:

(TestRunner::queueLoad): Call UrlCombineW.

LayoutTests:

  • platform/wincairo/TestExpectations:
2:33 PM Changeset in webkit [236284] by achristensen@apple.com
  • 7 edits in trunk/Source

Unreviewed, rolling out r235976.

Broke ARM

Reverted changeset:

"Use a Variant instead of a union in CSSSelector"
https://bugs.webkit.org/show_bug.cgi?id=188559
https://trac.webkit.org/changeset/235976

2:32 PM Changeset in webkit [236283] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[iOS] Layout test fast/gradients/conic-gradient-alpha.html is failing
https://bugs.webkit.org/show_bug.cgi?id=189802

Unreviewed test gardening.

  • platform/ios-12/TestExpectations: Mark test as failing.
2:32 PM Changeset in webkit [236282] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

REGRESSION (r235962-r235963): Layout Test animations/suspend-resume-animation-events.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=189607

Unreivewed test gardening.

  • platform/mac-wk2/TestExpectations: Mark test as flaky.
2:27 PM Changeset in webkit [236281] by jer.noble@apple.com
  • 2 edits in trunk/Source/WebKit

Enable Modern EME by default
https://bugs.webkit.org/show_bug.cgi?id=189794

Reviewed by Jon Lee.

  • Shared/WebPreferences.yaml:
2:11 PM Changeset in webkit [236280] by realdawei@apple.com
  • 2 edits in trunk/LayoutTests

WebGL 2 updated test expectations.
https://bugs.webkit.org/show_bug.cgi?id=189686

Unreviewed, skip tests that are timing out.

Patch by Dawei Fenton <realdawei@apple.com> on 2018-09-20

  • platform/ios-wk2/TestExpectations:
1:47 PM Changeset in webkit [236279] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

[GTK][WPE] Make sure MediaDeviceEnabled and PeerConnectionEnabled are always synced with enable-media-stream
https://bugs.webkit.org/show_bug.cgi?id=188704

By default m_isMediaDevicesEnabled and m_isScreenCaptureEnabled are false but
m_isMediaStreamEnabled is true meaning that in the WPE minibrowser getUserMedia
was disabled even if we explicitly set "enable-media-stream", TRUE.

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-09-20
Reviewed by Michael Catanzaro.

  • UIProcess/API/glib/WebKitSettings.cpp:

(webKitSettingsConstructed):

1:43 PM Changeset in webkit [236278] by commit-queue@webkit.org
  • 8 edits in trunk

Fix 'border' serialization with both common and uncommon values
https://bugs.webkit.org/show_bug.cgi?id=189597

Patch by Oriol Brufau <Oriol Brufau> on 2018-09-20
Reviewed by Simon Fraser.

Source/WebCore:

Remove CommonValueMode enum and make borderPropertyValue always return null
when there are uncommon values (the previous ReturnNullOnUncommonValues mode).

Test: fast/css/getPropertyValue-border.html
Test: fast/dom/css-shorthand-common-value.html

  • css/StyleProperties.cpp:

(WebCore::StyleProperties::getPropertyValue const):
(WebCore::StyleProperties::borderPropertyValue const):
(WebCore::StyleProperties::asText const):

  • css/StyleProperties.h:

LayoutTests:

Fix existing tests to check that 'border' serializes to empty string if there
are uncommon values.

  • fast/css/getPropertyValue-border-expected.txt:
  • fast/css/getPropertyValue-border.html:
  • fast/dom/css-shorthand-common-value-expected.txt:
  • fast/dom/css-shorthand-common-value.html:
1:41 PM Changeset in webkit [236277] by realdawei@apple.com
  • 3 edits in trunk/LayoutTests

WebGL conformance: Failures and Timeouts in suite 2.0.0/conformance
https://bugs.webkit.org/show_bug.cgi?id=189641

Unreviewed test gardening.

Patch by Dawei Fenton <realdawei@apple.com> on 2018-09-20

1:38 PM Changeset in webkit [236276] by Kocsen Chung
  • 7 edits in trunk/Source

Versioning.

1:36 PM WebKitGTK/2.22.x edited by Adrian Perez de Castro
(diff)
1:32 PM Changeset in webkit [236275] by Michael Catanzaro
  • 2 edits in trunk/Tools

[WPE] fails to build on ARM arches complaining about undefined reference to `epoxy_eglMakeCurrent'
https://bugs.webkit.org/show_bug.cgi?id=189556

Reviewed by Konstantin Tokarev.

This is only a speculative build fix as I didn't attempt to reproduce. Explicitly link to
libepoxy.

  • wpe/backends/CMakeLists.txt:
12:31 PM Changeset in webkit [236274] by commit-queue@webkit.org
  • 12 edits
    32 adds
    5 deletes in trunk/LayoutTests

Synchronize CSSOM View test suite against upstream WPT
https://bugs.webkit.org/show_bug.cgi?id=189787

Patch by Frederic Wang <fwang@igalia.com> on 2018-09-20
Reviewed by Antonio Gomes.

LayoutTests/imported/w3c:

  • web-platform-tests/css/cssom-view/META.yml: Added.
  • web-platform-tests/css/cssom-view/OWNERS: Removed.
  • web-platform-tests/css/cssom-view/cssom-getBoundingClientRect-vertical-rl-expected.html: Added.
  • web-platform-tests/css/cssom-view/cssom-getBoundingClientRect-vertical-rl.html: Added.
  • web-platform-tests/css/cssom-view/cssom-view-window-screen-interface-expected.txt:
  • web-platform-tests/css/cssom-view/cssom-view-window-screen-interface.html:
  • web-platform-tests/css/cssom-view/dom-element-scroll-expected.txt: Added.
  • web-platform-tests/css/cssom-view/dom-element-scroll.html: Added.
  • web-platform-tests/css/cssom-view/elementFromPoint-mixed-font-sizes-expected.txt: Added.
  • web-platform-tests/css/cssom-view/elementFromPoint-mixed-font-sizes.html: Added.
  • web-platform-tests/css/cssom-view/interfaces-expected.txt:
  • web-platform-tests/css/cssom-view/interfaces.html:
  • web-platform-tests/css/cssom-view/media-query-list-interface-expected.txt: Removed.
  • web-platform-tests/css/cssom-view/media-query-list-interface.xht: Removed.
  • web-platform-tests/css/cssom-view/resources/w3c-import.log:
  • web-platform-tests/css/cssom-view/scroll-behavior-default-css-expected.txt: Added.
  • web-platform-tests/css/cssom-view/scroll-behavior-default-css.html: Added.
  • web-platform-tests/css/cssom-view/scroll-behavior-element-expected.txt: Added.
  • web-platform-tests/css/cssom-view/scroll-behavior-element.html: Added.
  • web-platform-tests/css/cssom-view/scroll-behavior-main-frame-root-expected.txt: Added.
  • web-platform-tests/css/cssom-view/scroll-behavior-main-frame-root.html: Added.
  • web-platform-tests/css/cssom-view/scroll-behavior-main-frame-window-expected.txt: Added.
  • web-platform-tests/css/cssom-view/scroll-behavior-main-frame-window.html: Added.
  • web-platform-tests/css/cssom-view/scroll-behavior-scrollintoview-nested-expected.txt: Added.
  • web-platform-tests/css/cssom-view/scroll-behavior-scrollintoview-nested.html: Added.
  • web-platform-tests/css/cssom-view/scroll-behavior-smooth-positions-expected.txt: Added.
  • web-platform-tests/css/cssom-view/scroll-behavior-smooth-positions.html: Added.
  • web-platform-tests/css/cssom-view/scroll-behavior-subframe-root-expected.txt: Added.
  • web-platform-tests/css/cssom-view/scroll-behavior-subframe-root.html: Added.
  • web-platform-tests/css/cssom-view/scroll-behavior-subframe-window-expected.txt: Added.
  • web-platform-tests/css/cssom-view/scroll-behavior-subframe-window.html: Added.
  • web-platform-tests/css/cssom-view/scrollIntoView-vertical-rl-writing-mode-expected.txt: Added.
  • web-platform-tests/css/cssom-view/scrollIntoView-vertical-rl-writing-mode.html: Added.
  • web-platform-tests/css/cssom-view/support/scroll-behavior.js: Added.

(observeScrolling):
(waitForScrollEnd):
(scrollNode):
(scrollWindow):

  • web-platform-tests/css/cssom-view/support/support/w3c-import.log:
  • web-platform-tests/css/cssom-view/support/w3c-import.log:
  • web-platform-tests/css/cssom-view/table-client-props-expected.txt: Added.
  • web-platform-tests/css/cssom-view/table-client-props.html: Added.
  • web-platform-tests/css/cssom-view/table-offset-props-expected.txt: Added.
  • web-platform-tests/css/cssom-view/table-offset-props.html: Added.
  • web-platform-tests/css/cssom-view/table-scroll-props-expected.txt: Added.
  • web-platform-tests/css/cssom-view/table-scroll-props.html: Added.
  • web-platform-tests/css/cssom-view/w3c-import.log:
  • web-platform-tests/css/cssom-view/window-interface-expected.txt: Removed.
  • web-platform-tests/css/cssom-view/window-interface.xht: Removed.

LayoutTests:

  • tests-options.json: Mark smooth scrolling tests as slow.
  • ios/TestExpectations: Mark as failing since frames are not scrollable on iOS.
11:57 AM Changeset in webkit [236273] by commit-queue@webkit.org
  • 17 edits
    9 adds in trunk

Implement CSS Custom Properties and Values Skeleton
https://bugs.webkit.org/show_bug.cgi?id=189694

Patch by Justin Michaud <Justin Michaud> on 2018-09-20
Reviewed by Simon Fraser.

Source/WebCore:

Add feature flag, CSS.registerProperty binding and registered property set in Document.h
for the css custom properties and values api.

Test: css-properties-values-api/registerProperty.html

  • CMakeLists.txt:
  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • css/CSSRegisteredCustomProperty.h: Added.
  • css/DOMCSSCustomPropertyDescriptor.h: Added.
  • css/DOMCSSCustomPropertyDescriptor.idl: Added.
  • css/DOMCSSNamespace.h:
  • css/DOMCSSRegisterCustomProperty.cpp: Added.

(WebCore::DOMCSSRegisterCustomProperty::registerProperty):
(WebCore::DOMCSSRegisterCustomProperty::from):
(WebCore::DOMCSSRegisterCustomProperty::supplementName):

  • css/DOMCSSRegisterCustomProperty.h: Added.
  • css/DOMCSSRegisterCustomProperty.idl: Added.
  • css/parser/CSSParserContext.cpp:
  • dom/Document.cpp:

(WebCore::Document::registerCSSProperty):

  • dom/Document.h:
  • features.json:
  • page/RuntimeEnabledFeatures.h:

(WebCore::RuntimeEnabledFeatures::setCSSCustomPropertiesAndValuesEnabled):
(WebCore::RuntimeEnabledFeatures::cssCustomPropertiesAndValuesEnabled const):

Source/WebKit:

Add feature flag for CSS custom properties and values api

  • Shared/WebPreferences.yaml:
  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):

LayoutTests:

Add test to check that the CSS.registerProperty method exists.

  • css-custom-properties-api/registerProperty-expected.txt: Added.
  • css-custom-properties-api/registerProperty.html: Added.
  • platform/ios-wk1/TestExpectations:
  • platform/mac-wk1/TestExpectations:
11:23 AM Changeset in webkit [236272] by realdawei@apple.com
  • 2 edits in trunk/LayoutTests

WebGL conformance: Failures and Timeouts in suite 2.0.0/conformance
https://bugs.webkit.org/show_bug.cgi?id=189641

Unreviewed, marked tests as failing.

Patch by Dawei Fenton <realdawei@apple.com> on 2018-09-20

11:20 AM Changeset in webkit [236271] by dbates@webkit.org
  • 4 edits
    2 adds in trunk

[iOS] Support testing more hardware special keys
https://bugs.webkit.org/show_bug.cgi?id=189793

Reviewed by Simon Fraser.

Tools:

  • TestRunnerShared/spi/IOKitSPI.h: Add more SPI constants.
  • WebKitTestRunner/ios/HIDEventGenerator.mm:

(keyCodeForDOMFunctionKey): Extracted out logic from hidUsageCodeForCharacter() to return the
key code for the F1, F2, ..., F12 keys and extended the code to compute the key code for the
F13, F14, ..., F24 keys.
(hidUsageCodeForCharacter): Modified to call keyCodeForDOMFunctionKey().

LayoutTests:

For now, many of the DOM keydown and keyup events for special hardware keys are wrong.
We will fix this up in a subsequent commit(s).

  • fast/events/ios/keydown-keyup-special-keys-in-non-editable-element-expected.txt: Added.
  • fast/events/ios/keydown-keyup-special-keys-in-non-editable-element.html: Added.
11:07 AM Changeset in webkit [236270] by dino@apple.com
  • 2 edits in trunk/Source/WebKit

Temporarily move fullscreen back to experimental features
https://bugs.webkit.org/show_bug.cgi?id=189770
<rdar://problem/44619282>

Revert this change now that there is a commit to cherry-pick.

  • Shared/WebPreferences.yaml:
10:59 AM Changeset in webkit [236269] by Michael Catanzaro
  • 2 edits in trunk/Tools

Unreviewed, remove accidentally-committed debugging changes from flatpakutils script

Aaaaaah maybe this is why changes are supposed to be reviewed.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.clean_args):

10:54 AM Changeset in webkit [236268] by Kocsen Chung
  • 7 edits in tags/Safari-607.1.7/Source

Revert r235976. rdar://problem/44646452

10:40 AM Changeset in webkit [236267] by Kocsen Chung
  • 7 edits in branches/safari-606-branch/Source

Versioning.

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

JS bindings generator should support EnabledAtRuntime for static methods
https://bugs.webkit.org/show_bug.cgi?id=189729

Patch by Justin Michaud <Justin Michaud> on 2018-09-20
Reviewed by Chris Dumez.

Add support for EnabledAtRuntime to static methods in the JS bindings
code generator.

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateRuntimeEnableConditionalStringForExposed):
(GenerateRuntimeEnableConditionalString):
(GetRuntimeEnabledStaticProperties):
(GenerateConstructorHelperMethods):

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

(WebCore::JSTestGlobalObjectConstructor::initializeProperties):
(WebCore::JSTestGlobalObject::finishCreation):
(WebCore::jsTestGlobalObjectConstructorFunctionEnabledAtRuntimeOperationStaticBody):
(WebCore::jsTestGlobalObjectConstructorFunctionEnabledAtRuntimeOperationStatic):

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

(WebCore::JSTestObjConstructor::initializeProperties):
(WebCore::jsTestObjConstructorEnabledAtRuntimeAttributeStaticGetter):
(WebCore::jsTestObjConstructorEnabledAtRuntimeAttributeStatic):
(WebCore::setJSTestObjConstructorEnabledAtRuntimeAttributeStaticSetter):
(WebCore::setJSTestObjConstructorEnabledAtRuntimeAttributeStatic):
(WebCore::jsTestObjConstructorFunctionEnabledAtRuntimeOperationStaticBody):
(WebCore::jsTestObjConstructorFunctionEnabledAtRuntimeOperationStatic):

  • bindings/scripts/test/TestGlobalObject.idl:
  • bindings/scripts/test/TestObj.idl:
10:07 AM Changeset in webkit [236265] by pvollan@apple.com
  • 8 edits in trunk

[WebVTT] Update the parser according to the new region syntax.
https://bugs.webkit.org/show_bug.cgi?id=189767

Reviewed by Eric Carlson.

Source/WebCore:

The majority of the code added in this patch is adopted from the Chromium project, which has added
support for the new region syntax. The complete parser specification can be found at
https://w3c.github.io/webvtt/#file-parsing. One small difference in behavior is that the new parser
will not add regions with empty id.

No new tests, covered by existing tests.

  • html/track/WebVTTParser.cpp:

(WebCore::WebVTTParser::getNewRegions):
(WebCore::WebVTTParser::parse):
(WebCore::WebVTTParser::collectRegionSettings):
(WebCore::WebVTTParser::collectWebVTTBlock):
(WebCore::WebVTTParser::checkAndRecoverCue):
(WebCore::WebVTTParser::checkAndCreateRegion):
(WebCore::WebVTTParser::checkAndStoreRegion):
(WebCore::WebVTTParser::collectMetadataHeader): Deleted.
(WebCore::WebVTTParser::createNewRegion): Deleted.

  • html/track/WebVTTParser.h:

LayoutTests:

  • media/track/captions-webvtt/captions-regions.vtt:
  • media/track/captions-webvtt/header-regions.vtt:
  • media/track/regions-webvtt/vtt-region-parser-expected.txt:
  • media/track/regions-webvtt/vtt-region-parser.html:
9:48 AM WebKitGTK/2.22.x edited by Michael Catanzaro
(diff)
9:46 AM Changeset in webkit [236264] by aboya@igalia.com
  • 2 edits in trunk/Source/WebCore

[GStreamer][MSE] Add a default sample duration
https://bugs.webkit.org/show_bug.cgi?id=189788

Some WebM files don't provide sample durations, so we need to provide
a safe default in order for them to be playable.

Reviewed by Michael Catanzaro.

  • platform/graphics/gstreamer/MediaSampleGStreamer.cpp:

(WebCore::MediaSampleGStreamer::MediaSampleGStreamer):

9:32 AM Changeset in webkit [236263] by Michael Catanzaro
  • 4 edits
    3 adds in trunk/Tools

Unreviewed, manually rollout our switch to master runtime

Phil wants html5-codecs, which aren't available yet here. Let's switch back to 3.28 in the
meantime, where we were already building GStreamer ourselves anyway. But use an updated
SDK revision.

  • flatpak/files/httpd-autogen.sh: Added.
  • flatpak/flatpakutils.py:

(WebkitFlatpak.clean_args):

  • flatpak/org.webkit.GTK.yaml:
  • flatpak/org.webkit.WebKit.yaml:
  • flatpak/patches/httpd-0001-configure-use-pkg-config-for-PCRE-detection.patch: Added.
  • flatpak/patches/libgcrypt-0001-Use-pkg-config-to-detect-gpg-error.patch: Added.
9:13 AM Changeset in webkit [236262] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

Unreviewed crash fix after r236226.

We need to protect |this| in WebProcessProxy::requestTermination().

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::requestTermination):

9:12 AM Changeset in webkit [236261] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[WPE][GTK] webkit-flatpak intercepts --help for other commands
https://bugs.webkit.org/show_bug.cgi?id=189058

The approach of run_in_sandbox_if_available is that we basically have the
same set of arguments to setup the sandbox (ie. port name, build type, etc...)
and we can pass those args first to setup the flatpak launcher object
and then to the underlying script. That doesn't work well with the --help argument
as once processed it 1. prints the help (which make no sense to the user of the calling script)

  1. exits the app - The solution is to just make sure that --help is not used when using

flatpakutils from any script that is not webkit-flatpak itself.

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-09-20
Reviewed by Michael Catanzaro.

  • flatpak/flatpakutils.py:

(WebkitFlatpak.load_from_args):
(run_in_sandbox_if_available):

9:10 AM Changeset in webkit [236260] by Ryan Haddad
  • 2 edits in trunk/Source/JavaScriptCore

Unreviewed, rolling out r236235.

Breaks internal builds.

Reverted changeset:

"Add functions to measure memory footprint to JSC"
https://bugs.webkit.org/show_bug.cgi?id=189768
https://trac.webkit.org/changeset/236235

9:03 AM Changeset in webkit [236259] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[macOS Sierra] Layout Test http/wpt/cache-storage/cache-put-keys.https.any.worker.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=184204

Unreviewed test gardening.

  • platform/mac-wk2/TestExpectations: Mark test as flaky and remove an entry for a test that doesn't exist in the repository anymore.
8:25 AM WebKitGTK/2.22.x edited by tpopela@redhat.com
The patch was already presented in 2.22.1 (diff)
7:56 AM WebKitGTK/2.22.x edited by Michael Catanzaro
(diff)
7:08 AM Changeset in webkit [236258] by aboya@igalia.com
  • 2 edits in trunk/Source/WebCore

[MSE] Use some tolerance when deciding whether a frame should be appended to the decode queue
https://bugs.webkit.org/show_bug.cgi?id=189782

Reviewed by Xabier Rodriguez-Calvar.

Ideally, container formats should use exact timestamps and frames
should not overlap. Unfortunately, there are lots of files out there
where this is not always the case.

This is particularly a problem in WebM, where timestamps are expressed
in a power of 10 timescale, which forces some rounding.

This patch makes SourceBuffer allow frames with a small overlaps
(<=1ms) as those usually found in WebM. 1 ms is chosen because it's
the default time scale of WebM files.

  • Modules/mediasource/SourceBuffer.cpp:

(WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):

4:49 AM Changeset in webkit [236257] by Antti Koivisto
  • 22 edits in trunk/Source/WebKit

REGRESSION (PSON): White or Black flash occurs when process swapping on navigation on Mac
https://bugs.webkit.org/show_bug.cgi?id=189663
<rdar://problem/44184955>

Reviewed by Geoff Garen and Chris Dumez.

We need to keep the layer tree of the previous page alive and visible until we have something
to render on the new page. With PSON on Mac this means that we should keep displaying the
layer tree from the previus process.

This patch moves the management of 'attaching' the drawing area (Mac only concept) from web process
to UI process. This is when we parent the layer tree to the view root layer. It also ensures that
the layer tree is not deleted too early on process swap and that it still eventually gets deleted.

  • UIProcess/DrawingAreaProxy.h:

(WebKit::DrawingAreaProxy::attachInWebProcess):

  • UIProcess/SuspendedPageProxy.cpp:

(WebKit::messageNamesToIgnoreWhileSuspended):
(WebKit::SuspendedPageProxy::tearDownDrawingAreaInWebProcess):

We no longer tear down drawing area (layer tree) for suspended pages automatically. Send an explicit
message for it.

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

(WebKit::WebPageProxy::didCompletePageTransition):

Attach the drawing area if appropriate.

(WebKit::WebPageProxy::resetStateAfterProcessExited):

Call PageClien::processWillSwap instead of processDidExit when appropriate.

(WebKit::WebPageProxy::enterAcceleratedCompositingMode):

This is called when we have switched to the new layer tree.
Tear down the drawing area in the previus process.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/ios/PageClientImplIOS.h:
  • UIProcess/ios/PageClientImplIOS.mm:

(WebKit::PageClientImpl::processWillSwap):

On iOS this just call processDidExit for now.

  • UIProcess/mac/PageClientImplMac.h:
  • UIProcess/mac/PageClientImplMac.mm:

(WebKit::PageClientImpl::processWillSwap):
(WebKit::PageClientImpl::processDidExit):

Add processWillSwap separately from processDidExit. They are currently the same
except processWillSwap doesn't clear the root layer.

  • UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h:
  • UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:

(WebKit::TiledCoreAnimationDrawingAreaProxy::attachInWebProcess):

Send a message to the web process to attach the drawing area.

  • WebProcess/WebPage/DrawingArea.h:

(WebKit::DrawingArea::attach):
(WebKit::DrawingArea::attachDrawingArea): Deleted.

Rename to be less redundant.

  • WebProcess/WebPage/DrawingArea.messages.in:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::reinitializeWebPage):

Don't attach drawing area automatically. It will be done by a message from UI process.

(WebKit::WebPage::setLayerTreeStateIsFrozen):

Layer tree is always frozen in a suspended process (if it exists).

(WebKit::WebPage::didReceivePolicyDecision):

Suspend immediately when receiving policy decision to avoid flash on 'about:blank' loading.

(WebKit::WebPage::didStartPageTransition):
(WebKit::WebPage::didCompletePageTransition):

Notify UI process of transition completion.

(WebKit::WebPage::setIsSuspended):
(WebKit::WebPage::tearDownDrawingAreaForSuspend):

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

(WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):

Don't attach drawing area automatically. It will be done by a message from UI process.

(WebKit::TiledCoreAnimationDrawingArea::attach):
(WebKit::TiledCoreAnimationDrawingArea::attachDrawingArea): Deleted.

4:41 AM WebKitGTK/2.22.x edited by tpopela@redhat.com
(diff)
4:22 AM Changeset in webkit [236256] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[EME] Add WebM sanitization
https://bugs.webkit.org/show_bug.cgi?id=189740

Patch by Yacine Bandou <yacine.bandou@softathome.com> on 2018-09-20
Reviewed by Xabier Rodriguez-Calvar.

This patch adds support for sanitizing the WebM initialization data,
ensures there are no bogus values.
See https://www.w3.org/TR/encrypted-media/#dom-mediakeysession-generaterequest.

Tests: imported/w3c/web-platform-tests/encrypted-media/clearkey-generate-request-disallowed-input.https.html

  • Modules/encryptedmedia/InitDataRegistry.cpp:

(WebCore::sanitizeWebM): Added implementation, check if the initialization data doesn't empty and its size
should be less than 64KB, return the buffer copy if it is ok, otherwise a nullptr.
(WebCore::extractKeyIDsWebM): Added implementation.

2:18 AM Changeset in webkit [236255] by Philippe Normand
  • 5 edits in trunk/Source/WebCore

[GStreamer] Utilities cleanups
https://bugs.webkit.org/show_bug.cgi?id=189699

Reviewed by Xabier Rodriguez-Calvar.

The GstMappedBuffer now has a move constructor so that it can be easily
reused in the webaudiosrc element. The now-unused corresponding
buffer-mapping utilities are removed from the code-base.

The HTTP source element used to handle a GstBuffer in its private
structure but this is no longer required since data is now pushed
in chunks, see bug #182829.

  • platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:

(webKitWebAudioSrcLoop):

  • platform/graphics/gstreamer/GStreamerCommon.cpp:

(WebCore::createGstBuffer): Deleted.
(WebCore::createGstBufferForData): Deleted.
(WebCore::getGstBufferDataPointer): Deleted.
(WebCore::mapGstBuffer): Deleted.
(WebCore::unmapGstBuffer): Deleted.

  • platform/graphics/gstreamer/GStreamerCommon.h:

(WebCore::GstMappedBuffer::create): New method returning a
reference to a newly created GstMappedBuffer instance.

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:

(webKitWebSrcStop): Remove reference to unused GstBuffer.
(CachedResourceStreamingClient::dataReceived): Ditto.

2:00 AM Changeset in webkit [236254] by Simon Fraser
  • 2 edits in trunk/Source/WebCore

Fix crash under FontCache::purgeInactiveFontData() when a memory warning fires
https://bugs.webkit.org/show_bug.cgi?id=189722
rdar://problem/44182860

Reviewed by Myles C. Maxfield.

Hashing of FontPlatformData for cachedFonts() is somewhat broken because CFEqual() on CTFont
can return false when the fonts are actually the same, and have the same CFHash(). This
can result in multiple entries in cachedFonts() with the same Font.

Then in FontCache::purgeInactiveFontData(), the loop that appends fonts to fontsToDelete
gets the value by reference, and WTFMoves it into fontsToDelete. This nulls out all
the entries sharing the same value, leaving null entries in the hash table.
We later crash at font->hasOneRef() when using one of those null entries.

Fix by making a copy of the RefPtr<Font> in the loop, so the WTFMove doesn't nuke
the hash table entries. The entries will get removed at cachedFonts().remove() lower down.

  • platform/graphics/FontCache.cpp:

(WebCore::FontCache::purgeInactiveFontData):

1:29 AM Changeset in webkit [236253] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.22.1

WebKitGTK+ 2.22.1

1:28 AM Changeset in webkit [236252] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.22

Unreviewed. Update OptionsGTK.cmake and NEWS for 2.22.1 release.

.:

  • Source/cmake/OptionsGTK.cmake: Bump version numbers.

Source/WebKit:

  • gtk/NEWS: Add release notes for 2.22.1.
12:54 AM Changeset in webkit [236251] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebKit

Merge r236245 - [GTK] Always prints in portrait when landscape is requested
https://bugs.webkit.org/show_bug.cgi?id=189543

Patch by Tomas Popela <tpopela@redhat.com> on 2018-09-20
Reviewed by Michael Catanzaro.

We have to change the surface size based on the requested orientation.
Otherwise only portrait will be printed as it's hardcoded.

  • WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp:
12:54 AM Changeset in webkit [236250] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/JavaScriptCore

Merge r236224 - CheckStructureOrEmpty should pass in a tempGPR to emitStructureCheck since it may jump over that code
https://bugs.webkit.org/show_bug.cgi?id=189703

Reviewed by Mark Lam.

This fixes a crash that a TypeProfiler change revealed.

  • dfg/DFGSpeculativeJIT64.cpp:

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

12:54 AM Changeset in webkit [236249] by Carlos Garcia Campos
  • 3 edits
    1 add in releases/WebKitGTK/webkit-2.22

Merge r236223 - AI rule for MultiPutByOffset executes its effects in the wrong order
https://bugs.webkit.org/show_bug.cgi?id=189757
<rdar://problem/43535257>

Reviewed by Michael Saboff.

JSTests:

  • stress/multi-put-by-offset-must-filter-value-before-filtering-base.js: Added.

(foo):
(Foo):
(g):

Source/JavaScriptCore:

The AI rule for MultiPutByOffset was executing effects in the wrong order.
It first executed the transition effects and the effects on the base, and
then executed the filtering effects on the value being stored. However, you
can end up with the wrong type when the base and the value being stored
are the same. E.g, in a program like o.f = o. These effects need to happen
in the opposite order, modeling what happens in the runtime executing of
MultiPutByOffset.

  • dfg/DFGAbstractInterpreterInlines.h:

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

12:43 AM Changeset in webkit [236248] by Fujii Hironori
  • 2 edits in trunk/Source/JavaScriptCore

[Win][Clang] JITMathIC.h: error: missing 'template' keyword prior to dependent template name 'retagged'
https://bugs.webkit.org/show_bug.cgi?id=189730

Reviewed by Saam Barati.

Clang for Windows can't compile the workaround for MSVC quirk in generateOutOfLine.

  • jit/JITMathIC.h:

(generateOutOfLine): Append "&& !COMPILER(CLANG)" to "#if COMPILER(MSVC)".

12:33 AM Changeset in webkit [236247] by graouts@webkit.org
  • 9 edits in trunk/Source/WebCore

[Web Animations] Provide a way to query accelerated animations for internal testing
https://bugs.webkit.org/show_bug.cgi?id=189762

Reviewed by Dean Jackson.

Expose a new internals.acceleratedAnimationsForElement(element) method to allow layout tests to query the current list
of accelerated animations for a given element. Currently only the animated property and animation speed are exposed, which
will allow us to identify missing, running and paused accelerated animations.

  • animation/DocumentTimeline.cpp:

(WebCore::DocumentTimeline::acceleratedAnimationsForElement const):

  • animation/DocumentTimeline.h:
  • platform/graphics/GraphicsLayer.h:

(WebCore::GraphicsLayer::acceleratedAnimationsForTesting const):

  • platform/graphics/ca/GraphicsLayerCA.cpp:

(WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes):

  • platform/graphics/ca/GraphicsLayerCA.h:
  • testing/Internals.cpp:

(WebCore::Internals::acceleratedAnimationsForElement):

  • testing/Internals.h:
  • testing/Internals.idl:
12:21 AM Changeset in webkit [236246] by Carlos Garcia Campos
  • 2 edits in trunk

Unreviewed. Update GTK+ library versions after r235362.

Project version number was updated without bumping the library versions too.

  • Source/cmake/OptionsGTK.cmake:
12:16 AM Changeset in webkit [236245] by Carlos Garcia Campos
  • 2 edits in trunk/Source/WebKit

[GTK] Always prints in portrait when landscape is requested
https://bugs.webkit.org/show_bug.cgi?id=189543

Patch by Tomas Popela <tpopela@redhat.com> on 2018-09-20
Reviewed by Michael Catanzaro.

We have to change the surface size based on the requested orientation.
Otherwise only portrait will be printed as it's hardcoded.

  • WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp:
12:06 AM Changeset in webkit [236244] by calvaris@igalia.com
  • 2 edits in trunk/Tools

Unreviewed. Add W3C imported tests to the MSEEME watchlist.

  • Scripts/webkitpy/common/config/watchlist:
12:03 AM Changeset in webkit [236243] by calvaris@igalia.com
  • 2 edits in trunk/Tools

Unreviewed. Fix the Streams API watchlist.

  • Scripts/webkitpy/common/config/watchlist:

Sep 19, 2018:

11:42 PM Changeset in webkit [236242] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[EME][WPE] Add WebM initData in the expected result of clearkey-generate-request-disallowed-input test
https://bugs.webkit.org/show_bug.cgi?id=189747

Patch by Yacine Bandou <yacine.bandou@softathome.com> on 2018-09-19
Reviewed by Xabier Rodriguez-Calvar.

Since r235610 the WebM initData is supported.

  • platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-generate-request-disallowed-input.https-expected.txt:

Add an expcted result for WebM initData.

11:14 PM Changeset in webkit [236241] by rniwa@webkit.org
  • 7 edits in trunk/Source/WebCore

Improve node statistics for rare data
https://bugs.webkit.org/show_bug.cgi?id=189775

Reviewed by Simon Fraser.

Report reasons we created NodeRareData and ElementRareData in node statistics.

Added NodeRareData::useTypes and ElementRareData::useTypes which returns OptionSet<NodeRareData::UseType>
indicating which instance member of the rare data is currently in use.

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

(WebCore::defaultMinimumSizeForResizing):
(WebCore::ElementRareData::useTypes const):

  • dom/Node.cpp:

(WebCore::stringForRareDataUseType):
(WebCore::Node::dumpStatistics):

  • dom/NodeRareData.cpp:
  • dom/NodeRareData.h:

(WebCore::NodeRareData::useTypes const):

10:54 PM Changeset in webkit [236240] by yusukesuzuki@slowstart.org
  • 9 edits
    7 adds in trunk

[JSC] Optimize Array#indexOf in C++ runtime
https://bugs.webkit.org/show_bug.cgi?id=189507

Reviewed by Saam Barati.

JSTests:

  • stress/array-indexof-array-prototype-trap.js: Added.

(shouldBe):
(AncestorArray.prototype.get 2):
(AncestorArray):

  • stress/array-indexof-have-a-bad-time-c-runtime.js: Added.

(shouldBe):

  • stress/array-indexof-hole-nan.js: Added.

(shouldBe):
(throw.new.Error):

  • stress/array-indexof-infinity.js: Added.

(shouldBe):
(throw.new.Error):

  • stress/array-indexof-negative-zero.js: Added.

(shouldBe):
(throw.new.Error):

  • stress/array-indexof-own-getter.js: Added.

(shouldBe):
(throw.new.Error.get array):
(get array):

  • stress/array-indexof-prototype-trap.js: Added.

(shouldBe):
(DerivedArray.prototype.get 2):
(DerivedArray):

Source/JavaScriptCore:

C++ Array#indexOf runtime function takes so much time in babylon benchmark in
web-tooling-benchmark. While our DFG and FTL has Array#indexOf optimization
and actually it is working well, C++ Array#indexOf is called significant amount
of time before tiering up, and it takes 6.74% of jsc main thread samples according
to perf command in Linux. This is because C++ Array#indexOf is too generic and
misses the chance to optimize JSArray cases.

This patch adds JSArray fast path for Array#indexOf. If we know that indexed
access to the given JSArray is non-observable and indexing type is good for the fast
path, we go to the fast path. This makes sampling of Array#indexOf 3.83% in
babylon web-tooling-benchmark.

  • runtime/ArrayPrototype.cpp:

(JSC::arrayProtoFuncIndexOf):

  • runtime/JSArray.h:
  • runtime/JSArrayInlines.h:

(JSC::JSArray::canDoFastIndexedAccess):
(JSC::toLength):

  • runtime/JSCJSValueInlines.h:

(JSC::JSValue::JSValue):

  • runtime/JSGlobalObject.h:
  • runtime/JSGlobalObjectInlines.h:

(JSC::JSGlobalObject::isArrayPrototypeIndexedAccessFastAndNonObservable):
(JSC::JSGlobalObject::isArrayPrototypeIteratorProtocolFastAndNonObservable):

  • runtime/MathCommon.h:

(JSC::canBeStrictInt32):
(JSC::canBeInt32):

8:41 PM Changeset in webkit [236239] by Kocsen Chung
  • 2 edits in tags/Safari-607.1.7/Source/WebKit

Cherry-pick r236234. rdar://problem/44619282

Temporarily move fullscreen back to experimental features
https://bugs.webkit.org/show_bug.cgi?id=189770
<rdar://problem/44619282>

Reviewed by Simon Fraser.

Make fullscreen an experimental feature again.

  • Shared/WebPreferences.yaml:

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

8:41 PM Changeset in webkit [236238] by Kocsen Chung
  • 2 edits in tags/Safari-607.1.7/Source/WebKit

Cherry-pick r236232. rdar://problem/44620769

REGRESSION(236154) C API clients not using WKPageSetPageNavigationClient couldn't complete HTTPS requests
https://bugs.webkit.org/show_bug.cgi?id=189771

Reviewed by Tim Horton.

  • UIProcess/API/APINavigationClient.h: (API::NavigationClient::didReceiveAuthenticationChallenge): Perform default behavior if there's an authentication challenge but we're using the default navigation client. I wish we had infrastructure to test this but WebKitTestRunner uses WKPageSetNavigationClient and we don't have the ability to do networking from API tests. This is a growing problem I intend to solve.

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

7:31 PM Changeset in webkit [236237] by Nikita Vasilyev
  • 69 edits
    1 delete in trunk/Source/WebInspectorUI

Web Inspector: move DarkMode.css rules into appropriate CSS files
https://bugs.webkit.org/show_bug.cgi?id=189673

Reviewed by Matt Baker.

  • UserInterface/Main.html:
  • UserInterface/Views/BezierEditor.css:

(@media (prefers-dark-interface)):
(.bezier-editor > .bezier-preview-timing):
(.bezier-editor > .bezier-container .bezier-curve):
(.bezier-editor > .bezier-container .linear-curve):
(.bezier-editor > .bezier-preview):
(.bezier-editor > .bezier-preview > div):
(.bezier-editor > .bezier-container .control-handle):
(.bezier-editor > .bezier-container .control-line):

  • UserInterface/Views/BreakpointActionView.css:

(@media (prefers-dark-interface)):
(.breakpoint-action-block-body):
(.breakpoint-action-block-body > .description):
(.breakpoint-action-append-button,):
(.breakpoint-action-eval-editor):

  • UserInterface/Views/BreakpointPopoverController.css:

(@media (prefers-dark-interface)):
(.popover .edit-breakpoint-popover-content > label.toggle):
(.popover .edit-breakpoint-popover-content > table > tr > th):
(.edit-breakpoint-popover-condition):

  • UserInterface/Views/ButtonNavigationItem.css:

(@media (prefers-dark-interface)):
(.navigation-bar .item.button):

  • UserInterface/Views/ButtonToolbarItem.css:

(@media (prefers-dark-interface)):
(.toolbar .item.button):
(.toolbar .item.button:not(.disabled):active):
(.toolbar .item.button:not(.disabled):matches(:focus, .activate.activated)):
(.toolbar .item.button:not(.disabled):active:matches(:focus, .activate.activated)):

  • UserInterface/Views/CallFrameView.css:

(@media (prefers-dark-interface)):
(.call-frame .subtitle,):
(.call-frame:hover .subtitle .source-link,):
(.call-frame .separator):

  • UserInterface/Views/CanvasContentView.css:

(@media (prefers-dark-interface)):
(.content-view.canvas:not(.tab)):

  • UserInterface/Views/CanvasOverviewContentView.css:

(@media (prefers-dark-interface)):
(.content-view.canvas-overview):
(.content-view.canvas-overview .content-view.canvas):
(.content-view.canvas-overview .content-view.canvas.is-recording):
(.content-view.canvas-overview .content-view.canvas.is-recording > header):
(.content-view.canvas-overview .content-view.canvas > header > .titles > .title):
(.content-view.canvas-overview .content-view.canvas > header > .titles > .subtitle,):
(.content-view.canvas-overview .content-view.canvas > footer > .recordings::before):
(.content-view.canvas-overview .content-view.canvas.is-recording > header > .titles > .subtitle):

  • UserInterface/Views/CanvasTabContentView.css:

(@media (prefers-dark-interface)):
(.content-view.tab.canvas .navigation-bar > .item .canvas-overview .icon):
(.content-view.tab.canvas .navigation-bar > .item .canvas.canvas-2d .icon,):
(.content-view.canvas > .preview > img,):

  • UserInterface/Views/CodeMirrorOverrides.css:

(@media (prefers-dark-interface)):
(.CodeMirror-cursor):
(.CodeMirror .CodeMirror-gutters):
(.cm-s-default .cm-link):
(.CodeMirror .CodeMirror-lines .CodeMirror-matchingbracket):

  • UserInterface/Views/CompletionSuggestionsView.css:

(@media (prefers-dark-interface)):
(.completion-suggestions):
(.completion-suggestions-container > .item):

  • UserInterface/Views/ComputedStyleDetailsPanel.css:

(@media (prefers-dark-interface)):
(.computed-style-properties.details-section):
(.details-section.style-box-model:not(.collapsed) > :matches(.header, .content)):

  • UserInterface/Views/ConsoleMessageView.css:

(@media (prefers-dark-interface)):
(.console-message .syntax-highlighted):
(.console-warning-level .console-message-text):
(.console-error-level .console-message-text):
(.console-user-command > .console-message-text):
(.console-message .repeat-count):

  • UserInterface/Views/ConsolePrompt.css:

(@media (prefers-dark-interface)):
(.console-prompt):

  • UserInterface/Views/DOMNodeDetailsSidebarPanel.css:

(@media (prefers-dark-interface)):
(.sidebar > .panel.dom-node-details .details-section.dom-node-event-listeners > .header > .filter:hover):

  • UserInterface/Views/DOMTreeOutline.css:

(@media (prefers-dark-interface)):
(.tree-outline.dom):
(.tree-outline.dom li.elements-drag-over .selection-area):
(.tree-outline.dom li.selected .selection-area):
(.tree-outline.dom:focus li.selected .selection-area):
(.tree-outline.dom li.selected + ol.children.expanded):
(.tree-outline.dom .shadow):
(.tree-outline.dom li.parent.shadow + ol.children.expanded,):
(.showing-find-banner .tree-outline.dom .search-highlight):

  • UserInterface/Views/DarkMode.css: Removed.
  • UserInterface/Views/DataGrid.css:

(@media (prefers-dark-interface)):
(.data-grid th):
(.data-grid td .subtitle):
(.data-grid:matches(:focus, .force-focus) tr.selected td .subtitle):
(body:not(.window-inactive, .window-docked-inactive) .data-grid:matches(:focus, .force-focus) tr.editable.selected .cell-content > input):
(.data-grid tr.editable .cell-content > input):
(.data-grid td.spanning):

  • UserInterface/Views/DebuggerDashboardView.css:

(@media (prefers-dark-interface)):
(.toolbar .dashboard.debugger):
(.dashboard.debugger .navigation-bar .item.button > .glyph):
(.dashboard.debugger > .location .function-name):
(.dashboard.debugger > .location .go-to-link):
(.dashboard.debugger > .divider):

  • UserInterface/Views/DefaultDashboardView.css:

(@media (prefers-dark-interface)):
(.toolbar .dashboard.default > .item > div):
(.toolbar .dashboard.default > .item.enabled > div):
(.toolbar .dashboard.default > .item.enabled:hover):
(.toolbar .dashboard.default > .item.enabled:hover > div):
(.toolbar .dashboard.default > .resourcesCount > img,):
(body.latest-mac .toolbar .dashboard .item.button):
(.dashboard-container .advance-arrow):

  • UserInterface/Views/DetailsSection.css:

(@media (prefers-dark-interface)):
(.details-section > .header):
(.details-section > .header > label):
(.details-section .details-section,):
(.details-section .details-section:not(.collapsed) > .header):
(.details-section > .content > .group > .row.simple > .label):
(.details-section > .content > .group:nth-child(even)):
(.details-section > .content > .group > .row:matches(.empty, .text)):

  • UserInterface/Views/DividerNavigationItem.css:

(@media (prefers-dark-interface)):
(.navigation-bar .item.divider):

  • UserInterface/Views/Editing.css:

(@media (prefers-dark-interface)):
(.editing):
(.editing, .editing *):

  • UserInterface/Views/FindBanner.css:

(@media (prefers-dark-interface)):
(.find-banner > input[type="search"]):
(.find-banner.console-find-banner > input[type=search]:not(:placeholder-shown)):

  • UserInterface/Views/FontResourceContentView.css:

(@media (prefers-dark-interface)):
(.content-view.resource.font .preview > .line):
(.content-view.resource.font .metric.top):
(.content-view.resource.font .metric.baseline):
(.content-view.resource.font .metric.middle):
(.content-view.resource.font .metric.xheight):
(.content-view.resource.font .metric.bottom):

  • UserInterface/Views/FormattedValue.css:

(@media (prefers-dark-interface)):
(.formatted-object,):
(.formatted-null,):

  • UserInterface/Views/GeneralStyleDetailsSidebarPanel.css:

(@media (prefers-dark-interface)):
(.sidebar > .panel.details.css-style > .content > .pseudo-classes > .group > label):
(.sidebar > .panel.details.css-style > .content ~ .options-container > .new-rule):
(.sidebar > .panel.details.css-style > .content ~ .options-container > .toggle-class-toggle):

  • UserInterface/Views/HoverMenu.css:

(@media (prefers-dark-interface)):
(.hover-menu > svg > :matches(path, rect)):

  • UserInterface/Views/ImageResourceContentView.css:

(@media (prefers-dark-interface)):
(.content-view.resource.image):

  • UserInterface/Views/InlineSwatch.css:

(@media (prefers-dark-interface)):
(.inline-swatch):

  • UserInterface/Views/LogContentView.css:

(@media (prefers-dark-interface)):
(.console-messages):
(.console-item):
(.console-messages:focus .console-item.selected):
(.console-messages:focus .console-item.selected + .console-item):
(.console-session:first-of-type .console-session-header):
(.console-session:not(:first-of-type) .console-session-header):
(.console-messages a):
(.console-messages a:hover):
(.console-messages:focus .console-item.selected::after):
(.console-error-level):
(.console-error-level:not(.filtered-out, .filtered-out-by-search), .console-error-level:not(.filtered-out, .filtered-out-by-search) + .console-item):
(.console-warning-level):
(.console-warning-level:not(.filtered-out, .filtered-out-by-search), .console-warning-level:not(.filtered-out, .filtered-out-by-search) + .console-item):
(.search-in-progress .console-item:not(.filtered-out-by-search) .highlighted):
(.search-in-progress .console-item:not(.filtered-out-by-search) .highlighted.selected):

  • UserInterface/Views/Main.css:

(#main):
(@media (prefers-dark-interface)):
(.go-to-arrow):
(.resource-link,):
(.expand-list-button):
(:matches(img, canvas).show-grid):

  • UserInterface/Views/NetworkResourceDetailView.css:

(@media (prefers-dark-interface)):
(.network-resource-detail):
(.network-resource-detail .item.close > .glyph):
(.network .network-resource-detail .navigation-bar .item.radio.button.text-only.selected):
(.resource-headers .value):

  • UserInterface/Views/NetworkTableContentView.css:

(@media (prefers-dark-interface)):
(.network-table .cell.domain > .lock):

  • UserInterface/Views/NewTabContentView.css:

(@media (prefers-dark-interface)):
(.new-tab.tab.content-view):

  • UserInterface/Views/ObjectTreePropertyTreeElement.css:

(@media (prefers-dark-interface)):
(.object-tree-property .getter,):
(.item.object-tree-property.prototype-property):
(.object-tree-property.prototype-property:hover,):
(.object-tree-property .value.error):

  • UserInterface/Views/ObjectTreeView.css:

(@media (prefers-dark-interface)):
(.object-tree,):
(.object-preview .name):
(.object-preview > .size):

  • UserInterface/Views/OpenResourceDialog.css:

(@media (prefers-dark-interface)):
(.open-resource-dialog):
(.open-resource-dialog > .field > input):
(.open-resource-dialog > .field > input::placeholder):
(.open-resource-dialog > .tree-outline .item.selected):
(.open-resource-dialog > .field::before):

  • UserInterface/Views/ProgressView.css:

(@media (prefers-dark-interface)):
(.progress-view > .titles > .title):
(.progress-view > .titles > .subtitle):
(.indeterminate-progress-spinner):

  • UserInterface/Views/QuickConsole.css:

(@media (prefers-dark-interface)):
(.quick-console):
(.CodeMirror .jump-to-symbol-highlight,):
(.quick-console.showing-log):

  • UserInterface/Views/RecordingActionTreeElement.css:

(@media (prefers-dark-interface)):
(.item.action:not(.initial-state)::before):
(.tree-outline .item.action.visual:not(.selected, .invalid)):
(.item.action:not(.initial-state) > .icon):
(.tree-outline:not(.hide-disclosure-buttons) .item.action:not(.initial-state, .parent) > .icon):

  • UserInterface/Views/RecordingContentView.css:

(@media (prefers-dark-interface)):
(.content-view:not(.tab).recording):
(.content-view:not(.tab).recording > header > .slider-container):
(.content-view:not(.tab).recording > header > .slider-container > input[type=range]):

  • UserInterface/Views/RecordingStateDetailsSidebarPanel.css:

(@media (prefers-dark-interface)):
(.sidebar > .panel.details.recording-state > .content > .data-grid tr.modified):

  • UserInterface/Views/ResourceHeadersContentView.css:

(@media (prefers-dark-interface)):
(.resource-headers .value):

  • UserInterface/Views/ResourceSizesContentView.css:

(@media (prefers-dark-interface)):
(.resource-sizes > .content .label):

  • UserInterface/Views/ResourceTimingBreakdownView.css:

(@media (prefers-dark-interface)):
(.popover.waterfall-popover):
(.resource-timing-breakdown > table > tr.header:not(.total-row) > td):
(.resource-timing-breakdown > table > tr > td.label,):
(.resource-timing-breakdown > table hr):

  • UserInterface/Views/ScopeBar.css:

(@media (prefers-dark-interface)):
(.scope-bar > li):

  • UserInterface/Views/SearchBar.css:

(@media (prefers-dark-interface)):
(:matches(.search-bar, .filter-bar) > input[type="search"],):
(:matches(.search-bar, .filter-bar) > input[type="search"]::placeholder):
(:matches(.search-bar, .filter-bar) > input[type="search"]:focus):

  • UserInterface/Views/SearchSidebarPanel.css:

(@media all):

  • UserInterface/Views/SettingsTabContentView.css:

(@media (prefers-dark-interface)):
(.content-view.settings .navigation-bar):
(.content-view.settings .navigation-bar .item.radio.button.text-only.selected):

  • UserInterface/Views/ShaderProgramContentView.css:

(@media (prefers-dark-interface)):
(.content-view.shader-program > .text-editor.shader):
(.content-view.shader-program > .text-editor.shader > .type-title):

  • UserInterface/Views/ShaderProgramTreeElement.css:

(@media (prefers-dark-interface)):
(.item.shader-program .status > img):

  • UserInterface/Views/SourceCodeTextEditor.css:

(@media (prefers-dark-interface)):
(.source-code.text-editor > .CodeMirror .error):
(.source-code.text-editor > .CodeMirror .warning):
(.source-code.text-editor > .CodeMirror .issue-widget):
(.source-code.text-editor > .CodeMirror .issue-widget.warning,):
(.source-code.text-editor > .CodeMirror .issue-widget.error,):

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationEditor.css:

(@media (prefers-dark-interface)):
(.spreadsheet-style-declaration-editor .property:not(.disabled) .value):
(.spreadsheet-style-declaration-editor :matches(.name, .value).editing):
(.spreadsheet-style-declaration-editor .property.has-warning):
(.spreadsheet-style-declaration-editor .property.has-warning .warning):
(.spreadsheet-style-declaration-editor .property:matches(.invalid-name, .other-vendor, .overridden):not(.disabled) .content > *):

  • UserInterface/Views/SpreadsheetCSSStyleDeclarationSection.css:

(@media (prefers-dark-interface)):
(.spreadsheet-css-declaration):
(.spreadsheet-css-declaration.locked):
(.spreadsheet-css-declaration .selector.style-attribute):
(.spreadsheet-css-declaration .selector:focus,):
(.spreadsheet-css-declaration.locked .origin::after):
(.spreadsheet-css-declaration .origin .go-to-link,):
(.spreadsheet-css-declaration .media-label):

  • UserInterface/Views/SpreadsheetRulesStyleDetailsPanel.css:

(@media (prefers-dark-interface)):
(.spreadsheet-style-panel .section-header):
(.spreadsheet-style-panel .section-header .node-link:hover):

  • UserInterface/Views/SyntaxHighlightingDefaultTheme.css:

(@media (prefers-dark-interface)):
(.syntax-highlighted,):
(.cm-s-default,):
(.cm-s-default .cm-attribute):
(.cm-s-default .cm-m-xml.cm-attribute,):
(.cm-s-default .cm-meta):
(.cm-s-default .cm-variable-3):
(.cm-s-default .cm-builtin):

  • UserInterface/Views/TabBar.css:

(@media (prefers-dark-interface)):
(.tab-bar):
(.tab-bar > .item):
(.tab-bar > .item > .title):
(.tab-bar > .item:not(.disabled).selected):
(.tab-bar:not(.animating) > .item:not(.selected):hover):
(.tab-bar > .item > .close,):
(body.window-inactive .tab-bar):
(body.window-inactive .tab-bar > .item):
(body.window-inactive .tab-bar > .item.selected):
(body.window-inactive .tab-bar > .item > .title):

  • UserInterface/Views/Table.css:

(@media (prefers-dark-interface)):
(.table,):
(.table > .header > .sortable:active):
(.table > .header > :matches(.sort-ascending, .sort-descending)):
(.table > .header > :matches(.sort-ascending, .sort-descending)::after):

  • UserInterface/Views/TextEditor.css:

(@media (prefers-dark-interface)):
(.text-editor > .CodeMirror .execution-line):
(.text-editor > .CodeMirror .execution-range-highlight:not(.CodeMirror-selectedtext),):

  • UserInterface/Views/TimelineDataGrid.css:

(@media (prefers-dark-interface)):
(.data-grid th:matches(.sort-ascending, .sort-descending)):

  • UserInterface/Views/TimelineIcons.css:

(@media (prefers-dark-interface)):
(.time-icon .icon):

  • UserInterface/Views/TimelineOverview.css:

(@media (prefers-dark-interface)):
(.timeline-overview > .navigation-bar.timelines):
(.timeline-overview:not(.frames) > .graphs-container > .timeline-overview-graph:nth-child(even)):
(.timeline-overview.edit-instruments > .tree-outline.timelines .item:not(:first-child),):

  • UserInterface/Views/TimelineRecordingContentView.css:

(@media (prefers-dark-interface)):
(.content-view.timeline-recording > .content-browser > .navigation-bar > .item.scope-bar.default-item-selected > .multiple):
(.content-view.timeline-recording > .content-browser > .navigation-bar > .item.scope-bar.default-item-selected > .multiple .arrows):

  • UserInterface/Views/Toolbar.css:

(@media (prefers-dark-interface)):
(body .toolbar):
(body.window-inactive .toolbar):
(body.latest-mac .toolbar .item.button,):
(body.latest-mac .toolbar .search-bar > input[type="search"]):
(body.latest-mac .toolbar .search-bar > input[type="search"]:focus):
(body.latest-mac .toolbar .search-bar > input[type="search"]::placeholder):
(body.latest-mac.window-inactive .toolbar .search-bar > input[type="search"]::placeholder):
(body.latest-mac.window-inactive .toolbar .search-bar > input[type="search"]::-webkit-search-results-button):
(body.latest-mac .toolbar .dashboard-container):
(body.latest-mac .toolbar .item.button:active):
(body.latest-mac.window-inactive .toolbar .item.button,):

  • UserInterface/Views/TreeOutline.css:

(@media (prefers-dark-interface)):
(.tree-outline .item .subtitle):

  • UserInterface/Views/Variables.css:

(@media (prefers-dark-interface)):
(:root):
(body.window-inactive):
(body.window-inactive *):

  • UserInterface/Views/WebSocketContentView.css:

(@media (prefers-dark-interface)):
(.web-socket.content-view .data-grid table.data tr.revealed):
(.web-socket.content-view .data-grid.variable-height-rows table.data tr.outgoing):
(.web-socket.content-view .data-grid.variable-height-rows table.data tr.non-text-frame):

  • UserInterface/Views/XHRBreakpointPopover.css:

(@media (prefers-dark-interface)):
(.popover .xhr-breakpoint-content > .editor-wrapper > .editor):

5:59 PM Changeset in webkit [236236] by Justin Fan
  • 474 edits
    5 copies
    55 adds in trunk/LayoutTests

WebGL 2 partial passes and failing test expectations for conformance/conformance2 layout tests
https://bugs.webkit.org/show_bug.cgi?id=189686

Reviewed by Dean Jackson.

  • TestExpectations: Still skipping all of deqp, but now enabling all non-crashing/timing out tests.
  • platform/ios-simulator/TestExpectations:
  • platform/mac/TestExpectations:
  • webgl/2.0.0/conformance/.../*expected.txt: Failures now report results of individual sub-tests for more granular implementation testing.
  • webgl/2.0.0/conformance2/.../*expected.txt:
  • platform/ios-simulator/webgl/2.0.0/.../*expected.txt: ios-simulator-specific expectations added.
5:42 PM Changeset in webkit [236235] by msaboff@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Add functions to measure memory footprint to JSC
https://bugs.webkit.org/show_bug.cgi?id=189768

Reviewed by Saam Barati.

Provide system memory metrics for the current process to aid in memory reduction measurement and
tuning using native JS tests.

  • jsc.cpp:

(MemoryFootprint::now):
(MemoryFootprint::resetPeak):
(GlobalObject::finishCreation):
(JSCMemoryFootprint::JSCMemoryFootprint):
(JSCMemoryFootprint::createStructure):
(JSCMemoryFootprint::create):
(JSCMemoryFootprint::finishCreation):
(JSCMemoryFootprint::addProperty):
(functionResetMemoryPeak):

5:21 PM Changeset in webkit [236234] by dino@apple.com
  • 2 edits in trunk/Source/WebKit

Temporarily move fullscreen back to experimental features
https://bugs.webkit.org/show_bug.cgi?id=189770
<rdar://problem/44619282>

Reviewed by Simon Fraser.

Make fullscreen an experimental feature again.

  • Shared/WebPreferences.yaml:
5:20 PM Changeset in webkit [236233] by realdawei@apple.com
  • 3 edits in trunk/Source/WebKit

Unreviewed, rolling out r236229.

caused API timouts on mac and ios

Reverted changeset:

"Clear persistent storage between tests for
resourceLoadStatistics"
https://bugs.webkit.org/show_bug.cgi?id=189684
https://trac.webkit.org/changeset/236229

Patch by Dawei Fenton <realdawei@apple.com> on 2018-09-19

5:13 PM Changeset in webkit [236232] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

REGRESSION(236154) C API clients not using WKPageSetPageNavigationClient couldn't complete HTTPS requests
https://bugs.webkit.org/show_bug.cgi?id=189771

Reviewed by Tim Horton.

  • UIProcess/API/APINavigationClient.h:

(API::NavigationClient::didReceiveAuthenticationChallenge):
Perform default behavior if there's an authentication challenge but we're using the default navigation client.
I wish we had infrastructure to test this but WebKitTestRunner uses WKPageSetNavigationClient
and we don't have the ability to do networking from API tests. This is a growing problem I intend to solve.

4:58 PM Changeset in webkit [236231] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests/imported/w3c

MediaStream-MediaElement-srcObject.https.html expects video duration for a MediaStream to be Infinity and is currently NaN
https://bugs.webkit.org/show_bug.cgi?id=189516

Patch by YUHAN WU <yuhan_wu@apple.com> on 2018-09-19
Reviewed by Youenn Fablet.

  • web-platform-tests/mediacapture-streams/MediaStream-MediaElement-srcObject.https.html:
  • web-platform-tests/mediacapture-streams/MediaStream-MediaElement-srcObject.https-expected.txt:
4:05 PM Changeset in webkit [236230] by realdawei@apple.com
  • 2 edits in trunk/LayoutTests

storage/indexeddb/modern/transactions-stop-on-navigation.html is flaky.
https://bugs.webkit.org/show_bug.cgi?id=186339

Unreviewed, mark test as flaky.

Patch by Dawei Fenton <realdawei@apple.com> on 2018-09-19

  • platform/mac-wk2/TestExpectations:
3:57 PM Changeset in webkit [236229] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit

Clear persistent storage between tests for resourceLoadStatistics
https://bugs.webkit.org/show_bug.cgi?id=189684
<rdar://problem/44540099>

Patch by Woodrow Wang <woodrow_wang@apple.com> on 2018-09-19
Reviewed by Chris Dumez.

  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp:

(WKWebsiteDataStoreStatisticsResetToConsistentState):

  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemoryAndPersistent):

Remove function only called in testing for resetting statistics to consistent
state.

(WebKit::WebResourceLoadStatisticsStore::scheduleClearInMemory): Deleted.

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

REGRESSION(r235917): 2% regression in Dromaeo CSS selector on MacBookPro11,4
https://bugs.webkit.org/show_bug.cgi?id=189738

Reviewed by Yusuke Suzuki.

The regression was caused by the regundant walk to the parent element. Removed it to fix the regression.

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::SelectorCodeGenerator::generateNthChildParentCheckAndRelationUpdate):
(WebCore::SelectorCompiler::SelectorCodeGenerator::generateNthLastChildParentCheckAndRelationUpdate):

2:58 PM Changeset in webkit [236227] by Chris Dumez
  • 4 edits in trunk/Source/WebKit

Crash under WebPageProxy::decidePolicyForNavigationAction()
https://bugs.webkit.org/show_bug.cgi?id=189763
<rdar://problem/44597111>

Reviewed by Alex Christensen.

Update WebNavigationState::navigation() / WebNavigationState::takeNavigation()
to return a pointer instead of a reference as we have evidence that they can
return null. I kept the debug assertions to try and catch the cases where we
return null but at least we stop crashing in release builds.

  • UIProcess/WebNavigationState.cpp:

(WebKit::WebNavigationState::navigation):
(WebKit::WebNavigationState::takeNavigation):

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

(WebKit::WebPageProxy::didStartProvisionalLoadForFrame):
(WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame):
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::didFinishDocumentLoadForFrame):
(WebKit::WebPageProxy::didFinishLoadForFrame):
(WebKit::WebPageProxy::didFailLoadForFrame):
(WebKit::WebPageProxy::didSameDocumentNavigationForFrame):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForResponse):

2:33 PM Changeset in webkit [236226] by Chris Dumez
  • 6 edits in trunk

Crash under WebProcessProxy::suspendedPageWasDestroyed(WebKit::SuspendedPageProxy&)
https://bugs.webkit.org/show_bug.cgi?id=189721
<rdar://problem/44359788>

Reviewed by Geoffrey Garen.

Source/WebKit:

Fix crash when destroying a SuspendedPageProxy whose WebProcessProxy was already
destroyed.

  • UIProcess/SuspendedPageProxy.cpp:

(WebKit::SuspendedPageProxy::SuspendedPageProxy):
(WebKit::SuspendedPageProxy::~SuspendedPageProxy):

  • UIProcess/SuspendedPageProxy.h:

(WebKit::SuspendedPageProxy::process const):
Update SuspendedPageProxy::m_process to be a RefPtr<> instead of a raw pointer, similarly
to what we do in WebPageProxy. Relying on the WebProcessProxy to not get destroyed is
risky as this crash demonstrates.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::requestTermination):
When a WebProcessProxy is terminated (by client or WebKit due to memory / cpu usage), call
webProcessDidClose() on all SuspendedPages, similarly to what we do in case of a crash in
processDidTerminateOrFailedToLaunch(). Failing to do so means that the SuspendedPageProxy
may still have a pointer to this WebProcessProxy, even though WebProcessProxy::shutDown()
has been called (which may destroy the WebProcessProxy).

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
2:33 PM Changeset in webkit [236225] by realdawei@apple.com
  • 2 edits in trunk/LayoutTests

Marked imported/w3c/web-platform-tests/webrtc/RTCPeerConnection-onnegotiationneeded.html as flak on iOS.
https://bugs.webkit.org/show_bug.cgi?id=176078

Unreviewed test gardening.

Patch by Dawei Fenton <realdawei@apple.com> on 2018-09-19

  • platform/ios/TestExpectations:
2:09 PM Changeset in webkit [236224] by sbarati@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

CheckStructureOrEmpty should pass in a tempGPR to emitStructureCheck since it may jump over that code
https://bugs.webkit.org/show_bug.cgi?id=189703

Reviewed by Mark Lam.

This fixes a crash that a TypeProfiler change revealed.

  • dfg/DFGSpeculativeJIT64.cpp:

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

2:00 PM Changeset in webkit [236223] by sbarati@apple.com
  • 3 edits
    1 add in trunk

AI rule for MultiPutByOffset executes its effects in the wrong order
https://bugs.webkit.org/show_bug.cgi?id=189757
<rdar://problem/43535257>

Reviewed by Michael Saboff.

JSTests:

  • stress/multi-put-by-offset-must-filter-value-before-filtering-base.js: Added.

(foo):
(Foo):
(g):

Source/JavaScriptCore:

The AI rule for MultiPutByOffset was executing effects in the wrong order.
It first executed the transition effects and the effects on the base, and
then executed the filtering effects on the value being stored. However, you
can end up with the wrong type when the base and the value being stored
are the same. E.g, in a program like o.f = o. These effects need to happen
in the opposite order, modeling what happens in the runtime executing of
MultiPutByOffset.

  • dfg/DFGAbstractInterpreterInlines.h:

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

1:54 PM Changeset in webkit [236222] by Kocsen Chung
  • 6 edits
    1 add in branches/safari-606-branch

Cherry-pick r236161. rdar://problem/44613375

Ensure that ForInContexts are invalidated if their loop local is over-written.
https://bugs.webkit.org/show_bug.cgi?id=189571
<rdar://problem/44402277>

Reviewed by Saam Barati.

JSTests:

  • stress/regress-189571.js: Added.

Source/JavaScriptCore:

Instead of hunting down every place in the BytecodeGenerator that potentially
needs to invalidate an enclosing ForInContext (if one exists), we simply iterate
the bytecode range of the loop body when the ForInContext is popped, and
invalidate the context if we ever find the loop temp variable over-written.

This has 2 benefits:

  1. It ensures that every type of opcode that can write to the loop temp will be handled appropriately, not just the op_mov that we've hunted down.
  2. It avoids us having to check the BytecodeGenerator's m_forInContextStack every time we emit an op_mov (or other opcodes that can write to a local) even when we're not inside a for-in loop.

JSC benchmarks show that that this change is performance neutral.

  • bytecompiler/BytecodeGenerator.cpp: (JSC::BytecodeGenerator::pushIndexedForInScope): (JSC::BytecodeGenerator::popIndexedForInScope): (JSC::BytecodeGenerator::pushStructureForInScope): (JSC::BytecodeGenerator::popStructureForInScope): (JSC::ForInContext::finalize): (JSC::StructureForInContext::finalize): (JSC::IndexedForInContext::finalize): (JSC::BytecodeGenerator::invalidateForInContextForLocal): Deleted.
  • bytecompiler/BytecodeGenerator.h: (JSC::ForInContext::ForInContext): (JSC::ForInContext::bodyBytecodeStartOffset const): (JSC::StructureForInContext::StructureForInContext): (JSC::IndexedForInContext::IndexedForInContext):
  • bytecompiler/NodesCodegen.cpp: (JSC::PostfixNode::emitResolve): (JSC::PrefixNode::emitResolve): (JSC::ReadModifyResolveNode::emitBytecode): (JSC::AssignResolveNode::emitBytecode): (JSC::EmptyLetExpression::emitBytecode): (JSC::ForInNode::emitLoopHeader): (JSC::ForOfNode::emitBytecode): (JSC::BindingNode::bindValue const): (JSC::AssignmentElementNode::bindValue const):
  • runtime/CommonSlowPaths.cpp: (JSC::SLOW_PATH_DECL):

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

1:54 PM Changeset in webkit [236221] by Kocsen Chung
  • 3 edits in branches/safari-606-branch/Source/JavaScriptCore

Cherry-pick r236018. rdar://problem/44613375

Refactor some ForInContext code for better encapsulation.
https://bugs.webkit.org/show_bug.cgi?id=189626
<rdar://problem/44466415>

Reviewed by Keith Miller.

  1. Add a ForInContext::m_type field to store the context type. This does not increase the class size, but eliminates the need for a virtual call to get the type.

Note: we still need a virtual destructor because we'll be mingling
IndexedForInContexts and StructureForInContexts in the BytecodeGenerator::m_forInContextStack.

  1. Add ForInContext::isIndexedForInContext() and ForInContext::isStructureForInContext() convenience methods.
  1. Add ForInContext::asIndexedForInContext() and ForInContext::asStructureForInContext() to do the casting to the subclass types. This ensures that we'll properly assert that the casting is legal.
  • bytecompiler/BytecodeGenerator.cpp: (JSC::BytecodeGenerator::emitGetByVal): (JSC::BytecodeGenerator::popIndexedForInScope): (JSC::BytecodeGenerator::popStructureForInScope):
  • bytecompiler/BytecodeGenerator.h: (JSC::ForInContext::type const): (JSC::ForInContext::isIndexedForInContext const): (JSC::ForInContext::isStructureForInContext const): (JSC::ForInContext::asIndexedForInContext): (JSC::ForInContext::asStructureForInContext): (JSC::ForInContext::ForInContext): (JSC::StructureForInContext::StructureForInContext): (JSC::IndexedForInContext::IndexedForInContext): (JSC::ForInContext::~ForInContext): Deleted.

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

1:54 PM Changeset in webkit [236220] by Kocsen Chung
  • 14 edits
    2 adds in branches/safari-606-branch

Cherry-pick r235827. rdar://problem/44613379

Ensure that handleIntrinsicCall() is only applied on op_call shaped instructions.
https://bugs.webkit.org/show_bug.cgi?id=189317
<rdar://problem/44152198>

Reviewed by Filip Pizlo.

JSTests:

  • stress/regress-189317.js: Added. (testGetter): (testSetter):

Source/JavaScriptCore:

handleIntrinsicCall() is normally used for checking if an op_call is a call to
an intrinsic function, and inlining it if it's a match.

However, getter and setter functions also does calls, and uses handleCall()
to implement the call. handleCall() eventually calls handleIntrinsicCall() to
check for intrinsics. This results in a bug because handleIntrinsicCall()
sometimes relies on the ArrayProfile* of the instruction, and is always assuming
that the instruction is op_call shaped. This turns out to be not true: getters
and setters can get there with op_get_by_val and op_put_by_val instead.

Since the intrinsic functions handled by handleIntrinsicCall() are never
intended to be used as getter / setter functions anyway, we can prevent this
whole class of bugs by having handleIntrinsicCall() fail early if the
instruction is not op_call shaped.

To implement this fix, we did the following:

  1. Introduced the OpcodeShape enum.
  2. Introduced isOpcodeShape<OpcodeShape>() for testing if a instruction of the shape of the specified OpcodeShape.
  3. Introduced arrayProfileFor<OpcodeShape>() for fetching the ArrayProfile* from the instruction given the OpcodeShape.

Using this arrayProfileFor template has the following benefits:

  1. Centralizes the definition of which instructions has an ArrayProfile* operand.
  2. Centralizes the definition of which operand is the ArrayProfile*.
  3. Asserts that the instruction is of the expected shape when retrieving the ArrayProfile*.
  1. Added ArrayProfile::m_typeName and ArrayProfile::s_typeName which are used in ArrayProfile::isValid() as a sanity check that a retrieved ArrayProfile* indeed does point to an ArrayProfile.
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/ArrayProfile.cpp:
  • bytecode/ArrayProfile.h: (JSC::ArrayProfile::isValid const):
  • bytecode/OpcodeInlines.h: Added. (JSC::isOpcodeShape): (JSC::arrayProfileFor):
  • dfg/DFGByteCodeParser.cpp: (JSC::DFG::ByteCodeParser::handleIntrinsicCall): (JSC::DFG::ByteCodeParser::parseBlock):
  • jit/JITCall.cpp: (JSC::JIT::compileOpCall):
  • jit/JITCall32_64.cpp: (JSC::JIT::compileOpCall):
  • jit/JITOpcodes.cpp: (JSC::JIT::emit_op_has_indexed_property):
  • jit/JITOpcodes32_64.cpp: (JSC::JIT::emit_op_has_indexed_property):
  • jit/JITPropertyAccess.cpp: (JSC::JIT::emit_op_get_by_val): (JSC::JIT::emit_op_put_by_val): (JSC::JIT::emitGenericContiguousPutByVal): (JSC::JIT::emitArrayStoragePutByVal): (JSC::JIT::emitIntTypedArrayPutByVal): (JSC::JIT::emitFloatTypedArrayPutByVal):
  • jit/JITPropertyAccess32_64.cpp: (JSC::JIT::emit_op_get_by_val): (JSC::JIT::emit_op_put_by_val): (JSC::JIT::emitGenericContiguousPutByVal): (JSC::JIT::emitArrayStoragePutByVal):
  • llint/LLIntSlowPaths.cpp: (JSC::LLInt::LLINT_SLOW_PATH_DECL): (JSC::LLInt::getByVal):
  • runtime/CommonSlowPaths.cpp: (JSC::SLOW_PATH_DECL):

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

1:54 PM Changeset in webkit [236219] by Kocsen Chung
  • 17 edits in branches/safari-606-branch/Source

Cherry-pick r235752. rdar://problem/44576797

Don't pause playback when locking screen if video is being displayed on second screen.
https://bugs.webkit.org/show_bug.cgi?id=189321

Reviewed by Eric Carlson.

Source/WebCore:

Expand the existing behavior when AirPlaying to an external device to playing to a local
external screen. Don't pause when the screen locks, and don't stop buffering in that mode either.

Add a KVO-observer to the WebAVPlayerController's playingOnSecondScreen property, and pass
that observed value on to the media element.

  • html/HTMLMediaElement.cpp: (WebCore::HTMLMediaElement::setShouldPlayToPlaybackTarget): (WebCore::HTMLMediaElement::setPlayingOnSecondScreen): (WebCore::HTMLMediaElement::shouldOverrideBackgroundPlaybackRestriction const): (WebCore::HTMLMediaElement::processingUserGestureForMedia const): (WebCore::HTMLMediaElement::mediaState const): (WebCore::HTMLMediaElement::purgeBufferedDataIfPossible): (WebCore::HTMLMediaElement::shouldOverrideBackgroundLoadingRestriction const): (WebCore::HTMLMediaElement::webkitCurrentPlaybackTargetIsWireless const): Deleted. (WebCore::HTMLMediaElement::canPlayToWirelessPlaybackTarget const): Deleted. (WebCore::HTMLMediaElement::isPlayingToWirelessPlaybackTarget const): Deleted.
  • html/HTMLMediaElement.h: (WebCore::HTMLMediaElement::webkitCurrentPlaybackTargetIsWireless const): (WebCore::HTMLMediaElement::isPlayingToExternalTarget const):
  • html/MediaElementSession.cpp: (WebCore::MediaElementSession::canPlayToWirelessPlaybackTarget const): Deleted.
  • html/MediaElementSession.h:
  • platform/audio/PlatformMediaSession.h: (WebCore::PlatformMediaSessionClient::setWirelessPlaybackTarget): (WebCore::PlatformMediaSessionClient::isPlayingOnSecondScreen const): (WebCore::PlatformMediaSession::canPlayToWirelessPlaybackTarget const): Deleted. (WebCore::PlatformMediaSessionClient::canPlayToWirelessPlaybackTarget const): Deleted.
  • platform/cocoa/PlaybackSessionModel.h:
  • platform/cocoa/PlaybackSessionModelMediaElement.h:
  • platform/cocoa/PlaybackSessionModelMediaElement.mm: (WebCore::PlaybackSessionModelMediaElement::setPlayingOnSecondScreen):
  • platform/ios/WebAVPlayerController.mm: (-[WebAVPlayerController init]): (-[WebAVPlayerController dealloc]): (-[WebAVPlayerController observeValueForKeyPath:ofObject:change:context:]):
  • platform/ios/WebVideoFullscreenControllerAVKit.mm: (VideoFullscreenControllerContext::setPlayingOnSecondScreen):

Source/WebKit:

Pass the "isPlayingOnSecondScreen" value across the process boundary.

  • UIProcess/Cocoa/PlaybackSessionManagerProxy.h:
  • UIProcess/Cocoa/PlaybackSessionManagerProxy.mm: (WebKit::PlaybackSessionModelContext::setPlayingOnSecondScreen): (WebKit::PlaybackSessionManagerProxy::setPlayingOnSecondScreen):
  • WebProcess/cocoa/PlaybackSessionManager.h:
  • WebProcess/cocoa/PlaybackSessionManager.messages.in:
  • WebProcess/cocoa/PlaybackSessionManager.mm: (WebKit::PlaybackSessionManager::setPlayingOnSecondScreen):

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

1:54 PM Changeset in webkit [236218] by Kocsen Chung
  • 7 edits
    1 add in branches/safari-606-branch

Cherry-pick r235356. rdar://problem/44613253

[JSC] Array.prototype.reverse modifies JSImmutableButterfly
https://bugs.webkit.org/show_bug.cgi?id=188794

Reviewed by Saam Barati.

JSTests:

  • stress/reverse-with-immutable-butterfly.js: Added. (shouldBe): (reverseInt): (reverseDouble): (reverseContiguous):

Source/JavaScriptCore:

While Array.prototype.reverse modifies the butterfly of the given Array,
it does not account JSImmutableButterfly case. So it accidentally modifies
the content of JSImmutableButterfly.
This patch converts CoW arrays to writable arrays before reversing.

  • runtime/ArrayPrototype.cpp: (JSC::arrayProtoFuncReverse):
  • runtime/JSObject.h: (JSC::JSObject::ensureWritable):

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

1:08 PM Changeset in webkit [236217] by commit-queue@webkit.org
  • 4 edits in trunk/Tools

[WHLSL] Improve test suite type safety
https://bugs.webkit.org/show_bug.cgi?id=189502

Patch by Thomas Denney <tdenney@apple.com> on 2018-09-19
Reviewed by Myles C. Maxfield.

Each of the 'makeT' functions now call the relevant cast function on the
value before hand. The checkNumber function has also been removed and
its uses have been replaced with functions that also check the type.
Some of the arithmetic checks have been updated to reflect that the
casts happen outside of WHLSL evaluation. Other tests have also been
updated to reflect that some values cannot be precisely expressed in
32-bit floating point.

  • WebGPUShadingLanguageRI/Casts.js:

(castToBool): Added.
(castAndCheckValue): Added.
(isBitwiseEquivalent): Moved from Intrinsics.js.

  • WebGPUShadingLanguageRI/Intrinsics.js: Ditto.
  • WebGPUShadingLanguageRI/SPIRV.html: Update depdencies.
  • WebGPUShadingLanguageRI/Test.html: Ditto.
  • WebGPUShadingLanguageRI/Test.js: Update makeT functions to do a cast

and check the result. Some tests were also updated to reflect the change
in the behavior of these functions.

  • WebGPUShadingLanguageRI/index.html: Update dependencies.
12:19 PM Changeset in webkit [236216] by wilander@apple.com
  • 34 edits
    4 adds in trunk

Resource Load Statistics: Add optional cap on partitioned cache max age
https://bugs.webkit.org/show_bug.cgi?id=189711
<rdar://problem/39246837>

Reviewed by Antti Koivisto and Chris Dumez.

Source/WebCore:

Test: http/tests/resourceLoadStatistics/cap-cache-max-age-for-prevalent-resource.html

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

(WebCore::NetworkStorageSession::maxAgeCacheCap):

Checks if a max age cap is set and returns it if the request
represents a prevalent resource.

(WebCore::NetworkStorageSession::setCacheMaxAgeCapForPrevalentResources):
(WebCore::NetworkStorageSession::resetCacheMaxAgeCapForPrevalentResources):

New functionality to receive a max age cap setting in the session.

Source/WebKit:

These changes add the capability to set a max age cap for prevalent resources
and consults it when retrieving cache entries. If an entry is capped and found
to be too old, it will not be used but instead removed from the cache.

This functionality is off by default because no cap is set by default.

  • NetworkProcess/NetworkProcess.cpp:

(WebKit::NetworkProcess::setCacheMaxAgeCapForPrevalentResources):
(WebKit::NetworkProcess::resetCacheMaxAgeCapForPrevalentResources):

Infrastructure for testing.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::retrieveCacheEntry):

Now sends in the session ID in the retrieve call.

  • NetworkProcess/cache/NetworkCache.cpp:

(WebKit::NetworkCache::hasReachedPrevalentResourceAgeCap):

Static convenience function.

(WebKit::NetworkCache::makeUseDecision):

Now receives an optional maxAge parameter and checks
hasReachedPrevalentResourceAgeCap() first.

(WebKit::NetworkCache::Cache::retrieve):

Now takes a session ID.

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

(WebKit::NetworkCache::cachedEntryReuseFailureToDiagnosticKey):

Added UseDecision::NoDueToPrevalentResourceAgeCap which causes a
return of WebCore::DiagnosticLoggingKeys::otherKey().

  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp:

(WKWebsiteDataStoreSetStatisticsCacheMaxAgeCap):
(WKWebsiteDataStoreStatisticsResetToConsistentState):

Infrastructure for testing.

  • UIProcess/API/C/WKWebsiteDataStoreRef.h:
  • UIProcess/Cocoa/ResourceLoadStatisticsMemoryStoreCocoa.mm:

(WebKit::ResourceLoadStatisticsMemoryStore::registerUserDefaultsIfNeeded):

Now supports a user default ResourceLoadStatisticsCacheMaxAgeCap.

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::hasStorageAccessForFrame):
(WebKit::NetworkProcessProxy::grantStorageAccess):
(WebKit::NetworkProcessProxy::removeAllStorageAccess):
(WebKit::NetworkProcessProxy::getAllStorageAccessEntries):
(WebKit::NetworkProcessProxy::setCacheMaxAgeCapForPrevalentResources):
(WebKit::NetworkProcessProxy::didSetCacheMaxAgeCapForPrevalentResources):
(WebKit::NetworkProcessProxy::resetCacheMaxAgeCapForPrevalentResources):
(WebKit::NetworkProcessProxy::didResetCacheMaxAgeCapForPrevalentResources):
(WebKit::nextRequestStorageAccessContextId): Deleted.

Deleted this to make all code use the generic generateCallbackID().

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

Used to transfer the setting from the UI process to the network process.

  • UIProcess/ResourceLoadStatisticsMemoryStore.cpp:

(WebKit::ResourceLoadStatisticsMemoryStore::setCacheMaxAgeCap):

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

(WebKit::WebResourceLoadStatisticsStore::setCacheMaxAgeCap):

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

(WebKit::WebsiteDataStore::setCacheMaxAgeCapForPrevalentResources):
(WebKit::WebsiteDataStore::resetCacheMaxAgeCapForPrevalentResources):

  • UIProcess/WebsiteData/WebsiteDataStore.h:

Tools:

This change adds infrastructure for layout tests of capped cache max age.

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

(WTR::TestRunner::setStatisticsCacheMaxAgeCap):

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

(WTR::TestController::setStatisticsCacheMaxAgeCap):

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

(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

LayoutTests:

  • http/tests/resourceLoadStatistics/cap-cache-max-age-for-prevalent-resource-expected.txt: Added.
  • http/tests/resourceLoadStatistics/cap-cache-max-age-for-prevalent-resource.html: Added.
  • http/tests/resourceLoadStatistics/resources/cached-permanent-redirect.php: Added.
  • http/tests/resourceLoadStatistics/resources/echo-query.php: Added.
  • platform/ios/TestExpectations:

New test marked as [ Pass ].

  • platform/mac-wk2/TestExpectations:

New test marked as [ Pass ].

  • platform/wk2/TestExpectations:

New test marked as [ Skip ] because it's not supported on non-Cocoa platforms.

12:13 PM Changeset in webkit [236215] by Kocsen Chung
  • 4 edits in branches/safari-606-branch/Source/WebKit

Cherry-pick r236086. rdar://problem/44576830

Swipe snapshot can get stuck if swiping is disabled while it is visible
https://bugs.webkit.org/show_bug.cgi?id=189667
<rdar://problem/40367780>

Reviewed by Simon Fraser.

If navigation gestures are disabled while a swipe snapshot is visible,
WKWebView will tear down the ViewGestureController, which means that
the SnapshotRemovalTracker will no longer be around to ever remove
the snapshot.

It's currently very hard to write a test for this because we have
yet to come up with a good mechanism for testing swiping on iOS.

  • UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView setAllowsBackForwardNavigationGestures:]): Instead of tearing down the ViewGestureController when navigation gestures are disabled, just set a bit on it that disables gestures.
  • UIProcess/Cocoa/ViewGestureController.cpp: (WebKit::ViewGestureController::canSwipeInDirection const):
  • UIProcess/Cocoa/ViewGestureController.h: (WebKit::ViewGestureController::setSwipeGestureEnabled): (WebKit::ViewGestureController::isSwipeGestureEnabled): Add a bit to ViewGestureController that makes starting new gestures always fail, but allows e.g. snapshots from existing swipes to continue their usual behavior.

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

12:13 PM Changeset in webkit [236214] by Kocsen Chung
  • 4 edits in branches/safari-606-branch

Cherry-pick r235956. rdar://problem/44576825

imported/w3c/web-platform-tests/shadow-dom/form-control-form-attribute.html hits assertion
https://bugs.webkit.org/show_bug.cgi?id=189493

Reviewed by Alex Christensen.

Source/WebCore:

The debug assertion was caused by RefPtr in FormAssociatedElement::formOwnerRemovedFromTree introduced
by r224390 and r223644 ref'ing ShadowRoot while calling removeDetachedChildren inside ~ShadowRoot.
When a form (or any other) element has more than one ref inside removeDetachedChildren,
addChildNodesToDeletionQueue calls notifyChildNodeRemoved in the tree oreder.

However, when a form associated element of this form element appears later in the tree order,
FormAssociatedElement::formOwnerRemovedFromTree can traverse up ancestors including the ShadowRoot.

Fixed the bug by using raw pointers instead. Luckily, there is no DOM mutations or other non-trivial
operations happening in this function so this should be safe.

Test: imported/w3c/web-platform-tests/shadow-dom/form-control-form-attribute.html

  • html/FormAssociatedElement.cpp: (WebCore::FormAssociatedElement::formOwnerRemovedFromTree): Fixed the bug.

LayoutTests:

Unskip the test now that it doesn't hit a debug assertion.

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

11:54 AM Changeset in webkit [236213] by Kocsen Chung
  • 1 copy in tags/Safari-607.1.7

Tag Safari-607.1.7.

10:27 AM Changeset in webkit [236212] by realdawei@apple.com
  • 2 edits in trunk/Tools

Unreviewed. Update my email and alias in list of contributors.

Patch by Dawei Fenton <realdawei@apple.com> on 2018-09-19

  • Scripts/webkitpy/common/config/contributors.json:
10:17 AM Changeset in webkit [236211] by youenn@apple.com
  • 6 edits in trunk

Layout Test webrtc/video-mute.html is flaky.
https://bugs.webkit.org/show_bug.cgi?id=177501

Reviewed by Eric Carlson.

Source/WebCore:

Covered by updated test expectation.

  • platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm:

(WebCore::createBlackPixelBuffer): Make sure the whole buffer is properly initialized.

LayoutTests:

  • platform/ios-wk2/TestExpectations:
  • platform/mac-wk2/TestExpectations:
  • webrtc/routines.js: Increase counter to make test more robust.
9:27 AM Changeset in webkit [236210] by Chris Dumez
  • 2 edits in trunk/LayoutTests

[iOS] Layout Test imported/w3c/web-platform-tests/beacon/beacon-basic-blob.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=189728

Unreviewed, send console logging to stderr to adress flakiness.

9:22 AM Changeset in webkit [236209] by ddkilzer@apple.com
  • 3 edits in trunk/Source/WebCore

WebCoreNSURLSession leaks an NSString (_sessionDescription) in -dealloc
<https://webkit.org/b/189742>
<rdar://problem/44589774>

Reviewed by Joseph Pecoraro.

  • platform/network/cocoa/WebCoreNSURLSession.h:

(WebCoreNSURLSession._sessionDescription): Change type from
NSString * to RetainPtr<NSString>.

  • platform/network/cocoa/WebCoreNSURLSession.mm: Remove

@synthesized statement for sessionDescription so that custom
methods can be implemented to handle RetainPtr<NSString>.
(-[WebCoreNSURLSession sessionDescription]): Add.
(-[WebCoreNSURLSession setSessionDescription:]): Add.

9:19 AM Changeset in webkit [236208] by Ms2ger@igalia.com
  • 10 edits
    30 deletes in trunk/LayoutTests

[WPE] Unreviewed test gardening
https://bugs.webkit.org/show_bug.cgi?id=189749

Unreviewed test gardening.

  • platform/wpe/TestExpectations: Add some expectations to match GTK.
  • platform/wpe/imported/w3c/web-platform-tests/dom/events/EventTarget-dispatchEvent-expected.txt: Update after r236002.
  • platform/wpe/imported/w3c/web-platform-tests/xhr/access-control-basic-cors-safelisted-request-headers-expected.txt: Removed (defer to generic expectation).
  • platform/wpe/imported/w3c/web-platform-tests/xhr/access-control-basic-get-fail-non-simple-expected.txt: Removed (defer to generic expectation).
  • platform/wpe/imported/w3c/web-platform-tests/xhr/access-control-basic-post-with-non-cors-safelisted-content-type-expected.txt: Removed (defer to generic expectation).
  • platform/wpe/imported/w3c/web-platform-tests/xhr/send-redirect-infinite-expected.txt: Update after r235354.
  • platform/wpe/imported/w3c/web-platform-tests/xhr/send-redirect-infinite-sync-expected.txt: Update after r235354.
  • platform/wpe/imported/w3c/web-platform-tests/xhr/xmlhttprequest-network-error-expected.txt: Update after r235354.
  • platform/wpe/imported/w3c/web-platform-tests/xhr/xmlhttprequest-network-error-sync-expected.txt: Update after r235354.
  • platform/wpe/webgl/2.0.0/conformance2/glsl3/array-as-return-value-expected.txt: Removed (defer to generic expectation after r236001).
  • platform/wpe/webgl/2.0.0/conformance2/glsl3/array-assign-constructor-expected.txt: Removed (defer to generic expectation after r236001).
  • platform/wpe/webgl/2.0.0/conformance2/glsl3/array-assign-expected.txt: Removed (defer to generic expectation after r236001).
  • platform/wpe/webgl/2.0.0/conformance2/glsl3/array-complex-indexing-expected.txt: Removed (defer to generic expectation after r236001).
  • platform/wpe/webgl/2.0.0/conformance2/glsl3/array-element-increment-expected.txt: Removed (defer to generic expectation after r236001).
  • platform/wpe/webgl/2.0.0/conformance2/glsl3/array-equality-expected.txt: Removed (defer to generic expectation after r236001).
  • platform/wpe/webgl/2.0.0/conformance2/glsl3/array-in-complex-expression-expected.txt: Removed (defer to generic expectation after r236001).
  • platform/wpe/webgl/2.0.0/conformance2/glsl3/bool-type-cast-bug-uint-ivec-uvec-expected.txt: Removed (defer to generic expectation after r236001).
  • platform/wpe/webgl/2.0.0/conformance2/glsl3/compare-structs-containing-arrays-expected.txt: Removed (defer to generic expectation after r236001).
  • platform/wpe/webgl/2.0.0/conformance2/glsl3/compound-assignment-type-combination-expected.txt: Removed (defer to generic expectation after r236001).
  • platform/wpe/webgl/2.0.0/conformance2/glsl3/const-array-init-expected.txt: Removed (defer to generic expectation after r236001).
  • platform/wpe/webgl/2.0.0/conformance2/glsl3/forbidden-operators-expected.txt: Removed (defer to generic expectation after r236001).
  • platform/wpe/webgl/2.0.0/conformance2/glsl3/frag-depth-expected.txt: Removed (defer to generic expectation after r236001).
  • platform/wpe/webgl/2.0.0/conformance2/glsl3/invalid-default-precision-expected.txt: Removed (defer to generic expectation after r236001).
  • platform/wpe/webgl/2.0.0/conformance2/glsl3/invalid-invariant-expected.txt: Removed (defer to generic expectation after r236001).
  • platform/wpe/webgl/2.0.0/conformance2/glsl3/loops-with-side-effects-expected.txt: Removed (defer to generic expectation after r236001).
  • platform/wpe/webgl/2.0.0/conformance2/glsl3/misplaced-version-directive-expected.txt: Removed (defer to generic expectation after r236001).
  • platform/wpe/webgl/2.0.0/conformance2/glsl3/sampler-no-precision-expected.txt: Removed (defer to generic expectation after r236001).
  • platform/wpe/webgl/2.0.0/conformance2/glsl3/sequence-operator-returns-non-constant-expected.txt: Removed (defer to generic expectation after r236001).
  • platform/wpe/webgl/2.0.0/conformance2/glsl3/shader-linking-expected.txt: Update after r236001.
  • platform/wpe/webgl/2.0.0/conformance2/glsl3/shader-with-mis-matching-uniform-block-expected.txt: Update after r236001.
  • platform/wpe/webgl/2.0.0/conformance2/glsl3/short-circuiting-in-loop-condition-expected.txt: Removed (defer to generic expectation after r236001).
  • platform/wpe/webgl/2.0.0/conformance2/glsl3/texture-offset-out-of-range-expected.txt: Removed (defer to generic expectation after r236001).
  • platform/wpe/webgl/2.0.0/conformance2/glsl3/texture-offset-uniform-texture-coordinate-expected.txt: Removed (defer to generic expectation after r236001).
  • platform/wpe/webgl/2.0.0/conformance2/glsl3/tricky-loop-conditions-expected.txt: Removed (defer to generic expectation after r236001).
  • platform/wpe/webgl/2.0.0/conformance2/glsl3/uniform-block-layout-match-expected.txt: Removed (defer to generic expectation after r236001).
  • platform/wpe/webgl/2.0.0/conformance2/glsl3/uniform-block-layouts-expected.txt: Removed (defer to generic expectation after r236001).
  • platform/wpe/webgl/2.0.0/conformance2/glsl3/valid-invariant-expected.txt: Update after r236001.
  • platform/wpe/webgl/2.0.0/conformance2/glsl3/vector-dynamic-indexing-expected.txt: Removed (defer to generic expectation after r236001).
  • platform/wpe/webgl/2.0.0/conformance2/glsl3/vector-dynamic-indexing-nv-driver-bug-expected.txt: Removed (defer to generic expectation after r236001).
8:54 AM Changeset in webkit [236207] by youenn@apple.com
  • 21 edits in trunk

Implement sender/receiver getStats
https://bugs.webkit.org/show_bug.cgi?id=189707

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • web-platform-tests/webrtc/RTCRtpReceiver-getStats.https-expected.txt:
  • web-platform-tests/webrtc/RTCRtpSender-getStats.https-expected.txt:

Source/WebCore:

Add support for sender and receiver getStats.
Also add support for peer connection selector parameter.

Add the plumbing of the selector to LibWebRTCMediaEndpoint.
Then make use of libwebrtc overloaded methods to retrieve the right stats.

Covered by updated/rebased tests.

  • Modules/mediastream/PeerConnectionBackend.h:
  • Modules/mediastream/RTCPeerConnection.cpp:

(WebCore::RTCPeerConnection::getStats):

  • Modules/mediastream/RTCPeerConnection.h:
  • Modules/mediastream/RTCPeerConnection.idl:
  • Modules/mediastream/RTCRtpReceiver.cpp:

(WebCore::RTCRtpReceiver::RTCRtpReceiver):
(WebCore::RTCRtpReceiver::getStats):

  • Modules/mediastream/RTCRtpReceiver.h:

(WebCore::RTCRtpReceiver::create):
(WebCore::RTCRtpReceiver::backend):

  • Modules/mediastream/RTCRtpReceiver.idl:
  • Modules/mediastream/RTCRtpSender.cpp:

(WebCore::RTCRtpSender::create):
(WebCore::RTCRtpSender::RTCRtpSender):
(WebCore::RTCRtpSender::getStats):

  • Modules/mediastream/RTCRtpSender.h:
  • Modules/mediastream/RTCRtpSender.idl:
  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::getStats):

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:

(WebCore::LibWebRTCPeerConnectionBackend::getStats):
(WebCore::backendFromRTPSender):
(WebCore::createReceiverForSource):
(WebCore::LibWebRTCPeerConnectionBackend::createReceiver):
(WebCore::LibWebRTCPeerConnectionBackend::videoReceiver):
(WebCore::LibWebRTCPeerConnectionBackend::audioReceiver):
(WebCore::LibWebRTCPeerConnectionBackend::addTrack):
(WebCore::LibWebRTCPeerConnectionBackend::addUnifiedPlanTransceiver):
(WebCore::LibWebRTCPeerConnectionBackend::addTransceiver):
(WebCore::LibWebRTCPeerConnectionBackend::newRemoteTransceiver):

  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.h:
  • Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverBackend.h:

LayoutTests:

  • webrtc/video-stats-expected.txt:
  • webrtc/video-stats.html:
7:48 AM Changeset in webkit [236206] by Michael Catanzaro
  • 3 edits in trunk/Tools

[WPE][GTK] Unreviewed, try #3 to fix a typo

I feel like Charlie Brown, how hard this has been for me....

  • Scripts/run-minibrowser:
  • Scripts/webkitdirs.pm:

(runInFlatpakIfAvailable):
(runInFlatpakIfAvailible): Deleted.

7:28 AM Changeset in webkit [236205] by Michael Catanzaro
  • 2 edits in trunk/Tools

[WPE][GTK] Unreviewed, fix that typo in more places

It got copied into webkitdirs.pm!

  • Scripts/webkitdirs.pm:

(runInFlatpakIfAvailible):
(runInFlatpakIfAvalaible): Deleted.

6:58 AM Changeset in webkit [236204] by jer.noble@apple.com
  • 3 edits in trunk/Source/WebCore

REGRESSION (r236006): New waitingForKey() requirement breaks Modern EME tests.
https://bugs.webkit.org/show_bug.cgi?id=189720
<rdar://problem/44572140>

Reviewed by Xabier Rodriguez-Calvar.

Always call waitingForKey() after calling initializationDataEncountered().

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource):

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

(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::initializationDataEncountered):

6:50 AM Changeset in webkit [236203] by Michael Catanzaro
  • 2 edits in trunk/Tools

[WPE][GTK] Unreviewed, fix a pervasive typo in the webkit-flatpak script

  • flatpak/flatpakutils.py:

(WebkitFlatpak.load_from_args):
(WebkitFlatpak.init):
(WebkitFlatpak.run):

6:49 AM Changeset in webkit [236202] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebKit

Merge r235906 - Add missing #if ENABLE(VIDEO) WebProcess/FullScreen/WebFullScreenManager.cpp
https://bugs.webkit.org/show_bug.cgi?id=189506

Patch by Pablo Saavedra <Pablo Saavedra> on 2018-09-11
Reviewed by Tim Horton.

m_pipStandbyElement is only defined in
WebKit/WebProcess/FullScreen/WebFullScreenManager.h
only when ENABLE(VIDEO) (see
https://bugs.webkit.org/show_bug.cgi?id=181338)

  • WebProcess/FullScreen/WebFullScreenManager.cpp:

(WebKit::WebFullScreenManager::setPIPStandbyElement):

6:49 AM Changeset in webkit [236201] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r235895 - playbackControlsManagerUpdateTimerFired and
m_playbackControlsManagerUpdateTimer must be
guarded with ENABLE(VIDEO), otherwise the following
error occurs with the VIDEO feature turned off:

error: 'MediaElementSession' has not been declared

Add missing #if ENABLE(VIDEO) Page.cpp and Page.h
https://bugs.webkit.org/show_bug.cgi?id=189500

Patch by Pablo Saavedra <Pablo Saavedra> on 2018-09-11
Reviewed by Anders Carlsson.

  • page/Page.cpp:

(WebCore::Page::Page):
(WebCore::Page::schedulePlaybackControlsManagerUpdate):

  • page/Page.h:
6:49 AM Changeset in webkit [236200] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.22

Merge r236142 - "DidFirstVisuallyNonEmptyLayout" callback does not get called when restoring a page from PageCache
https://bugs.webkit.org/show_bug.cgi?id=189681
<rdar://problem/44526171>

Reviewed by Alex Christensen and Zalan Bujtas.

Source/WebCore:

The "DidFirstVisuallyNonEmptyLayout" callback was not getting called when restoring a page from PageCache
because the FrameView is restored from PageCache and we would fail to restore its flags (such as
m_firstVisuallyNonEmptyLayoutCallbackPending) when entering Page Cache. We now call reset those flags that
are related to layout miletones when entering PageCache so that layout milestone events properly get sent
again when restoring from Page Cache.

  • history/CachedFrame.cpp:

(WebCore::CachedFrame::CachedFrame):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKit/LayoutMilestonesWithAllContentInFrame.cpp:

(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::TEST):

6:49 AM Changeset in webkit [236199] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.22

Merge r236124 - [WPE] Implement mouse event modifiers
https://bugs.webkit.org/show_bug.cgi?id=189697

Reviewed by Carlos Garcia Campos.

Source/WebKit:

Only "CapsLocks" is missing, as WPE doesn't support that modifier.

  • Shared/wpe/WebEventFactory.cpp:

(WebKit::modifiersForEventModifiers):
(WebKit::WebEventFactory::createWebKeyboardEvent):
(WebKit::WebEventFactory::createWebMouseEvent):
(WebKit::modifiersForEvent): Deleted.

Tools:

  • WebKitTestRunner/wpe/EventSenderProxyWPE.cpp:

(WTR::wkEventModifiersToWPE):
(WTR::EventSenderProxy::mouseDown):
(WTR::EventSenderProxy::mouseUp):

6:49 AM Changeset in webkit [236198] by Carlos Garcia Campos
  • 4 edits
    1 add in releases/WebKitGTK/webkit-2.22

Merge r236089 - We must convert ProfileType to CheckStructureOrEmpty instead of CheckStructure
https://bugs.webkit.org/show_bug.cgi?id=189676
<rdar://problem/39682897>

Reviewed by Michael Saboff.

JSTests:

  • typeProfiler/check-structure-or-empty-in-fixup.js: Added.

(A):
(K):
(i.catch):

Source/JavaScriptCore:

Because the incoming value may be TDZ, CheckStructure may end up crashing.
Since the Type Profile does not currently record TDZ values in any of its
data structures, this is not a semantic change in how it will show you data.
It just fixes crashes when we emit a CheckStructure and the incoming value
is TDZ.

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGNode.h:

(JSC::DFG::Node::convertToCheckStructureOrEmpty):

6:49 AM Changeset in webkit [236197] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.22

Merge r236031 - XMLHttpRequest::createResponseBlob() should create a Blob with type for empty response

https://bugs.webkit.org/show_bug.cgi?id=189627

Reviewed by Alexey Proskuryakov.

Right now we return an empty Blob without type when the response is empty, but
it should always include the type [1].

Test: web-platform-tests/xhr/overridemimetype-blob.html

[1] https://xhr.spec.whatwg.org/#blob-response

  • xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::createResponseBlob):
6:39 AM Changeset in webkit [236196] by Michael Catanzaro
  • 2 edits in trunk/Tools

[WPE][GTK] Unreviewed, update to latest GNOME SDK

  • flatpak/org.webkit.WebKit.yaml:
6:29 AM Changeset in webkit [236195] by Michael Catanzaro
  • 4 edits
    3 deletes in trunk/Tools

Unreviewed, rolling out r235500.

Time to switch back to master runtime

Reverted changeset:

"Unreviewed, rolling out r235114."
https://bugs.webkit.org/show_bug.cgi?id=188731
https://trac.webkit.org/changeset/235500

6:19 AM Changeset in webkit [236194] by Carlos Garcia Campos
  • 3 edits
    1 add in releases/WebKitGTK/webkit-2.22

Merge r236022 - Don't dump OSRAvailabilityData in Graph::dump because a stale Availability may point to a Node that is already freed
https://bugs.webkit.org/show_bug.cgi?id=189628
<rdar://problem/39481690>

Reviewed by Mark Lam.

JSTests:

  • stress/verbose-failure-dont-graph-dump-availability-already-freed.js: Added.

(foo):

Source/JavaScriptCore:

An Availability may point to a Node. And that Node may be removed from
the graph, e.g, it's freed and its memory is no longer owned by Graph.
This patch makes it so we no longer dump this metadata by default. If
this metadata is interesting to you, you'll need to go in and change
Graph::dump to dump the needed metadata.

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::dump):

6:19 AM Changeset in webkit [236193] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebKit

Merge r235992 - WebPageProxy::reportPageLoadResult can crash on some code paths
https://bugs.webkit.org/show_bug.cgi?id=189568

Reviewed by Chris Dumez.

WebPageProxy::reportPageLoadResult (which is called from
WebPageProxy::didFinishLoadForFrame) can sometimes crash when
accessing m_pageLoadStart (a std::optional) in its unloaded state.
Normally, m_pageLoadStart is initialized in
WebPageProxy::didStartProvisionalLoadForFrame, which one would expect
would be called before WebPageProxy::didFinishLoadForFrame. But that
turns out to not always be the case. It's not apparent under what
conditions didStartProvisionalLoadForFrame will not be called, but
it's happening in the wild, leading to crashes now that std::optional
asserts in release builds on bad accesses (see
https://bugs.webkit.org/show_bug.cgi?id=189568).

Fix this by checking m_pageLoadState on entry to reportPageLoadResult.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didFailProvisionalLoadForFrame):
(WebKit::WebPageProxy::didFinishLoadForFrame):
(WebKit::WebPageProxy::didFailLoadForFrame):
(WebKit::WebPageProxy::reportPageLoadResult):

6:19 AM Changeset in webkit [236192] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r235982 - [GLib] Fix format string in KeyedEncoderGlib::beginObject().
https://bugs.webkit.org/show_bug.cgi?id=189585

Reviewed by Michael Catanzaro.

This appears to fix the following assertion locally:

GLib-CRITICAL : g_variant_builder_add_value: assertion '!GVSB(builder)->expected_type
g_variant_is_of_type (value, GVSB(builder)->expected_type)' failed

Covered by existing tests.

  • platform/glib/KeyedEncoderGlib.cpp:

(WebCore::KeyedEncoderGlib::beginObject):

6:19 AM Changeset in webkit [236191] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r235933 - Linking against libWPEWebKit-0.1.so is not posible when WPE is build with ENABLE_VIDEO=OFF and ENABLE_WEB_AUDIO=OFF
https://bugs.webkit.org/show_bug.cgi?id=189540

Patch by Pablo Saavedra <Pablo Saavedra> on 2018-09-12
Reviewed by Philippe Normand.

Related issues:

This issue is related with changes in https://bugs.webkit.org/show_bug.cgi?id=183080
This issue is introduced in https://bugs.webkit.org/show_bug.cgi?id=186547

No new tests, no changes in the functionality.

  • platform/GStreamer.cmake:
  • platform/SourcesGLib.txt:
  • platform/mediastream/libwebrtc/LibWebRTCProviderGlib.cpp:

(WebCore::LibWebRTCProvider::webRTCAvailable):

6:19 AM Changeset in webkit [236190] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r235932 - Unreviewed WPE build fix.

  • platform/network/soup/SocketStreamHandleImplSoup.cpp:

Add extra header inclusions to get this code building after the unified
sources system shifted it into a different translation unit.

6:19 AM Changeset in webkit [236189] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r235863 - Many textarea tests leak documents because Document::removeFocusNavigationNodeOfSubtree() can trigger a Document retain cycle
https://bugs.webkit.org/show_bug.cgi?id=188722

Reviewed by Ryosuke Niwa.

Fix a retain cycle created when Document::adjustFocusNavigationNodeOnNodeRemoval() sets
m_focusNavigationStartingNode to itself. m_focusNavigationStartingNode is a Node* (not sure why it's not an Element*),
making it possible to assign the Document to it, which creates a reference to the document which prevents
Document::removedLastRef() ever running and doing the necessary cleanup.

Fix by setting m_focusNavigationStartingNode to null if code tries to set it to the Document. This can happen
when an element is focused and the page calls document.write(), which removes all children.

Will be tested by future leak testing. Fixes the document leak in at least the following tests:

fast/forms/append-children-during-form-submission.html
fast/forms/empty-textarea-toggle-disabled.html
fast/forms/textarea-paste-newline.html
fast/forms/textarea-trailing-newline.html

  • dom/Document.cpp:

(WebCore::Document::setFocusNavigationStartingNode):
(WebCore::Document::adjustFocusNavigationNodeOnNodeRemoval):

6:19 AM Changeset in webkit [236188] by Carlos Garcia Campos
  • 7 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r235862 - svg/W3C-SVG-1.1/render-groups-03-t.svg and some other SVG tests leak documents
https://bugs.webkit.org/show_bug.cgi?id=189147

Reviewed by Dean Jackson.

Document::removedLastRef() needs to clean up m_fontSelector, because it can reference
CSSFontFaceSources that keep SVGFontFaceElements alive, and they in turn will keep
the Document alive.

Also add the beginnings of a Fonts log channel.

This will be tested by world leak testing (webkit.org/b/189332).

  • css/CSSFontSelector.cpp:

(WebCore::CSSFontSelector::CSSFontSelector):
(WebCore::CSSFontSelector::~CSSFontSelector):

  • dom/Document.cpp:

(WebCore::Document::removedLastRef):

  • platform/Logging.h:
  • platform/graphics/FontCache.cpp:

(WebCore::FontCache::purgeInactiveFontDataIfNeeded):
(WebCore::FontCache::purgeInactiveFontData):

  • svg/SVGFontFaceElement.cpp:

(WebCore::SVGFontFaceElement::SVGFontFaceElement):
(WebCore::SVGFontFaceElement::~SVGFontFaceElement):

  • svg/SVGFontFaceElement.h:
6:19 AM Changeset in webkit [236187] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r235848 - [GStreamer] Fix overflow in buffered ranges
https://bugs.webkit.org/show_bug.cgi?id=189419

Reviewed by Philippe Normand.

Scale operations on big numbers (like media timestamps or durations)
should be made with GStreamer utility functions to avoid overflows.

This fixes an assertion when a 24 hour long fragmented MP4 file is
played.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::buffered const):

6:19 AM Changeset in webkit [236186] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.22

Merge r235846 - [GStreamer] Several media related tests timing out around the same revision
https://bugs.webkit.org/show_bug.cgi?id=189349

Reviewed by Carlos Garcia Campos.

Source/WebCore:

The timeouts were happening because the ended event was no
longer properly emitted. The change in playbackPosition also
ensures timeupdate event remains emitted in a... timely manner.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::playbackPosition const):
Reduce the position cache threshold to 200ms, which is a value
slightly lower than the 250ms defined in HTMLMediaElement.
(WebCore::MediaPlayerPrivateGStreamer::didEnd): Reset the cached
position value to ensure the following query will most likely
return the same value as reported by the duration query.

LayoutTests:

  • platform/gtk/TestExpectations: Unflag Timeout from now-unaffected tests.
6:19 AM Changeset in webkit [236185] by Carlos Garcia Campos
  • 7 edits in releases/WebKitGTK/webkit-2.22

Merge r235844 - XMLHttpRequest: overrideMimeType should not update the response's "Content-Type" header
https://bugs.webkit.org/show_bug.cgi?id=189465

Patch by Rob Buis <rbuis@igalia.com> on 2018-09-10
Reviewed by Frédéric Wang.

LayoutTests/imported/w3c:

  • web-platform-tests/xhr/overridemimetype-invalid-mime-type-expected.txt:

Source/WebCore:

The xhr spec changed [1, 2] so that overrideMimeType should not update the
response's "Content-Type" header anymore.

Behavior matches Firefox and Chrome.

[1] https://xhr.spec.whatwg.org/#dom-xmlhttprequest-overridemimetype
[2] https://github.com/whatwg/xhr/issues/157

Tests: http/tests/xmlhttprequest/xmlhttprequest-overridemimetype-content-type-header.html

web-platform-tests/xhr/overridemimetype-invalid-mime-type.htm

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::didReceiveResponse):

LayoutTests:

Change existing test to reflect new behavior.

  • http/tests/xmlhttprequest/xmlhttprequest-overridemimetype-content-type-header-expected.txt:
  • http/tests/xmlhttprequest/xmlhttprequest-overridemimetype-content-type-header.html:
6:19 AM Changeset in webkit [236184] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.22

Merge r235843 - [Web Animations] Interrupting an accelerated CSS transition on a composited element in flight fails
https://bugs.webkit.org/show_bug.cgi?id=189405
<rdar://problem/43342639>

Reviewed by Simon Fraser.

Source/WebCore:

Test: webanimations/accelerated-transition-interrupted-on-composited-element.html

If we interrupt an animation on an element that is composited also outside of the duration of the animation,
the "stop" accelerated action would fail to be performed because we no longer had a resolved current time and
the accelerated animation applied to the layer would never be removed.

However, having a resolved current time is not necessary to stop an animation, only for the other types of
actions (play, pause and seek). So we now simply default to a 0s time for an unresolved current time for a
simple fix to this issue.

  • animation/KeyframeEffectReadOnly.cpp:

(WebCore::KeyframeEffectReadOnly::applyPendingAcceleratedActions):

LayoutTests:

Add a new test that checks that interrupting a CSS transition targeting an accelerated property for an element
that is composited outside the duration of the transition correctly interrupts the animation and jumps straight
to the target value.

  • platform/win/TestExpectations:
  • webanimations/accelerated-transition-interrupted-on-composited-element-expected.html: Added.
  • webanimations/accelerated-transition-interrupted-on-composited-element.html: Added.
6:18 AM Changeset in webkit [236183] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r235829 - [CSSJIT] Use lshiftPtr instead of mul32
https://bugs.webkit.org/show_bug.cgi?id=189451

Reviewed by Sam Weinig.

Use value << 4 instead of value * 16. In 64bit environment, sizeof(Style::Relation) is 16,
so that we can use value << 4 in CSS JIT.

No behavior change.

  • cssjit/SelectorCompiler.cpp:

(WebCore::SelectorCompiler::SelectorCodeGenerator::generateAddStyleRelation):

6:18 AM Changeset in webkit [236182] by Carlos Garcia Campos
  • 14 edits
    2 adds in releases/WebKitGTK/webkit-2.22

Merge r235827 - Ensure that handleIntrinsicCall() is only applied on op_call shaped instructions.
https://bugs.webkit.org/show_bug.cgi?id=189317
<rdar://problem/44152198>

Reviewed by Filip Pizlo.

JSTests:

  • stress/regress-189317.js: Added.

(testGetter):
(testSetter):

Source/JavaScriptCore:

handleIntrinsicCall() is normally used for checking if an op_call is a call to
an intrinsic function, and inlining it if it's a match.

However, getter and setter functions also does calls, and uses handleCall()
to implement the call. handleCall() eventually calls handleIntrinsicCall() to
check for intrinsics. This results in a bug because handleIntrinsicCall()
sometimes relies on the ArrayProfile* of the instruction, and is always assuming
that the instruction is op_call shaped. This turns out to be not true: getters
and setters can get there with op_get_by_val and op_put_by_val instead.

Since the intrinsic functions handled by handleIntrinsicCall() are never
intended to be used as getter / setter functions anyway, we can prevent this
whole class of bugs by having handleIntrinsicCall() fail early if the
instruction is not op_call shaped.

To implement this fix, we did the following:

  1. Introduced the OpcodeShape enum.
  2. Introduced isOpcodeShape<OpcodeShape>() for testing if a instruction of the shape of the specified OpcodeShape.
  3. Introduced arrayProfileFor<OpcodeShape>() for fetching the ArrayProfile* from the instruction given the OpcodeShape.

Using this arrayProfileFor template has the following benefits:

  1. Centralizes the definition of which instructions has an ArrayProfile* operand.
  2. Centralizes the definition of which operand is the ArrayProfile*.
  3. Asserts that the instruction is of the expected shape when retrieving the ArrayProfile*.
  1. Added ArrayProfile::m_typeName and ArrayProfile::s_typeName which are used in ArrayProfile::isValid() as a sanity check that a retrieved ArrayProfile* indeed does point to an ArrayProfile.
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • bytecode/ArrayProfile.cpp:
  • bytecode/ArrayProfile.h:

(JSC::ArrayProfile::isValid const):

  • bytecode/OpcodeInlines.h: Added.

(JSC::isOpcodeShape):
(JSC::arrayProfileFor):

  • dfg/DFGByteCodeParser.cpp:

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

  • jit/JITCall.cpp:

(JSC::JIT::compileOpCall):

  • jit/JITCall32_64.cpp:

(JSC::JIT::compileOpCall):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_has_indexed_property):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_has_indexed_property):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_get_by_val):
(JSC::JIT::emit_op_put_by_val):
(JSC::JIT::emitGenericContiguousPutByVal):
(JSC::JIT::emitArrayStoragePutByVal):
(JSC::JIT::emitIntTypedArrayPutByVal):
(JSC::JIT::emitFloatTypedArrayPutByVal):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emit_op_get_by_val):
(JSC::JIT::emit_op_put_by_val):
(JSC::JIT::emitGenericContiguousPutByVal):
(JSC::JIT::emitArrayStoragePutByVal):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):
(JSC::LLInt::getByVal):

  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

5:48 AM Changeset in webkit [236181] by Adrian Perez de Castro
  • 2 edits in trunk/Tools

Unreviewed. Add Pablo Saavedra to the list of contributors.

  • Scripts/webkitpy/common/config/contributors.json:
5:34 AM Changeset in webkit [236180] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.22/LayoutTests/imported/w3c

Merge r235958 - Unreviewed, rebaseline imported/w3c/web-platform-tests/url/failure.html after r235808.

New checks are passing.

  • web-platform-tests/url/failure-expected.txt:
5:34 AM Changeset in webkit [236179] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.22

Merge r235808 - XMLHttpRequest: open() does not throw a SYNTAX_ERR exception if method is empty or url cannot be resolved
https://bugs.webkit.org/show_bug.cgi?id=46008

Patch by Rob Buis <rbuis@igalia.com> on 2018-09-07
Reviewed by Chris Dumez.

LayoutTests/imported/w3c:

  • web-platform-tests/xhr/open-url-bogus-expected.txt:
  • web-platform-tests/xhr/open-url-multi-window-6-expected.txt:

Source/WebCore:

Check if passed URL is valid as specified here [1].

Test: web-platform-tests/xhr/open-url-bogus.htm

[1] https://xhr.spec.whatwg.org/#the-open()-method Step 7

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::open):

5:34 AM Changeset in webkit [236178] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r235804 - [AX] Fix compile error in AXObjectCache constructor when !HAVE(ACCESSIBILITY)
https://bugs.webkit.org/show_bug.cgi?id=189423
<rdar://problem/44231775>

Reviewed by Yusuke Suzuki.

No new tests. Compilation fix.

  • accessibility/AXObjectCache.h:

(WebCore::AXObjectCache::AXObjectCache):

5:34 AM Changeset in webkit [236177] by Carlos Garcia Campos
  • 21 edits
    6 adds in releases/WebKitGTK/webkit-2.22

Merge r235790 - [DFG] DFG should handle String#toString
https://bugs.webkit.org/show_bug.cgi?id=189151

Reviewed by Saam Barati.

JSTests:

The error message in String#toString and String#valueOf is poor, which will be
handled in a separate bug[1].

[1]: https://bugs.webkit.org/show_bug.cgi?id=189357

  • microbenchmarks/string-object-to-string.js: Added.

(test):

  • microbenchmarks/string-object-value-of.js: Added.

(test):

  • stress/string-to-string-error.js: Added.

(shouldThrow):
(test):

  • stress/string-to-string.js: Added.

(shouldBe):
(test1):
(test2):
(test3):

  • stress/string-value-of-error.js: Added.

(shouldThrow):
(test):

  • stress/string-value-of.js: Added.

(shouldBe):
(test1):
(test2):
(test3):

Source/JavaScriptCore:

We handle String#toString and String#valueOf in DFG by introducing StringValueOf node.
In the fixup phase, we attempt to lower StringValueOf to the existing ToString or Identity
nodes. If we fail to lower it, we have StringValueOf(UntypedUse), which may raise an error
if an argument is neither String nor StringObject. The error message in String#toString and
String#valueOf is poor, which will be handled in a separate bug[1].

It improves simple microbenchmarks by 53.4 - 67.6%.

baseline patched

string-object-to-string 21.7308+-3.3147 12.9655+-0.0527 definitely 1.6760x faster
string-object-value-of 20.1122+-0.0691 13.1134+-0.2482 definitely 1.5337x faster

[1]: https://bugs.webkit.org/show_bug.cgi?id=189357

  • dfg/DFGAbstractInterpreterInlines.h:

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

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::handleIntrinsicCall):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGDoesGC.cpp:

(JSC::DFG::doesGC):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::fixupStringValueOf):

  • dfg/DFGNode.h:

(JSC::DFG::Node::convertToToString):

  • dfg/DFGNodeType.h:
  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileToStringOrCallStringConstructorOrStringValueOf):
(JSC::DFG::SpeculativeJIT::compileToStringOrCallStringConstructor): Deleted.

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

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):
(JSC::FTL::DFG::LowerDFGToB3::compileToStringOrCallStringConstructorOrStringValueOf):
(JSC::FTL::DFG::LowerDFGToB3::compileToStringOrCallStringConstructor): Deleted.

5:34 AM Changeset in webkit [236176] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.22/Source/JavaScriptCore

Merge r235785 - [JSC] Put .throwStackOverflow code after the fast path in LLInt doVMEntry
https://bugs.webkit.org/show_bug.cgi?id=189410

Reviewed by Mark Lam.

Put .throwStackOverflow code after the fast path in LLInt doVMEntry to
make doVMEntry code tight.

  • llint/LLIntThunks.cpp:

(JSC::vmEntryToWasm): Deleted.

  • llint/LLIntThunks.h:

(JSC::vmEntryToWasm):

  • llint/LowLevelInterpreter32_64.asm:
  • llint/LowLevelInterpreter64.asm:
5:33 AM Changeset in webkit [236175] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.22/Source/JavaScriptCore

Merge r235778 - [WebAssembly] Optimize JS to Wasm call by removing Vector allocation
https://bugs.webkit.org/show_bug.cgi?id=189353

Reviewed by Mark Lam.

JS to Wasm call always allocates Vector for the arguments. This is really costly if the wasm function is small.
This patch adds an initial size parameter to the Vector to avoid allocations for small sized arguments.

  • runtime/ArgList.h:
  • wasm/js/WebAssemblyFunction.cpp:

(JSC::callWebAssemblyFunction):

5:33 AM Changeset in webkit [236174] by Carlos Garcia Campos
  • 3 edits
    1 add in releases/WebKitGTK/webkit-2.22

Merge r235765 - Improper speculation type for Math.pow(NaN, 0) in Abstract Interpreter
https://bugs.webkit.org/show_bug.cgi?id=189380

Reviewed by Saam Barati.

JSTests:

New test.

  • stress/math-pow-nan-to-zero-spec-type.js: Added.

(func):
(test):

Source/JavaScriptCore:

Account for the case where in Math.pow(NaN, y) where y could be 0.

  • bytecode/SpeculatedType.cpp:

(JSC::typeOfDoublePow):

5:33 AM Changeset in webkit [236173] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/JavaScriptCore

Merge r235742 - Gardening: only visit m_cachedStructureID if it's not null.
https://bugs.webkit.org/show_bug.cgi?id=189124
<rdar://problem/43863605>

Not reviewed.

  • runtime/JSPropertyNameEnumerator.cpp:

(JSC::JSPropertyNameEnumerator::visitChildren):

5:33 AM Changeset in webkit [236172] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/JavaScriptCore

Merge r235740 - [JSC] Build broken after r234975 on s390x, ppc64le, armv7hl
https://bugs.webkit.org/show_bug.cgi?id=189078

Reviewed by Mark Lam.

Caused by the GCC bug - https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70124.
Using the ternary operator instead of std::max() fixes it.

  • heap/RegisterState.h:
5:33 AM Changeset in webkit [236171] by Carlos Garcia Campos
  • 7 edits
    2 adds in releases/WebKitGTK/webkit-2.22

Merge r235721 - The width of an empty or nullptr TextRun should be zero
https://bugs.webkit.org/show_bug.cgi?id=189154
<rdar://problem/43685926>

Reviewed by Zalan Bujtas.

If a page has an empty TextRun and attempts to paint it we can crash with a nullptr.

This patch recognizes that an empty TextRun should always produce a zero width, rather than
attempt to compute this value from font data. It also prevents ListBox from attempting to
paint a null string.

Test: fast/text/null-string-textrun.html

  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::widthOfTextRange const): An empty TextRun has zero width.
(WebCore::FontCascade::width const): Ditto.

  • platform/graphics/TextRun.h:

(WebCore::TextRun::TextRun): ASSERT that the supplied String is non-null.
(WebCore::TextRun::setText): Ditto.

  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::paintItemForeground): Don't attempt to paint a null string.

Source/WTF:
The width of an empty or nullptr TextRun should be zero
https://bugs.webkit.org/show_bug.cgi?id=189154
<rdar://problem/43685926>

Reviewed by Zalan Bujtas.

Most accessors in WTFString.cpp, such as isAllASCII(), hash(), etc., perform a nullptr check
before using m_impl, but is8Bit() does not.

This patch adds a check in the is8Bit() implementation to be consistent with other methods,
and to address a small number of crashes observed in testing.

  • wtf/text/WTFString.h:

(WTF::String::is8Bit const):

LayoutTests:
The width of a nullptr TextRun should be zero
https://bugs.webkit.org/show_bug.cgi?id=189154
<rdar://problem/43685926>

Reviewed by Zalan Bujtas.

  • fast/text/null-string-textrun-expected.txt: Added.
  • fast/text/null-string-textrun.html: Added.
5:33 AM Changeset in webkit [236170] by Carlos Garcia Campos
  • 3 edits
    1 add in releases/WebKitGTK/webkit-2.22

Merge r235715 - JSPropertyNameEnumerator::visitChildren() needs to visit its m_cachedStructureID.
https://bugs.webkit.org/show_bug.cgi?id=189124
<rdar://problem/43863605>

Reviewed by Filip Pizlo.

JSTests:

  • stress/regress-189124.js: Added.

Source/JavaScriptCore:

It is assumed that the Structure for the m_cachedStructureID will remain alive
while the m_cachedStructureID is in use. This prevents the structureID from being
re-used for a different Structure.

  • runtime/JSPropertyNameEnumerator.cpp:

(JSC::JSPropertyNameEnumerator::visitChildren):

5:33 AM Changeset in webkit [236169] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.22

Merge r235712 - [ESNext] Symbol.prototype.description
https://bugs.webkit.org/show_bug.cgi?id=186686

Reviewed by Keith Miller.

JSTests:

  • stress/symbol-description.js:

Add tests for empty and null symbol cases.

  • test262/config.yaml:

Enable Symbol.prototype.description tests.

Source/JavaScriptCore:

Symbol.prototype.description was implemented in r232404, but has one small bug:
It should return undefined for a null symbol.

  • runtime/Symbol.cpp:

(JSC::Symbol::description const):

  • runtime/SymbolPrototype.cpp:

(JSC::symbolProtoGetterDescription):
Address the null symbol case.

5:33 AM Changeset in webkit [236168] by Carlos Garcia Campos
  • 7 edits in releases/WebKitGTK/webkit-2.22/Source/JavaScriptCore

Merge r235685 - RELEASE_ASSERT at ../../Source/JavaScriptCore/heap/MarkedSpace.h:83
https://bugs.webkit.org/show_bug.cgi?id=188917

Reviewed by Mark Lam.

Our allocators should be able to handle allocating a zero-sized object.
Zero-sized objects will be allocated into the smallest size class.

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileNewTypedArrayWithSize):

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNewTypedArray):
(JSC::FTL::DFG::LowerDFGToB3::allocatorForSize):

  • heap/MarkedSpace.h:

(JSC::MarkedSpace::sizeClassToIndex):
(JSC::MarkedSpace::indexToSizeClass):

  • jit/AssemblyHelpers.cpp:

(JSC::AssemblyHelpers::emitAllocateVariableSized):

  • runtime/JSArrayBufferView.cpp:

(JSC::JSArrayBufferView::ConstructionContext::ConstructionContext):

5:33 AM Changeset in webkit [236167] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.22/Source/JavaScriptCore

Merge r235684 - Fix DeferredSourceDump to capture the caller bytecodeIndex instead of CodeOrigin.
https://bugs.webkit.org/show_bug.cgi?id=189300
<rdar://problem/39681779>

Reviewed by Saam Barati.

At the time a DeferredSourceDump is instantiated, it captures a CodeOrigin value
which points to a InlineCallFrame in the DFG::Plan's m_inlineCallFrames set. The
DeferredSourceDump is later used to dump source even if the compilation fails.
This is intentional so that we can use this tool to see what source fails to
compile as well.

The DFG::Plan may have been destructed by then, and since the compilation failed,
the InlineCallFrame is also destructed. This means DeferredSourceDump::dump()
may be end up accessing freed memory.

DeferredSourceDump doesn't really need a CodeOrigin. All it wants is the caller
bytecodeIndex for the call to an inlined function. Hence, we can fix this issue
by changing DeferredSourceDump to capture the caller bytecodeIndex instead.

In this patch, we also change DeferredSourceDump's m_codeBlock and m_rootCodeBlock
to be Strong references to ensure that the CodeBlocks are kept alive until they
can be dumped.

  • bytecode/DeferredCompilationCallback.cpp:

(JSC::DeferredCompilationCallback::dumpCompiledSourcesIfNeeded):

  • bytecode/DeferredSourceDump.cpp:

(JSC::DeferredSourceDump::DeferredSourceDump):
(JSC::DeferredSourceDump::dump):

  • bytecode/DeferredSourceDump.h:
  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseCodeBlock):

4:04 AM Changeset in webkit [236166] by Ms2ger@igalia.com
  • 2 edits in trunk/LayoutTests

[GTK] Unreviewed test gardening
https://bugs.webkit.org/show_bug.cgi?id=189744

Unreviewed test gardening.

  • platform/gtk/TestExpectations: Add some expectations.
1:53 AM Changeset in webkit [236165] by commit-queue@webkit.org
  • 5 edits
    10 adds in trunk

[GStreamer] Add support for AV1 decoding
https://bugs.webkit.org/show_bug.cgi?id=189647

Source/WebCore:

Tweaked by Xabier Rodriguez Calvar <calvaris@igalia.com>.
Patch by Philippe Normand <pnormand@igalia.com> on 2018-09-19
Reviewed by Žan Doberšek.

AV1 can be muxed in MP4 and WebM containers. The test is an adaptation from Chromium's unittest:
https://chromium.googlesource.com/chromium/src/+/master/content/browser/media/media_canplaytype_browsertest.cc

Test: media/media-can-play-av1.html

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::supportsType): Add AV1
support. The av01 codec has to be explicitely checked, along with
the presence of a compatible AV1 decoder.

Tools:

Patch by Philippe Normand <pnormand@igalia.com> on 2018-09-19
Reviewed by Žan Doberšek.

Add patches required for AV1 decoding support. They're all
upstream already and will be shipped in GStreamer 1.16. The aom
GStreamer plugin depends on the aom library for which there's no
official release yet.

  • gstreamer/jhbuild.modules:
  • gstreamer/patches/gst-plugins-bad-0001-aomenc-Add-support-for-10-12bit-decoding.patch: Added.
  • gstreamer/patches/gst-plugins-bad-0002-aomenc-Handle-8-bit_depth-images-with-AOM_IMG_FMT_HI.patch: Added.
  • gstreamer/patches/gst-plugins-good-0001-qtdemux-Detect-and-expose-CEA-608-708-Closed-Caption.patch: Added. This one is unrelated but an implicit dependency of the next one.
  • gstreamer/patches/gst-plugins-good-0004-qtdemux-Add-initial-support-for-AV1-demuxing.patch: Added.
  • gstreamer/patches/gst-plugins-good-0005-qtdemux-Extract-AV1-codec_data-and-put-it-in-the-cap.patch: Added.
  • gstreamer/patches/gst-plugins-good-0006-qtdemux-Recognize-more-AV1-atoms.patch: Added.

LayoutTests:

Patch by Philippe Normand <pnormand@igalia.com> on 2018-09-19
Reviewed by Žan Doberšek.

Layout test for AV1 canPlay() compatiblity checking. Right now
GStreamer-based ports are the only ones expecting to support AV1.

  • media/media-can-play-av1-expected.txt: Added.
  • media/media-can-play-av1.html: Added.
  • platform/ios/media/media-can-play-av1-expected.txt: Added.
  • platform/mac/media/media-can-play-av1-expected.txt: Added.
1:16 AM Changeset in webkit [236164] by Chris Dumez
  • 2 edits
    1 add
    1 delete in trunk/LayoutTests

http/tests/navigation/window-open-cross-origin-then-navigated-back-same-origin.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=189710

Reviewed by Ryosuke Niwa.

Update the test to stop relying on the test page posting a message to the auxiliary window
to trigger a navigation. Instead, the auxiliary window now takes care of navigating itself
after it is loaded. This is more robust, especially considering that the test page is cross
origin and thus is not getting a load event for the auxiliary window.

  • http/tests/navigation/resources/navigate-back-same-origin-helper.html: Added.
  • http/tests/navigation/resources/navigate-helper.html: Removed.
  • http/tests/navigation/window-open-cross-origin-then-navigated-back-same-origin.html:
1:11 AM Changeset in webkit [236163] by Claudio Saavedra
  • 4 edits in trunk/LayoutTests

[WPE][GTK] Assorted gardening

Unreviewed test gardening

  • platform/gtk/TestExpectations: Add new mediastream failures.
  • platform/wpe/TestExpectations: Ditto.
  • platform/wpe/js/dom/dom-static-property-for-in-iteration-expected.txt: rebaseline
12:23 AM BuildingCairoOnWindows edited by Fujii Hironori
(diff)

Sep 18, 2018:

8:53 PM Changeset in webkit [236162] by ajuma@chromium.org
  • 2 edits in trunk/LayoutTests

[macOS WK1] Mark intersection-observer/no-document-leak.html as a flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=189731

Unreviewed test gardening.

  • platform/mac-wk1/TestExpectations:
7:03 PM BuildingCairoOnWindows edited by Fujii Hironori
(diff)
6:35 PM BuildingCairoOnWindows edited by Fujii Hironori
(diff)
5:57 PM Changeset in webkit [236161] by mark.lam@apple.com
  • 6 edits
    1 add in trunk

Ensure that ForInContexts are invalidated if their loop local is over-written.
https://bugs.webkit.org/show_bug.cgi?id=189571
<rdar://problem/44402277>

Reviewed by Saam Barati.

JSTests:

  • stress/regress-189571.js: Added.

Source/JavaScriptCore:

Instead of hunting down every place in the BytecodeGenerator that potentially
needs to invalidate an enclosing ForInContext (if one exists), we simply iterate
the bytecode range of the loop body when the ForInContext is popped, and
invalidate the context if we ever find the loop temp variable over-written.

This has 2 benefits:

  1. It ensures that every type of opcode that can write to the loop temp will be handled appropriately, not just the op_mov that we've hunted down.
  2. It avoids us having to check the BytecodeGenerator's m_forInContextStack every time we emit an op_mov (or other opcodes that can write to a local) even when we're not inside a for-in loop.

JSC benchmarks show that that this change is performance neutral.

  • bytecompiler/BytecodeGenerator.cpp:

(JSC::BytecodeGenerator::pushIndexedForInScope):
(JSC::BytecodeGenerator::popIndexedForInScope):
(JSC::BytecodeGenerator::pushStructureForInScope):
(JSC::BytecodeGenerator::popStructureForInScope):
(JSC::ForInContext::finalize):
(JSC::StructureForInContext::finalize):
(JSC::IndexedForInContext::finalize):
(JSC::BytecodeGenerator::invalidateForInContextForLocal): Deleted.

  • bytecompiler/BytecodeGenerator.h:

(JSC::ForInContext::ForInContext):
(JSC::ForInContext::bodyBytecodeStartOffset const):
(JSC::StructureForInContext::StructureForInContext):
(JSC::IndexedForInContext::IndexedForInContext):

  • bytecompiler/NodesCodegen.cpp:

(JSC::PostfixNode::emitResolve):
(JSC::PrefixNode::emitResolve):
(JSC::ReadModifyResolveNode::emitBytecode):
(JSC::AssignResolveNode::emitBytecode):
(JSC::EmptyLetExpression::emitBytecode):
(JSC::ForInNode::emitLoopHeader):
(JSC::ForOfNode::emitBytecode):
(JSC::BindingNode::bindValue const):
(JSC::AssignmentElementNode::bindValue const):

  • runtime/CommonSlowPaths.cpp:

(JSC::SLOW_PATH_DECL):

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

[iOS] Layout Test imported/w3c/web-platform-tests/service-workers/service-worker/fetch-cors-xhr.https.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=189727

Unreviewed test gardening.

  • platform/ios/TestExpectations:
5:51 PM Changeset in webkit [236159] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

[iOS] Layout test imported/w3c/web-platform-tests/service-workers/service-worker/fetch-mixed-content-to-inscope.https.html and fetch-mixed-content-to-outscope.https.html are flaky failures
https://bugs.webkit.org/show_bug.cgi?id=189726

Unreviewed test gardening.

  • platform/ios/TestExpectations:
5:01 PM October 2018 Meeting edited by Simon Fraser
(diff)
5:00 PM October 2018 Meeting edited by Simon Fraser
(diff)
4:59 PM October 2018 Meeting edited by Simon Fraser
(diff)
4:17 PM Changeset in webkit [236158] by Brent Fulgham
  • 2 edits in trunk/Source/WebKit

[iOS] Allow WebContent process to check the "Protocol Characteristics" of files to which it has access
https://bugs.webkit.org/show_bug.cgi?id=189712
<rdar://problem/44386429>

Reviewed by Alex Christensen.

  • Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb:
4:16 PM October 2018 Meeting edited by Jon Davis
(diff)
4:16 PM October 2018 Meeting created by Jon Davis
3:05 PM Changeset in webkit [236157] by Chris Dumez
  • 2 edits in trunk/Source/WebKit

[iOS] Crash under WebPageProxy::navigationGestureSnapshotWasRemoved()
https://bugs.webkit.org/show_bug.cgi?id=189714
<rdar://problem/32839498>

Reviewed by Tim Horton.

The ViewGestureController::removeSwipeSnapshot() implementation for iOS calls
navigationGestureSnapshotWasRemoved() on m_webPageProxyForBackForwardListForCurrentSwipe.
m_webPageProxyForBackForwardListForCurrentSwipe can differ from m_webPageProxy, and
is a RefPtr<>. This means that this WebPageProxy's WKWebView might have been deallocated,
in which case we'll crash when trying to use the pageClient in
WebPageProxy::navigationGestureSnapshotWasRemoved(). To address the issue, we now return
early in WebPageProxy::navigationGestureSnapshotWasRemoved() if m_isClosed is true,
after resetting m_isShowingNavigationGestureSnapshot to false but *before* trying to use
the pageClient. When a WKWebView is deallocated, it calls WebPageProxy::close(), which
sets m_isClosed to true.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::navigationGestureSnapshotWasRemoved):

2:52 PM Changeset in webkit [236156] by Basuke Suzuki
  • 8 edits in trunk/Source

[Curl] Limit capturing extra metrics for Web Inspector when not required.
https://bugs.webkit.org/show_bug.cgi?id=189520

Reviewed by Alex Christensen.

Respect the value of NetworkDataTask::shouldCaptureExtraNetworkLoadMetrics() to reduce the process
time when they are not needed.

Source/WebCore:

No new tests because there's no behavior change.

  • platform/network/curl/CurlContext.cpp:

(WebCore::CurlHandle::getNetworkLoadMetrics):
(WebCore::CurlHandle::addExtraNetworkLoadMetrics):

  • platform/network/curl/CurlContext.h:
  • platform/network/curl/CurlRequest.cpp:

(WebCore::CurlRequest::CurlRequest):
(WebCore::CurlRequest::updateNetworkLoadMetrics):

  • platform/network/curl/CurlRequest.h:

(WebCore::CurlRequest::create):

  • platform/network/curl/ResourceHandleCurl.cpp:

(WebCore::ResourceHandle::createCurlRequest):

Source/WebKit:

  • NetworkProcess/curl/NetworkDataTaskCurl.cpp:

(WebKit::NetworkDataTaskCurl::createCurlRequest):

2:38 PM Changeset in webkit [236155] by Megan Gardner
  • 6 edits
    8 adds in trunk

Support Images Module Level 4's double-position gradient color stop syntax
https://bugs.webkit.org/show_bug.cgi?id=186154
<rdar://problem/44158152>

Reviewed by Simon Fraser.

Source/WebCore:

The CSS spec for all gradients allows for each color stop to have two angles to be used for hints.
This makes pie chart and checkerboard conic gradients much simpler to write.
Any time you want to have a hard line in a gradient, this syntax simplifies the gradient specification.

Test: fast/gradients/conic-two-hints.html
Test: fast/gradients/linear-two-hints-angle.html
Test: fast/gradients/linear-two-hints.html
Test: fast/gradients/radial-two-hints.html

  • css/parser/CSSPropertyParserHelpers.cpp:

(WebCore::CSSPropertyParserHelpers::consumeAngularGradientColorStops): Removed.
(WebCore::CSSPropertyParserHelpers::consumeGradientColorStops):

LayoutTests:

Test that uses two angles or positions per color stop.

  • TestExpectations:
  • fast/gradients/conic-two-hints-expected.html: Added.
  • fast/gradients/conic-two-hints.html: Added.
  • fast/gradients/linear-two-hints-angle-expected.html: Added.
  • fast/gradients/linear-two-hints-angle.html: Added.
  • fast/gradients/linear-two-hints-expected.html: Added.
  • fast/gradients/linear-two-hints.html: Added.
  • fast/gradients/radial-two-hints-expected.html: Added.
  • fast/gradients/radial-two-hints.html: Added.
  • platform/ios-12/TestExpectations:
  • platform/mac/TestExpectations:
2:03 PM Changeset in webkit [236154] by achristensen@apple.com
  • 8 edits in trunk/Source/WebKit

Make WebPageProxy always have a API::NavigationClient instead of always having a API::LoaderClient and API::PolicyClient
https://bugs.webkit.org/show_bug.cgi?id=189012

Reviewed by Andy Estes.

When WebKit2 was being developed, we initially made the C API WKPageSetPagePolicyClient and WKPageSetPageLoaderClient.
When we released WKWebView, it was using WKNavigationDelegate, equivalent to WKPageSetPageNavigationClient.
To support one or the other, we would use the navigation client if it was present, but if not we would fall back to the
loader or policy client. Since the loader and policy clients are now being minimally supported only until legacy
software migrates to the navigation client, we are adding new functionality to the navigation client.
Making the navigation client the default and using the loader or policy client only if they are present supports
the legacy software and makes us have fewer forgotten null checks when adding new functionality to the navigation client.

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageNavigationClient):

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

(WebKit::NavigationState::createNavigationClient):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy):
(WebKit::WebPageProxy::setNavigationClient):
(WebKit::WebPageProxy::setLoaderClient):
(WebKit::WebPageProxy::setPolicyClient):
(WebKit::WebPageProxy::close):
(WebKit::WebPageProxy::didChangeBackForwardList):
(WebKit::WebPageProxy::willGoToBackForwardListItem):
(WebKit::WebPageProxy::findPlugin):
(WebKit::WebPageProxy::didStartProvisionalLoadForFrame):
(WebKit::WebPageProxy::didReceiveServerRedirectForProvisionalLoadForFrame):
(WebKit::WebPageProxy::willPerformClientRedirectForFrame):
(WebKit::WebPageProxy::didCancelClientRedirectForFrame):
(WebKit::WebPageProxy::didFailProvisionalLoadForFrame):
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::didFinishDocumentLoadForFrame):
(WebKit::WebPageProxy::didFinishLoadForFrame):
(WebKit::WebPageProxy::didFailLoadForFrame):
(WebKit::WebPageProxy::didSameDocumentNavigationForFrame):
(WebKit::WebPageProxy::didReachLayoutMilestone):
(WebKit::WebPageProxy::didDisplayInsecureContentForFrame):
(WebKit::WebPageProxy::didRunInsecureContentForFrame):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForNewWindowAction):
(WebKit::WebPageProxy::decidePolicyForResponse):
(WebKit::WebPageProxy::contentRuleListNotification):
(WebKit::WebPageProxy::webGLPolicyForURL):
(WebKit::WebPageProxy::resolveWebGLPolicyForURL):
(WebKit::WebPageProxy::processDidBecomeUnresponsive):
(WebKit::WebPageProxy::processDidBecomeResponsive):
(WebKit::WebPageProxy::dispatchProcessDidTerminate):
(WebKit::WebPageProxy::didReceiveAuthenticationChallengeProxy):
(WebKit::WebPageProxy::wrapCryptoKey):
(WebKit::WebPageProxy::unwrapCryptoKey):
(WebKit::WebPageProxy::signedPublicKeyAndChallengeString):
(WebKit::WebPageProxy::navigationGestureDidBegin):
(WebKit::WebPageProxy::navigationGestureWillEnd):
(WebKit::WebPageProxy::navigationGestureDidEnd):
(WebKit::WebPageProxy::navigationGestureSnapshotWasRemoved):

  • UIProcess/WebPageProxy.h:
1:55 PM Changeset in webkit [236153] by achristensen@apple.com
  • 21 edits in trunk/Source/WebKit

Clean up AuthenticationChallengeProxy
https://bugs.webkit.org/show_bug.cgi?id=189668

Reviewed by Youenn Fablet.

At its core, it's a CompletionHandler with some information.
Make it more elegant and simple with no change in behavior and reduce the complexity of this security-sensitive object.

  • NetworkProcess/cocoa/NetworkSessionCocoa.mm:

(toNSURLSessionAuthChallengeDisposition):

  • Shared/Authentication/AuthenticationManager.cpp:

(WebKit::AuthenticationManager::rejectProtectionSpaceAndContinueForSingleChallenge):

  • Shared/Authentication/AuthenticationManager.h:
  • UIProcess/API/C/WKAuthenticationChallenge.cpp:

(WKAuthenticationChallengeGetDecisionListener):
(WKAuthenticationChallengeGetProtectionSpace):
(WKAuthenticationChallengeGetProposedCredential):
(WKAuthenticationChallengeGetPreviousFailureCount):

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPageNavigationClient):

  • UIProcess/API/Cocoa/WKNSURLAuthenticationChallenge.mm:

(-[WKNSURLAuthenticationChallengeSender cancelAuthenticationChallenge:]):
(-[WKNSURLAuthenticationChallengeSender continueWithoutCredentialForAuthenticationChallenge:]):
(-[WKNSURLAuthenticationChallengeSender useCredential:forAuthenticationChallenge:]):
(-[WKNSURLAuthenticationChallengeSender performDefaultHandlingForAuthenticationChallenge:]):
(-[WKNSURLAuthenticationChallengeSender rejectProtectionSpaceAndContinueWithChallenge:]):

  • UIProcess/Authentication/AuthenticationChallengeProxy.cpp:

(WebKit::AuthenticationChallengeProxy::AuthenticationChallengeProxy):
(WebKit::AuthenticationChallengeProxy::~AuthenticationChallengeProxy): Deleted.
(WebKit::AuthenticationChallengeProxy::useCredential): Deleted.
(WebKit::AuthenticationChallengeProxy::cancel): Deleted.
(WebKit::AuthenticationChallengeProxy::performDefaultHandling): Deleted.
(WebKit::AuthenticationChallengeProxy::rejectProtectionSpaceAndContinue): Deleted.
(WebKit::AuthenticationChallengeProxy::proposedCredential const): Deleted.
(WebKit::AuthenticationChallengeProxy::protectionSpace const): Deleted.
(WebKit::AuthenticationChallengeProxy::setSecKeyProxyStore): Deleted.

  • UIProcess/Authentication/AuthenticationChallengeProxy.h:

(WebKit::AuthenticationChallengeProxy::create):
(WebKit::AuthenticationChallengeProxy::listener const):
(WebKit::AuthenticationChallengeProxy::previousFailureCount const): Deleted.

  • UIProcess/Authentication/AuthenticationDecisionListener.cpp:

(WebKit::AuthenticationDecisionListener::AuthenticationDecisionListener):
(WebKit::AuthenticationDecisionListener::~AuthenticationDecisionListener):
(WebKit::AuthenticationDecisionListener::useCredential):
(WebKit::AuthenticationDecisionListener::cancel):
(WebKit::AuthenticationDecisionListener::performDefaultHandling):
(WebKit::AuthenticationDecisionListener::rejectProtectionSpaceAndContinue):
(WebKit::AuthenticationDecisionListener::detachChallenge): Deleted.

  • UIProcess/Authentication/AuthenticationDecisionListener.h:

(WebKit::AuthenticationDecisionListener::create):

  • UIProcess/Authentication/cocoa/AuthenticationChallengeProxyCocoa.mm:

(WebKit::AuthenticationChallengeProxy::sendClientCertificateCredentialOverXpc):
(WebKit::AuthenticationChallengeProxy::sendClientCertificateCredentialOverXpc const): Deleted.

  • UIProcess/Cocoa/DownloadClient.mm:

(WebKit::DownloadClient::didReceiveAuthenticationChallenge):

  • UIProcess/Cocoa/NavigationState.mm:

(WebKit::NavigationState::NavigationClient::didReceiveAuthenticationChallenge):

  • UIProcess/Downloads/DownloadProxy.cpp:

(WebKit::DownloadProxy::didReceiveAuthenticationChallenge):

  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::didReceiveAuthenticationChallenge):

  • UIProcess/ServiceWorkerProcessProxy.cpp:

(WebKit::ServiceWorkerProcessProxy::didReceiveAuthenticationChallenge):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::secKeyProxyStore):
(WebKit::WebPageProxy::didReceiveAuthenticationChallengeProxy):

  • UIProcess/WebPageProxy.h:
1:54 PM Changeset in webkit [236152] by achristensen@apple.com
  • 3 edits
    1 add in trunk/Source/WebKit

Add script to generate WebContent service resource files and change XPC service main SPI to have it's own header
https://bugs.webkit.org/show_bug.cgi?id=188601

Patch by Ben Richards <benton_richards@apple.com> on 2018-09-18
Reviewed by Dan Bernstein.

Added a script to the process entitlements build phase of the WebContent service that copies resource
files to WebKit.framework/PrivateHeaders/CustomWebContentResources. These resource files are to
be used by clients who would like to make a custom WebContent service.

  • Scripts/copy-webcontent-resources-to-private-headers.sh: Added.
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/API/Cocoa/WKWebProcess.h: Drive-by fix to make this header compileable alone.
1:10 PM Changeset in webkit [236151] by Jonathan Bedard
  • 2 edits in trunk/Tools

webkitpy: Clobbering and building occurs multiple times for iOS Simulator ports
https://bugs.webkit.org/show_bug.cgi?id=189702
<rdar://problem/44541704>

Reviewed by Aakash Jain.

  • Scripts/webkitpy/layout_tests/controllers/manager.py:

(Manager._set_up_run): Move build check and clobbering to run, since set up is
run multiple times for iOS simulator.
(Manager.run):

11:45 AM Changeset in webkit [236150] by Ryan Haddad
  • 1 edit
    3 adds in branches/safari-606-branch/LayoutTests

Unreviewed test gardening, rebaseline http/tests/ssl/applepay/ApplePayButton.html.

  • platform/mac-highsierra/http/tests/ssl/applepay/ApplePayButton-expected.txt: Added.
11:34 AM Changeset in webkit [236149] by Simon Fraser
  • 3 edits in trunk/Source/WebCore

Remove the unused RenderLayerCompositor::enclosingCompositorFlushingLayers()
https://bugs.webkit.org/show_bug.cgi?id=189689

Reviewed by Alex Christensen.

enclosingCompositorFlushingLayers() was added in r76196 but never used. Also use
a SetForScope<>.

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::flushPendingLayerChanges):
(WebCore::RenderLayerCompositor::enclosingCompositorFlushingLayers const): Deleted.

  • rendering/RenderLayerCompositor.h:
11:30 AM Changeset in webkit [236148] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[macOS] Frequent leaks seen under WebCore::gpuIDForDisplayMask
https://bugs.webkit.org/show_bug.cgi?id=189685
<rdar://problem/44541974>

Patch by Joseph Pecoraro <Joseph Pecoraro> on 2018-09-18
Reviewed by Per Arne Vollan.

  • platform/mac/PlatformScreenMac.mm:

(WebCore::gpuIDForDisplayMask):

11:29 AM Changeset in webkit [236147] by youenn@apple.com
  • 17 edits
    4 adds
    1 delete in trunk

Implement RTCRtpReceiver getContributingSources/getSynchronizationSources
https://bugs.webkit.org/show_bug.cgi?id=189671

Reviewed by Eric Carlson.

LayoutTests/imported/w3c:

  • web-platform-tests/webrtc/RTCRtpReceiver-getContributingSources.https-expected.txt:
  • web-platform-tests/webrtc/RTCRtpReceiver-getSynchronizationSources.https-expected.txt:
  • web-platform-tests/webrtc/interfaces-expected.txt: Removed, as no longer needed.

Source/ThirdParty/libwebrtc:

  • Configurations/libwebrtc.iOS.exp:
  • Configurations/libwebrtc.iOSsim.exp:
  • Configurations/libwebrtc.mac.exp:

Source/WebCore:

Introduce implementation of these two methods by calling the libwebrtc corresponding method.
Add corresponding IDL as per spec.
Covered by rebased WPT tests.

  • CMakeLists.txt:
  • DerivedSources.make:
  • Modules/mediastream/RTCRtpContributingSource.h: Added.
  • Modules/mediastream/RTCRtpContributingSource.idl: Added.
  • Modules/mediastream/RTCRtpReceiver.h:

(WebCore::RTCRtpReceiver::getContributingSources const):
(WebCore::RTCRtpReceiver::getSynchronizationSources const):

  • Modules/mediastream/RTCRtpReceiver.idl:
  • Modules/mediastream/RTCRtpReceiverBackend.h:

(WebCore::RTCRtpReceiverBackend::getContributingSources const):
(WebCore::RTCRtpReceiverBackend::getSynchronizationSources const):

  • Modules/mediastream/RTCRtpSynchronizationSource.h: Added.
  • Modules/mediastream/RTCRtpSynchronizationSource.idl: Added.
  • Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverBackend.cpp:

(WebCore::fillRTCRtpContributingSource):
(WebCore::toRTCRtpContributingSource):
(WebCore::toRTCRtpSynchronizationSource):
(WebCore::LibWebRTCRtpReceiverBackend::getContributingSources const):
(WebCore::LibWebRTCRtpReceiverBackend::getSynchronizationSources const):

  • Modules/mediastream/libwebrtc/LibWebRTCRtpReceiverBackend.h:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
10:59 AM Changeset in webkit [236146] by Ryan Haddad
  • 16 edits in trunk/Source/WebKit

Unreviewed, rolling out r236138.

Caused API test and layout test failures on iOS.

Reverted changeset:

"REGRESSION (PSON): White or Black flash occurs when process
swapping on navigation on Mac"
https://bugs.webkit.org/show_bug.cgi?id=189663
https://trac.webkit.org/changeset/236138

10:32 AM Changeset in webkit [236145] by eric.carlson@apple.com
  • 3 edits in trunk/Source/WebKit

Always log when granting/revoking capture sandbox extensions
https://bugs.webkit.org/show_bug.cgi?id=189701
<rdar://problem/44564029>

Reviewed by Youenn Fablet.

  • UIProcess/UserMediaProcessManager.cpp:

(WebKit::UserMediaProcessManager::willCreateMediaStream): Always log.
(WebKit::UserMediaProcessManager::endedCaptureSession): Ditto.

  • WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:

(WebKit::UserMediaPermissionRequestManager::grantUserMediaDeviceSandboxExtensions): Ditto.
(WebKit::UserMediaPermissionRequestManager::revokeUserMediaDeviceSandboxExtensions): Ditto.

10:11 AM Changeset in webkit [236144] by youenn@apple.com
  • 7 edits in trunk

Enable Unified Plan by default
https://bugs.webkit.org/show_bug.cgi?id=189675

Reviewed by Eric Carlson.

Source/WebCore:

RTCRtpTransceiver.currentDirection is now gated by the unified plan runtime flag.
This will allow easy feature detection of unified plan support.
Covered by updated test.

  • Modules/mediastream/RTCRtpTransceiver.idl:

Source/WebKit:

  • Shared/WebPreferences.yaml:

LayoutTests:

  • webrtc/video-addLegacyTransceiver-expected.txt:
  • webrtc/video-addLegacyTransceiver.html:
9:07 AM Changeset in webkit [236143] by pvollan@apple.com
  • 24 edits in trunk

[WebVTT] change "middle" to "center" for consistency with CSS
https://bugs.webkit.org/show_bug.cgi?id=158478

Reviewed by Eric Carlson.

Source/WebCore:

No new tests, covered by existing tests.

  • html/track/TextTrackCueGeneric.cpp:

(WebCore::TextTrackCueGenericBoxElement::applyCSSProperties):

  • html/track/VTTCue.cpp:

(WebCore::centerKeyword):
(WebCore::VTTCue::initialize):
(WebCore::VTTCue::align const):
(WebCore::VTTCue::setAlign):
(WebCore::VTTCue::calculateDisplayParameters):
(WebCore::VTTCue::setCueSettings):
(WebCore::middleKeyword): Deleted.

  • html/track/VTTCue.h:
  • html/track/WebVTTParser.cpp:

(WebCore::WebVTTTreeBuilder::buildFromString):

LayoutTests:

  • media/track/track-add-remove-cue-expected.txt:
  • media/track/track-add-remove-cue.html:
  • media/track/track-cue-mutable-expected.txt:
  • media/track/track-cue-mutable.html:
  • media/track/track-cue-rendering-snap-to-lines-not-set-expected.txt:
  • media/track/track-vttcue-expected.txt:
  • media/track/track-vttcue.html:
  • media/track/track-webvtt-tc013-settings-expected.txt:
  • media/track/track-webvtt-tc013-settings.html:
  • media/track/track-webvtt-tc014-alignment-expected.txt:
  • media/track/track-webvtt-tc014-alignment.html:
  • media/track/track-webvtt-tc016-align-positioning-expected.txt:
  • media/track/track-webvtt-tc016-align-positioning.html:
  • media/track/track-webvtt-tc018-align-text-line-position-expected.txt:
  • media/track/track-webvtt-tc018-align-text-line-position.html:
  • media/track/track-webvtt-tc020-cue-size-align-expected.txt:
  • media/track/track-webvtt-tc020-cue-size-align.html:
  • media/track/track-webvtt-tc021-valign-expected.txt:
  • media/track/track-webvtt-tc021-valign.html:
9:06 AM Changeset in webkit [236142] by Chris Dumez
  • 6 edits in trunk

"DidFirstVisuallyNonEmptyLayout" callback does not get called when restoring a page from PageCache
https://bugs.webkit.org/show_bug.cgi?id=189681
<rdar://problem/44526171>

Reviewed by Alex Christensen and Zalan Bujtas.

Source/WebCore:

The "DidFirstVisuallyNonEmptyLayout" callback was not getting called when restoring a page from PageCache
because the FrameView is restored from PageCache and we would fail to restore its flags (such as
m_firstVisuallyNonEmptyLayoutCallbackPending) when entering Page Cache. We now call reset those flags that
are related to layout miletones when entering PageCache so that layout milestone events properly get sent
again when restoring from Page Cache.

  • history/CachedFrame.cpp:

(WebCore::CachedFrame::CachedFrame):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKit/LayoutMilestonesWithAllContentInFrame.cpp:

(TestWebKitAPI::didFinishNavigation):
(TestWebKitAPI::TEST):

8:59 AM Changeset in webkit [236141] by Carlos Garcia Campos
  • 3 edits
    1 add in releases/WebKitGTK/webkit-2.22

Merge r235662 - isAsyncGeneratorMethodParseMode() should check for SourceParseMode::AsyncGeneratorWrapperMethodMode.
https://bugs.webkit.org/show_bug.cgi?id=189292
<rdar://problem/38907433>

Reviewed by Saam Barati.

JSTests:

  • stress/regress-189292.js: Added.

Source/JavaScriptCore:

Previously, isAsyncGeneratorMethodParseMode() was checking for AsyncGeneratorWrapperFunctionMode
instead of AsyncGeneratorWrapperMethodMode. This patch fixes it
to check for AsyncGeneratorWrapperMethodMode (to match what is expected as indicated
in the name isAsyncGeneratorMethodParseMode).

  • parser/ParserModes.h:

(JSC::isAsyncGeneratorMethodParseMode):

8:59 AM Changeset in webkit [236140] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r235621 - Attempt to fix failing tests following r235615 (https://bugs.webkit.org/show_bug.cgi?id=187925)

An inline text box that does not have combined text and contains a single character
should be considered as having text content.

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::hasTextContent const):

8:59 AM Changeset in webkit [236139] by Carlos Garcia Campos
  • 7 edits in releases/WebKitGTK/webkit-2.22

Merge r235615 - Remove redundant inline text boxes for empty combined text
https://bugs.webkit.org/show_bug.cgi?id=189119

Reviewed by Zalan Bujtas.

Source/WebCore:

We should consider inline text boxes that have a combined text renderer (RenderCombineText)
whose composed string is empty as "redundant" just as we do for inline text boxes that have
a non-combined text renderer that have zero length so that we remove them. Such boxes are
visibly empty and do not take up space visually. By removing them we reduce memory and make
it easier to reason about the line box tree.

Currently RenderBlockFlow::computeBlockDirectionPositionsForLine() tests if an inline text
box is empty by checking if it has a zero length (InlineTextBox::len()). However an inline
text box associated with a RenderCombineText always has length 1 regardless of whether the
composed string it represents is the empty string. Instead we should expose a way to check
if an inline text box is visually empty and have RenderBlockFlow::computeBlockDirectionPositionsForLine()
query the inline text box for this answer.

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::hasTextContent const): Added. Returns whether an inline text box
has text content. We do not need to consider hypenation since hypens are an embellishment (i.e.
they are not part of the markup of the page).
(WebCore::InlineTextBox::paint): Write in terms of hasTextContent().
(WebCore::InlineTextBox::subdivideAndResolveStyle): Assert that WebCore::subdivide() always
returns a non-empty list of subdivisions. A non-empty text box should always have at least
one subdivision, say for the unmarked text. I left the existing conditonal (though marked
it as UNLIKELY()) so as to be forgiving and avoid a bad user experience should WebCore::subdivide()
return an empty vector in a non-debug build.

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

(WebCore::RenderBlockFlow::computeBlockDirectionPositionsForLine): Write in terms of InlineTextBox::hasTextContent()
so that we remove empty inline text boxes associated with combined text.

  • rendering/RenderText.cpp:

(WebCore::RenderText::positionLineBox): Write in terms of InlineTextBox::hasTextContent().

LayoutTests:

Update expected result now that we do not create an inline text box associated with combined text
when we do not have any combined text to render.

  • fast/text/text-combine-surroundContents-crash-expected.txt:
8:41 AM Changeset in webkit [236138] by Antti Koivisto
  • 16 edits in trunk/Source/WebKit

REGRESSION (PSON): White or Black flash occurs when process swapping on navigation on Mac
https://bugs.webkit.org/show_bug.cgi?id=189663
<rdar://problem/44184955>

Reviewed by Geoff Garen.

We need to keep the layer tree of the previous page alive and visible until we have something
to render on the new page. With PSON on Mac this means that we should keep displaying the
layer tree from the previus process.

This patch moves the management of 'attaching' the drawing area (Mac only concept) from web process
to UI process. This is when we parent the layer tree to the view root layer. It also ensures that
the layer tree is not deleted too early on process swap and that it still eventually gets deleted.

  • UIProcess/DrawingAreaProxy.h:

(WebKit::DrawingAreaProxy::attachInWebProcess):

  • UIProcess/SuspendedPageProxy.cpp:

(WebKit::messageNamesToIgnoreWhileSuspended):
(WebKit::SuspendedPageProxy::tearDownDrawingAreaInWebProcess):

We no longer tear down drawing area (layer tree) for suspended pages automatically. Send an explicit
message for it.

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

(WebKit::WebPageProxy::reattachToWebProcess):

Only call didRelaunchProcess when process actually relaunched (not navigation process launch) to
match not calling processDidExit in resetStateAfterProcessExited.

(WebKit::WebPageProxy::didCompletePageTransition):

Attach the drawing area if appropriate.

(WebKit::WebPageProxy::decidePolicyForNavigationAction):

Send suspend message to WebPage immediately instead waiting for the runloop callback. This is needed so we
can avoid flashing the initial empty document load when the new Page object is created.

(WebKit::WebPageProxy::resetStateAfterProcessExited):

Don't call processDidExit when suspending, not exiting the process (this function needs a new name or rafactoring).
This avoids clearing the drawing area and flashing to black.

(WebKit::WebPageProxy::enterAcceleratedCompositingMode):

This is called when we have switched to the new layer tree.
Tear down the drawing area in the previus process.

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h:
  • UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:

(WebKit::TiledCoreAnimationDrawingAreaProxy::attachInWebProcess):

Send a message to the web process to attach the drawing area.

  • WebProcess/WebPage/DrawingArea.h:

(WebKit::DrawingArea::attach):
(WebKit::DrawingArea::attachDrawingArea): Deleted.

Rename to be less redundant.

  • WebProcess/WebPage/DrawingArea.messages.in:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::reinitializeWebPage):

Don't attach drawing area automatically. It will be done by a message from UI process.

(WebKit::WebPage::setLayerTreeStateIsFrozen):

Layer tree is always frozen in a suspended process (if it exists).

(WebKit::WebPage::didStartPageTransition):
(WebKit::WebPage::didCompletePageTransition):

Notify UI process of transition completion.

(WebKit::WebPage::setIsSuspended):
(WebKit::WebPage::tearDownDrawingAreaForSuspend):

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

(WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):

Don't attach drawing area automatically. It will be done by a message from UI process.

(WebKit::TiledCoreAnimationDrawingArea::attach):
(WebKit::TiledCoreAnimationDrawingArea::attachDrawingArea): Deleted.

8:40 AM Changeset in webkit [236137] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/JavaScriptCore

Merge r235612 - [WPE][GTK] Add more unused result warnings to JSC API
https://bugs.webkit.org/show_bug.cgi?id=189243

Reviewed by Carlos Garcia Campos.

The jsc_context_evaluate() family of functions has a (transfer full) return value, but the
caller may be tempted to not inspect it if uninterested in the return value. This would be
an error, because it must be freed.

  • API/glib/JSCContext.h:
8:40 AM Changeset in webkit [236136] by Carlos Garcia Campos
  • 11 edits
    1 add in releases/WebKitGTK/webkit-2.22

Merge r235605 - The watchdog sometimes fails to terminate a script.
https://bugs.webkit.org/show_bug.cgi?id=189227
<rdar://problem/39932857>

Reviewed by Saam Barati.

JSTests:

  • stress/regress-189227-watchdog-on-infinite-loop.js: Added.

Source/JavaScriptCore:

Consider the following scenario:

  1. We have an infinite loop bytecode sequence as follows:

[ 13] loop_hint
[ 14] check_traps
[ 15] jmp -2(->13)

  1. The VM tiers up from LLInt -> BaselineJIT -> DFG -> FTL.

Note that op_check_traps is represented as a CheckTraps node in the DFG and FTL.
When we're not using pollingTraps (JSC_usePollingTraps is false by default),
we emit no code for CheckTraps, but only record an InvalidationPoint there.

  1. The watchdog fires, and invalidates all InvalidationPoints in the FTL CodeBlock.

InvalidationPoints OSR exits to the next instruction by design. In this case,
that means the VM will resumes executing at the op_jmp, which jumps to the
op_loop_hint opcode. At the loop_hint, the VM discovers that the function is
already hot, and attempts to tier up. It immediately discovers that a replacement
CodeBlock is available because we still haven't jettisoned the DFG CodeBlock
nor the FTL CodeBlock that was previously compiled for this function.

Note that jettisoning a CodeBlock necessarily means the VM will invalidate
its InvalidationPoints (if the CodeBlock is DFG/FTL). However, the reverse
is not true: merely invalidating the InvalidationPoints does not necessarily
mean that the CodeBlock is jettisoned.

VMTraps::tryInstallTrapBreakpoints() runs from a separate thread. Hence,
it is only safe for it to invalidate a CodeBlock's InvalidationPoints. It
is not safe for the CodeBlock to be jettisoned from another thread. Instead,
the VMTraps mechanism relies on the script thread running to an op_check_traps
in the baseline JIT code where it will do the necessary jettisoning of optimized
CodeBlocks.

Since the op_check_traps never get executed, the VM will perpetually tier up in
the op_loop_hint, OSR exit to the op_jmp, jump to the op_loop_hint, and repeat.
Consequently, the watchdog fails to terminate this script.

In this patch, we fix this by making the DFG BytecodeParser emit an InvalidationPoint
node directly (when the VM is not configured to use polling traps). This ensures
that the check traps invalidation point will OSR exit to the op_check_traps opcode
in the baseline JIT.

In this patch, we also change VMTraps::tryInstallTrapBreakpoints() to use
CallFrame::unsafeCodeBlock() instead of CallFrame::codeBlock(). This is because
we don't really know if the frame is properly set up. We're just conservatively
probing the stack. ASAN does not like this probing. Using unsafeCodeBlock() here
will suppress the false positive ASAN complaint.

  • dfg/DFGByteCodeParser.cpp:

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

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGPredictionPropagationPhase.cpp:
  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileCheckTraps):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

  • ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileNode):

  • runtime/VMTraps.cpp:

(JSC::VMTraps::tryInstallTrapBreakpoints):

8:40 AM Changeset in webkit [236135] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.22/Source/JavaScriptCore

Merge r235603 - CallFrame::unsafeCallee() should use an ASAN suppressed Register::asanUnsafePointer().
https://bugs.webkit.org/show_bug.cgi?id=189247

Reviewed by Saam Barati.

  • interpreter/CallFrame.h:

(JSC::ExecState::unsafeCallee const):

  • interpreter/Register.h:

(JSC::Register::asanUnsafePointer const):
(JSC::Register::unsafePayload const):

8:39 AM Changeset in webkit [236134] by Carlos Garcia Campos
  • 7 edits in releases/WebKitGTK/webkit-2.22

Merge r235602 - REGRESSION: Layout Test http/tests/security/bypassing-cors-checks-for-extension-urls.html is Flaky
https://bugs.webkit.org/show_bug.cgi?id=187658
<rdar://problem/42306442>

Reviewed by Alexey Proskuryakov.

Source/WebCore:

Test is flaky as a previous test was setting the isRunningUserScripts state on the Page and it was never reset.
This patch moves this state to the topDocument so that it will be reset for every navigation.
Covered by existing test being no longer flaky.

  • dom/Document.h:

(WebCore::Document::setAsRunningUserScripts):
(WebCore::Document::isRunningUserScripts const):

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::DocumentThreadableLoader):

  • page/Frame.cpp:

(WebCore::Frame::injectUserScriptImmediately):

  • page/Page.h:

(WebCore::Page::setAsRunningUserScripts): Deleted.
(WebCore::Page::isRunningUserScripts const): Deleted.

  • testing/Internals.cpp:

(WebCore::Internals::setAsRunningUserScripts):

LayoutTests:

  • platform/mac-wk2/TestExpectations:
8:39 AM Changeset in webkit [236133] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.22

Merge r235590 - REGRESSION (r191336): RenderFlexibleBox::adjustChildSizeForMinAndMax crashes in std::optional<>::value()
https://bugs.webkit.org/show_bug.cgi?id=189232
<rdar://problem/43886373>

Reviewed by Brent Fulgham.

Source/WebCore:

It's not guaranteed that RenderFlexibleBox::computeMainAxisExtentForChild() always returns with a valid value.

Test: fast/flexbox/crash-when-min-max-content-is-not-computed.html

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax):

LayoutTests:

  • fast/flexbox/crash-when-min-max-content-is-not-computed-expected.txt: Added.
  • fast/flexbox/crash-when-min-max-content-is-not-computed.html: Added.
8:39 AM Changeset in webkit [236132] by Carlos Garcia Campos
  • 3 edits
    1 add in releases/WebKitGTK/webkit-2.22

Merge r235582 - Function object should convert params to string before throw a parsing error
https://bugs.webkit.org/show_bug.cgi?id=188874

Reviewed by Darin Adler.

JSTests:

  • stress/function-body-to-string-before-parameter-syntax-check.js: Added.

(shouldThrow):

Source/JavaScriptCore:

ToString operation onto the body of the Function constructor should be performed
before checking syntax correctness of the parameters.

  • runtime/FunctionConstructor.cpp:

(JSC::constructFunctionSkippingEvalEnabledCheck):

8:39 AM Changeset in webkit [236131] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r235573 - Compilation error in FormData.cpp: incomplete type 'WebCore::SharedBuffer'
https://bugs.webkit.org/show_bug.cgi?id=189207

Reviewed by Youenn Fablet.

If FormData.cpp is compiled alone (non-unified) or if it is the first file compiled in
a unified build, SharedBuffer.h is not included.

  • platform/network/FormData.cpp:
8:39 AM Changeset in webkit [236130] by Carlos Garcia Campos
  • 13 edits
    2 copies
    2 moves in releases/WebKitGTK/webkit-2.22

Merge r235569 - Storage Access API: Maintain access through same-site navigations
https://bugs.webkit.org/show_bug.cgi?id=188564
<rdar://problem/43445160>

Reviewed by Alex Christensen.

Source/WebCore:

Tests: http/tests/storageAccess/request-and-grant-access-then-navigate-cross-site-should-not-have-access.html

http/tests/storageAccess/request-and-grant-access-then-navigate-same-site-should-have-access.html

  • dom/Document.h:

Removed unused member variable m_hasFrameSpecificStorageAccess.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::willSendRequest):

  • loader/FrameLoaderClient.h:

Source/WebKit:

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchWillChangeDocument):

Now takes the current URL and the new URL as parameters
and only clears out storage access if the navigation is
cross-site, i.e. with differing eTLD+1s.

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:

LayoutTests:

  • http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-and-access-from-right-frame-expected.txt:
  • http/tests/storageAccess/request-and-grant-access-cross-origin-sandboxed-iframe-from-prevalent-domain-with-user-interaction-and-access-from-right-frame.html:

Added both a same-site and a cross-site navigation to the sub frame to test maintained and cleared access.

  • http/tests/storageAccess/request-and-grant-access-then-navigate-cross-site-should-not-have-access-expected.txt: Copied from LayoutTests/http/tests/storageAccess/request-and-grant-access-then-navigate-should-not-have-access-expected.txt.
  • http/tests/storageAccess/request-and-grant-access-then-navigate-cross-site-should-not-have-access.html: Copied from LayoutTests/http/tests/storageAccess/request-and-grant-access-then-navigate-should-not-have-access.html.
  • http/tests/storageAccess/request-and-grant-access-then-navigate-same-site-should-have-access-expected.txt: Renamed from LayoutTests/http/tests/storageAccess/request-and-grant-access-then-navigate-should-not-have-access-expected.txt.
  • http/tests/storageAccess/request-and-grant-access-then-navigate-same-site-should-have-access.html: Renamed from LayoutTests/http/tests/storageAccess/request-and-grant-access-then-navigate-should-not-have-access.html.
  • http/tests/storageAccess/resources/get-cookies.php:

Support for the new test scenarios.

  • http/tests/storageAccess/resources/self-navigating-frame-after-granted-access.html:

Support for the new test scenarios.

  • platform/mac-wk2/TestExpectations:

Marked the new and the renamed tests as [ Pass ].

8:39 AM Changeset in webkit [236129] by Carlos Garcia Campos
  • 17 edits in releases/WebKitGTK/webkit-2.22/Source

Merge r235562 - Assertion hit in ~CompletionHandler() from ~WebFrame()
https://bugs.webkit.org/show_bug.cgi?id=189199
<rdar://problem/42657233>

Reviewed by Youenn Fablet.

Source/WebCore:

The issue was caused by WebFrame::m_willSubmitFormCompletionHandlers implicitly containing
CompletionHandlers (wrapped in WTF::Functions) and not calling them upon WebFrame
destruction.

No new tests, covered by fast/frames/iframe-target.html.

  • loader/EmptyClients.cpp:

(WebCore::EmptyFrameLoaderClient::dispatchWillSubmitForm):

  • loader/EmptyFrameLoaderClient.h:
  • loader/FrameLoaderClient.h:

Source/WebKit:

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchWillSubmitForm):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::~WebFrame):
(WebKit::WebFrame::setUpWillSubmitFormListener):
(WebKit::WebFrame::invalidatePolicyListener):

  • WebProcess/WebPage/WebFrame.h:

Source/WebKitLegacy/mac:

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

(WebFrameLoaderClient::dispatchWillSubmitForm):

Source/WebKitLegacy/win:

  • WebCoreSupport/WebFrameLoaderClient.cpp:

(WebFrameLoaderClient::dispatchWillSubmitForm):

  • WebCoreSupport/WebFrameLoaderClient.h:
8:39 AM Changeset in webkit [236128] by Carlos Garcia Campos
  • 4 edits
    1 add in releases/WebKitGTK/webkit-2.22

Merge r235558 - Fix exception check accounting in constructJSWebAssemblyCompileError().
https://bugs.webkit.org/show_bug.cgi?id=189185
<rdar://problem/39786007>

Reviewed by Michael Saboff.

JSTests:

  • stress/regress-189185.js: Added.

(new.WebAssembly.CompileError.valueOf):

Source/JavaScriptCore:

Also add an exception check in JSWebAssemblyModule::createStub() so that we don't
inadvertently overwrite a pre-existing exception (if present).

  • wasm/js/JSWebAssemblyModule.cpp:

(JSC::JSWebAssemblyModule::createStub):

  • wasm/js/WebAssemblyCompileErrorConstructor.cpp:

(JSC::constructJSWebAssemblyCompileError):

8:38 AM Changeset in webkit [236127] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/JavaScriptCore

Merge r235557 - Gardening: ARMv7 build fix.
https://bugs.webkit.org/show_bug.cgi?id=158911

Not reviewed.

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::patchableBranch8):

8:13 AM Changeset in webkit [236126] by Manuel Rego Casasnovas
  • 4 edits in trunk

[css-grid] Static position should use content-box, not padding-box
https://bugs.webkit.org/show_bug.cgi?id=189698

Reviewed by Javier Fernandez.

LayoutTests/imported/w3c:

  • web-platform-tests/css/css-grid/abspos/absolute-positioning-grid-container-parent-001.html:

Update tests from WPT.

Source/WebCore:

This is a recent change by the CSSWG:
https://github.com/w3c/csswg-drafts/issues/3020

The spec text (https://drafts.csswg.org/css-grid/#static-position):

"The static position of an absolutely-positioned child

of a grid container is determined as if it were the sole grid item
in a grid area whose edges coincide with the content edges
of the grid container."

Test: imported/w3c/web-platform-tests/css/css-grid/abspos/absolute-positioning-grid-container-parent-001.html

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::prepareChildForPositionedLayout):
Simple change to use border and padding.

7:50 AM Changeset in webkit [236125] by Claudio Saavedra
  • 3 edits in trunk/LayoutTests

[WPE] Gardening after r236124

Quick gardening. There might be more tests that are now passing or
need updated results but this was the most obvious for now.
Unreviewed gardening.

  • platform/wpe/TestExpectations:
  • platform/wpe/svg/custom/pan-direction-expected.txt:
6:44 AM Changeset in webkit [236124] by Claudio Saavedra
  • 4 edits in trunk

[WPE] Implement mouse event modifiers
https://bugs.webkit.org/show_bug.cgi?id=189697

Reviewed by Carlos Garcia Campos.

Source/WebKit:

Only "CapsLocks" is missing, as WPE doesn't support that modifier.

  • Shared/wpe/WebEventFactory.cpp:

(WebKit::modifiersForEventModifiers):
(WebKit::WebEventFactory::createWebKeyboardEvent):
(WebKit::WebEventFactory::createWebMouseEvent):
(WebKit::modifiersForEvent): Deleted.

Tools:

  • WebKitTestRunner/wpe/EventSenderProxyWPE.cpp:

(WTR::wkEventModifiersToWPE):
(WTR::EventSenderProxy::mouseDown):
(WTR::EventSenderProxy::mouseUp):

6:32 AM Changeset in webkit [236123] by Carlos Garcia Campos
  • 3 edits
    1 add in releases/WebKitGTK/webkit-2.22

Merge r235554 - Fix exception check accounting in JSDataView::defineOwnProperty().
https://bugs.webkit.org/show_bug.cgi?id=189186
<rdar://problem/39786049>

Reviewed by Michael Saboff.

JSTests:

  • stress/regress-189186.js: Added.

Source/JavaScriptCore:

  • runtime/JSDataView.cpp:

(JSC::JSDataView::defineOwnProperty):

6:32 AM Changeset in webkit [236122] by Carlos Garcia Campos
  • 3 edits
    1 add in releases/WebKitGTK/webkit-2.22

Merge r235540 - Add missing exception check in arrayProtoFuncLastIndexOf().
https://bugs.webkit.org/show_bug.cgi?id=189184
<rdar://problem/39785959>

Reviewed by Yusuke Suzuki.

JSTests:

  • stress/regress-189184.js: Added.

Source/JavaScriptCore:

  • runtime/ArrayPrototype.cpp:

(JSC::arrayProtoFuncLastIndexOf):

6:32 AM Changeset in webkit [236121] by Carlos Garcia Campos
  • 6 edits
    1 add in releases/WebKitGTK/webkit-2.22

Merge r235538 - convertToRegExpMatchFastGlobal must use KnownString as the child use kind
https://bugs.webkit.org/show_bug.cgi?id=189173
<rdar://problem/43501645>

Reviewed by Michael Saboff.

JSTests:

  • stress/may-exit-should-be-false-regexp-constant-folding.js: Added.

(foo):
(bar):

Source/JavaScriptCore:

We were crashing during validation because mayExit returned true
at a point in the program when we weren't allowed to exit.

The issue was is in StrengthReduction: we end up emitting code that
had a StringUse on an edge after a node that did side effects and before
an ExitOK/bytecode number transition. However, StrenghReduction did the
right thing here and also emitted the type checks before the node with
side effects. It just did bad bookkeeping. The node we convert to needs
to use KnownStringUse instead of StringUse for the child edge.

  • dfg/DFGNode.cpp:

(JSC::DFG::Node::convertToRegExpExecNonGlobalOrStickyWithoutChecks):
(JSC::DFG::Node::convertToRegExpMatchFastGlobalWithoutChecks):
(JSC::DFG::Node::convertToRegExpExecNonGlobalOrSticky): Deleted.
(JSC::DFG::Node::convertToRegExpMatchFastGlobal): Deleted.

  • dfg/DFGNode.h:
  • dfg/DFGStrengthReductionPhase.cpp:

(JSC::DFG::StrengthReductionPhase::handleNode):

6:31 AM Changeset in webkit [236120] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.22

Merge r235537 - CounterMaps should hold a unique_ptr of CounterMap.
https://bugs.webkit.org/show_bug.cgi?id=189174
<rdar://problem/43686458>

Reviewed by Ryosuke Niwa.

Source/WebCore:

In certain cases calls to CounterMaps might lead to unexpected deletion of the CounterMap object.

Test: fast/css/counters/crash-when-cloning-body.html

  • rendering/RenderCounter.cpp:

(WebCore::makeCounterNode):
(WebCore::destroyCounterNodeWithoutMapRemoval):
(WebCore::RenderCounter::destroyCounterNodes):
(WebCore::RenderCounter::destroyCounterNode):
(WebCore::updateCounters):
(showCounterRendererTree):

LayoutTests:

  • fast/css/counters/crash-when-cloning-body-expected.txt: Added.
  • fast/css/counters/crash-when-cloning-body.html: Added.
6:31 AM Changeset in webkit [236119] by Carlos Garcia Campos
  • 7 edits in releases/WebKitGTK/webkit-2.22/Source/JavaScriptCore

Merge r235527 - Switch int8_t to GPRReg in StructureStubInfo because sizeof(GPRReg) == sizeof(int8_t)
https://bugs.webkit.org/show_bug.cgi?id=189166

Reviewed by Mark Lam.

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::generateImpl):

  • bytecode/GetterSetterAccessCase.cpp:

(JSC::GetterSetterAccessCase::emitDOMJITGetter):

  • bytecode/InlineAccess.cpp:

(JSC::getScratchRegister):

  • bytecode/PolymorphicAccess.cpp:

(JSC::PolymorphicAccess::regenerate):

  • bytecode/StructureStubInfo.h:

(JSC::StructureStubInfo::valueRegs const):

  • jit/JITInlineCacheGenerator.cpp:

(JSC::JITByIdGenerator::JITByIdGenerator):
(JSC::JITGetByIdWithThisGenerator::JITGetByIdWithThisGenerator):
(JSC::JITInstanceOfGenerator::JITInstanceOfGenerator):

6:31 AM Changeset in webkit [236118] by Carlos Garcia Campos
  • 52 edits in releases/WebKitGTK/webkit-2.22/Source

Merge r235521 - Bundle unified sources more tightly in projects with deep directory structures
https://bugs.webkit.org/show_bug.cgi?id=189009

Reviewed by Simon Fraser.

  • Scripts/generate-unified-source-bundles.rb:

It turns out our plan to switch unified source bundle every time the directory
changes is not a good fit for projects like WebKit2 with many small directories.
It leaves many unified source bundles with only a single source file,
achieving only ~40% density.

Instead, switch unified source bundles every time the top-level directory changes.
This still achieves the goal of *usually* only rebuilding the one top-level
directory you touched, and increases source bundle density wildly, to ~95%.

Fix a variety of unification errors due to reshuffling the bundles.

  • Modules/mediastream/RTCController.cpp:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • crypto/algorithms/CryptoAlgorithmECDSA.cpp:

(WebCore::CryptoAlgorithmECDSA::importKey):

  • dom/Document.h:
  • html/parser/HTMLTreeBuilder.cpp:
  • loader/appcache/ApplicationCacheResourceLoader.h:
  • page/AlternativeTextClient.h:
  • platform/Pasteboard.h:
  • platform/graphics/DisplayRefreshMonitor.cpp:
  • platform/graphics/FontFamilySpecificationNull.cpp:
  • platform/graphics/cocoa/WebGLLayer.mm:

(-[WebGLLayer initWithGraphicsContext3D:]):
(-[WebGLLayer copyImageSnapshotWithColorSpace:]):
(-[WebGLLayer display]):
(-[WebGLLayer allocateIOSurfaceBackingStoreWithSize:usingAlpha:]):

  • platform/graphics/cocoa/WebGPULayer.mm:

(-[WebGPULayer initWithGPUDevice:]):

  • platform/graphics/metal/GPUCommandQueueMetal.mm:
  • platform/mac/PasteboardMac.mm:
  • platform/mediastream/mac/DisplayCaptureManagerCocoa.cpp:
  • platform/network/ResourceRequestBase.cpp:
  • rendering/updating/RenderTreeBuilderBlockFlow.cpp:
  • rendering/updating/RenderTreeBuilderInline.cpp:
  • Shared/APIWebArchive.mm:
  • Shared/APIWebArchiveResource.mm:
  • Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm:
  • Shared/Plugins/Netscape/mac/PluginInformationMac.mm:
  • SourcesCocoa.txt:
  • SourcesGTK.txt:
  • UIProcess/API/APIAutomationSessionClient.h:

(API::AutomationSessionClient::sessionIdentifier const):
(API::AutomationSessionClient::messageOfCurrentJavaScriptDialogOnPage):
(API::AutomationSessionClient::setUserInputForCurrentJavaScriptPromptOnPage):

  • UIProcess/Cocoa/LegacyCustomProtocolManagerClient.mm:

(-[WKCustomProtocolLoader initWithLegacyCustomProtocolManagerProxy:customProtocolID:request:]):
(-[WKCustomProtocolLoader connection:didFailWithError:]):
(-[WKCustomProtocolLoader connection:didReceiveResponse:]):

  • UIProcess/Plugins/PluginProcessProxy.cpp:

(WebKit::generatePluginProcessCallbackID):
(WebKit::PluginProcessProxy::fetchWebsiteData):
(WebKit::PluginProcessProxy::deleteWebsiteData):
(WebKit::PluginProcessProxy::deleteWebsiteDataForHostNames):
(WebKit::generateCallbackID): Deleted.

  • UIProcess/RemoteLayerTree/ios/ScrollingTreeScrollingNodeDelegateIOS.mm:

(-[WKScrollingNodeScrollViewDelegate scrollViewWillEndDragging:withVelocity:targetContentOffset:]):

  • UIProcess/Storage/StorageProcessProxy.cpp:

(WebKit::generateStorageProcessCallbackID):
(WebKit::StorageProcessProxy::fetchWebsiteData):
(WebKit::StorageProcessProxy::deleteWebsiteData):
(WebKit::StorageProcessProxy::deleteWebsiteDataForOrigins):
(WebKit::generateCallbackID): Deleted.

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(-[WKPDFPluginAccessibilityObject accessibilityPerformAction:]):
(-[WKPDFPluginAccessibilityObject accessibilityFocusedUIElement]):
(-[WKPDFPluginAccessibilityObject accessibilityAssociatedControlForAnnotation:]):
(-[WKPDFPluginAccessibilityObject accessibilityHitTest:]):
(-[WKPDFLayerControllerDelegate updateScrollPosition:]):
(WebKit::PDFPlugin::updateCursor):
(WebKit::coreCursor):
(appendValuesInPDFNameSubtreeToVector): Deleted.
(getAllValuesInPDFNameTree): Deleted.
(getAllScriptsInPDFDocument): Deleted.

6:31 AM Changeset in webkit [236117] by Carlos Garcia Campos
  • 11 edits in releases/WebKitGTK/webkit-2.22/Source/JavaScriptCore

Merge r235517 - InlineAccess should do StringLength
https://bugs.webkit.org/show_bug.cgi?id=158911

Reviewed by Yusuke Suzuki.

This patch extends InlineAccess to support StringLength. This patch also
fixes AccessCase::fromStructureStubInfo to support ArrayLength and StringLength.
I forgot to implement this for ArrayLength in the initial InlineAccess
implementation. Supporting StringLength is a natural extension of the
InlineAccess machinery.

  • assembler/MacroAssembler.h:

(JSC::MacroAssembler::patchableBranch8):

  • assembler/MacroAssemblerARM64.h:

(JSC::MacroAssemblerARM64::patchableBranch8):

  • bytecode/AccessCase.cpp:

(JSC::AccessCase::fromStructureStubInfo):

  • bytecode/BytecodeDumper.cpp:

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

  • bytecode/InlineAccess.cpp:

(JSC::InlineAccess::dumpCacheSizesAndCrash):
(JSC::InlineAccess::generateSelfPropertyAccess):
(JSC::getScratchRegister):
(JSC::InlineAccess::generateSelfPropertyReplace):
(JSC::InlineAccess::generateArrayLength):
(JSC::InlineAccess::generateSelfInAccess):
(JSC::InlineAccess::generateStringLength):

  • bytecode/InlineAccess.h:
  • bytecode/PolymorphicAccess.cpp:

(JSC::PolymorphicAccess::regenerate):

  • bytecode/StructureStubInfo.cpp:

(JSC::StructureStubInfo::initStringLength):
(JSC::StructureStubInfo::deref):
(JSC::StructureStubInfo::aboutToDie):
(JSC::StructureStubInfo::propagateTransitions):

  • bytecode/StructureStubInfo.h:

(JSC::StructureStubInfo::baseGPR const):

  • jit/Repatch.cpp:

(JSC::tryCacheGetByID):

6:30 AM Changeset in webkit [236116] by Carlos Garcia Campos
  • 6 edits
    2 adds in releases/WebKitGTK/webkit-2.22

Merge r235515 - CSE DataViewGet* DFG nodes
https://bugs.webkit.org/show_bug.cgi?id=188768

Reviewed by Yusuke Suzuki.

JSTests:

  • microbenchmarks/dataview-cse.js: Added.

(assert):
(test):

  • stress/dataview-get-cse.js: Added.

(assert):
(test1.foo):
(test1):
(test2.foo):
(test2):
(test3.foo):
(test3):
(test4.foo):
(test4):
(test5.foo):
(test5):
(test6.foo):
(test6):

Source/JavaScriptCore:

This patch makes it so that we CSE DataViewGet* accesses. To do this,
I needed to add a third descriptor to HeapLocation to represent the
isLittleEndian child. This patch is neutral on compile time benchmarks,
and is a 50% speedup on a trivial CSE microbenchmark that I added.

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGHeapLocation.cpp:

(WTF::printInternal):

  • dfg/DFGHeapLocation.h:

(JSC::DFG::HeapLocation::HeapLocation):
(JSC::DFG::HeapLocation::hash const):
(JSC::DFG::HeapLocation::operator== const):
(JSC::DFG::indexedPropertyLocForResultType):

6:30 AM Changeset in webkit [236115] by Carlos Garcia Campos
  • 4 edits
    1 add in releases/WebKitGTK/webkit-2.22

Merge r235514 - output of toString() of Generator is wrong
https://bugs.webkit.org/show_bug.cgi?id=188952

Reviewed by Saam Barati.

JSTests:

  • stress/function-to-string.js: Added.

(shouldBe):
(shouldBe.test):
(test):
(shouldBe.async.test):
(async.test):
(shouldBe.async):
(async):

  • test262/expectations.yaml:

Source/JavaScriptCore:

Function#toString does not respect generator and async generator.
This patch fixes them and supports all the function types.

  • runtime/FunctionPrototype.cpp:

(JSC::functionProtoFuncToString):

6:30 AM Changeset in webkit [236114] by Carlos Garcia Campos
  • 4 edits
    1 add in releases/WebKitGTK/webkit-2.22

Merge r235491 - Add some missing exception checks in JSRopeString::resolveRopeToAtomicString().
https://bugs.webkit.org/show_bug.cgi?id=189132
<rdar://problem/42513068>

Reviewed by Saam Barati.

JSTests:

  • stress/regress-189132.js: Added.

Source/JavaScriptCore:

  • runtime/JSCJSValueInlines.h:

(JSC::JSValue::toPropertyKey const):

  • runtime/JSString.cpp:

(JSC::JSRopeString::resolveRopeToAtomicString const):

2:47 AM Changeset in webkit [236113] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.22

Merge r235485 - REGRESSION (r226138): WebCore::subdivide() may return an empty vector; Web process can crash when performing find in Epiphany
https://bugs.webkit.org/show_bug.cgi?id=184390
<rdar://problem/41804994>
And
<rdar://problem/39771867>

Reviewed by Simon Fraser.

Source/WebCore:

Speculative fix for Epiphany.

In theory, WebCore::subdivide() should never return an empty vector - no subdivisions - as such a
result represents a programmer error. In practice, InlineTextBox can invoke WebCore::subdivide()
such that it returns an empty vector. One way this can happen is when subdividing an empty inline
text box associated with combined text (RenderCombineText). For now we add a check to bail out of
resolving the style of subdivisions when WebCore::subdivide() returns no subdivisions. In a
subsequent patch we will look to assert that WebCore::subdivide() always returns subdivisions.

Test: fast/text/text-combine-surroundContents-crash.html

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::subdivideAndResolveStyle):

LayoutTests:

Add a test to ensure that we do not crash when painting an empty inline text box associated
with combined text.

  • fast/text/text-combine-surroundContents-crash-expected.txt: Added.
  • fast/text/text-combine-surroundContents-crash.html: Added.
2:47 AM Changeset in webkit [236112] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.22

Merge r235457 - Check for null renderer in canBeScrolledIntoView
https://bugs.webkit.org/show_bug.cgi?id=188935

Reviewed by Simon Fraser.

Source/WebCore:

Test: fast/spatial-navigation/snav-display-contents-crash.html

  • page/SpatialNavigation.cpp:

(WebCore::canBeScrolledIntoView):

LayoutTests:

  • fast/spatial-navigation/snav-display-contents-crash-expected.txt: Added.
  • fast/spatial-navigation/snav-display-contents-crash.html: Added.
2:16 AM Changeset in webkit [236111] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r235456 - IDBDatabase should not return true to hasPendingActivity after being stopped
https://bugs.webkit.org/show_bug.cgi?id=189073

Reviewed by Darin Adler.

There is a chance that IDBDatabase::hasPendingActivity returns true.
The case that might happen is when stop() is called but there are still some active/being committed transactions.
In that case, hasPendingActivity will return true until these transactions get finalized.
While these transactions will probably be finalized at some point, it delays GC for no good reason.
And we might want in a follow-up patch to assert that ActiveDOMObject are GC-able whenever their context is stopped.
For that purpose, make sure hasPendingActivity returns false when context is stopped.

  • Modules/indexeddb/IDBDatabase.cpp:

(WebCore::IDBDatabase::hasPendingActivity const):

2:16 AM Changeset in webkit [236110] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.22

Merge r235438 - MediaDevices should be collectable as soon as its document is stopped
https://bugs.webkit.org/show_bug.cgi?id=189021

Reviewed by Eric Carlson.

Source/WebCore:

Introduce ActiveDOMObject::isContextStopped to check whether the context is stopped.
Use this check in MediaDevices::hasPendingActivity so that it returns false as soon as active dom objects are stopped.

Test: http/tests/media/collect-media-devices.https.html

  • Modules/mediastream/MediaDevices.cpp:

(WebCore::MediaDevices::hasPendingActivity const):

  • dom/ActiveDOMObject.cpp:

(WebCore::ActiveDOMObject::hasPendingActivity const):
(WebCore::ActiveDOMObject::isContextStopped const):

  • dom/ActiveDOMObject.h:

LayoutTests:

  • http/tests/media/media-stream/collect-media-devices.https-expected.txt: Added.
  • http/tests/media/media-stream/collect-media-devices.https.html: Added.
  • http/tests/media/media-stream/resources/mymediadevicesframe.htm: Added.
2:16 AM Changeset in webkit [236109] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.22

Merge r235416 - Null pointer deref in WidthIterator
https://bugs.webkit.org/show_bug.cgi?id=188993

Reviewed by Brent Fulgham.

Source/WebCore:

Test: fast/text/rtl-justification.html

We simply need to guard glyphBuffer like we do in the rest of the function.

  • platform/graphics/WidthIterator.cpp:

(WebCore::WidthIterator::advanceInternal):

LayoutTests:

  • fast/text/rtl-justification-expected.html: Added.
  • fast/text/rtl-justification.html: Added.
2:16 AM Changeset in webkit [236108] by Carlos Garcia Campos
  • 6 edits
    6 adds in releases/WebKitGTK/webkit-2.22

Merge r235410 - Various IndexDB tests abandon documents
https://bugs.webkit.org/show_bug.cgi?id=188728
<rdar://problem/43651095>

Reviewed by Alex Christensen.

Source/WebCore:

Some IDB objects implement hasPendingActivity but there are some possibilities that they continue returning true after being stopped.
This is the case for requests that get stopped while still waiting for some pending activity.
This is also the case for requests that emits upgradeneeded or blocked events.

Enforce that these objects return false to hasPendingActivity once being stopped.
This ensures that they can be garbage collected once their context is preparing for destruction like in Document::prepareForDestruction.

Test: http/tests/IndexedDB/collect-IDB-objects.https.html

  • Modules/indexeddb/IDBIndex.cpp:

(WebCore::IDBIndex::hasPendingActivity const):

  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::hasPendingActivity const):

  • Modules/indexeddb/IDBRequest.cpp:

(WebCore::IDBRequest::hasPendingActivity const):
(WebCore::IDBRequest::enqueueEvent):

  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::notifyDidAbort):
In case the context is stopped, IDBTransaction should not ask IDBRequest to fire an event.

LayoutTests:

  • http/tests/IndexedDB/collect-IDB-objects.https-expected.txt: Added.
  • http/tests/IndexedDB/collect-IDB-objects.https.html: Added.
  • http/tests/IndexedDB/resources/myidbframe.htm: Added.
  • http/tests/IndexedDB/resources/support.js: Added.
2:16 AM Changeset in webkit [236107] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.22/Source/WebKit

Merge r235400 - Pass webPageID and webFrameID to NetworkLoad for speculative loads
https://bugs.webkit.org/show_bug.cgi?id=188682

Reviewed by Youenn Fablet.

This also removes an authentication shortcut I introduced in r234941

  • NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:

(WebKit::NetworkCache::SpeculativeLoad::SpeculativeLoad):
(WebKit::NetworkCache::SpeculativeLoad::didReceiveResponse):

  • Shared/Authentication/AuthenticationManager.cpp:

(WebKit::AuthenticationManager::didReceiveAuthenticationChallenge):

2:16 AM Changeset in webkit [236106] by Carlos Garcia Campos
  • 8 edits in releases/WebKitGTK/webkit-2.22

Merge r235360 - XMLHTTPRequest.send for Document should have same Content-Type processing rules as String
https://bugs.webkit.org/show_bug.cgi?id=188953

Patch by Rob Buis <rbuis@igalia.com> on 2018-08-27
Reviewed by Darin Adler.

LayoutTests/imported/w3c:

  • web-platform-tests/xhr/setrequestheader-content-type-expected.txt:

Source/WebCore:

Processing rules for Content-Type have been implemented for send with String as parameter, but
not for Document, but both should be treated the same according to the spec [1]. This patch
implements this.

Behavior matches Firefox.

[1] https://xhr.spec.whatwg.org/#the-send()-method

Test: web-platform-tests/XMLHttpRequest/setrequestheader-content-type.htm

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::send):

LayoutTests:

  • platform/gtk/imported/w3c/web-platform-tests/xhr/setrequestheader-content-type-expected.txt:
  • platform/ios/imported/w3c/web-platform-tests/xhr/setrequestheader-content-type-expected.txt:
  • platform/wpe/imported/w3c/web-platform-tests/xhr/setrequestheader-content-type-expected.txt:
2:15 AM Changeset in webkit [236105] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r235357 - Shrink size of HTMLCollection
https://bugs.webkit.org/show_bug.cgi?id=188945

Reviewed by Darin Adler.

Shrink the size of HTMLCollection by reordering members.

No behavior change.

  • html/HTMLCollection.cpp:

(WebCore::HTMLCollection::HTMLCollection):

  • html/HTMLCollection.h:
2:14 AM Changeset in webkit [236104] by calvaris@igalia.com
  • 8 edits in trunk

[EME][GStreamer] The current EME implementation doesn't support the waitingforkey event
https://bugs.webkit.org/show_bug.cgi?id=185590

Reviewed by Philippe Normand.

Source/WebCore:

When decryptors are blocked waiting for the key, instruct the
player to run the Wait for key algorithm. As per spec, if we run
out of blocks pending to decrypt because we don't have the key, we
request running the algorithm again.

Test: imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-waitingforkey.https.html.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:

(WebCore::MediaPlayerPrivateGStreamer::handleMessage):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::initializationDataEncountered):
(WebCore::MediaPlayerPrivateGStreamerBase::reportWaitingForKey):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
  • platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp:

(webkitMediaCommonEncryptionDecryptTransformInPlace):
(webkitMediaCommonEncryptionDecryptSinkEventHandler):

LayoutTests:

Updated status of
imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-waitingforkey.https
and expectations.

  • platform/wpe/TestExpectations:
  • platform/wpe/imported/w3c/web-platform-tests/encrypted-media/clearkey-mp4-playback-temporary-waitingforkey.https-expected.txt:
12:47 AM Changeset in webkit [236103] by rniwa@webkit.org
  • 6 edits in trunk

Update composedPath to match the latest spec
https://bugs.webkit.org/show_bug.cgi?id=180378
<rdar://problem/42843004>

Reviewed by Darin Adler.

LayoutTests/imported/w3c:

Rebaselined the test now that all test cases pass.

  • web-platform-tests/shadow-dom/event-composed-path-after-dom-mutation-expected.txt:

Source/WebCore:

This patch makes the check for whether a given node in the event path be included in composedPath
pre-determined at the time of the event dispatching per https://github.com/whatwg/dom/issues/525.
This was a fix for the issue that if an event listener in a closed shadow tree removes a node in the
same tree in the event path, then composedPath called on its shadow host, for example, will include
the removed node since it's no longer in the closed shadow tree.

Naively, implementing this behavior would require remembering the original document or shadow root
of each node in the event path as well as its parent shadow root, or worse which node is disclosed
to every other node at the time of computing the event path.

This patch takes a more novel and efficient approach to implement the new behavior by adding a single
integer indicating the number of closed-mode shadow root ancestors of each node in the event path.
In computePathUnclosedToTarget, any node whose *depth* is greater than the context object is excluded.

Consider the following example:
div ------- ShadowRoot (closed)

+- span +- slot

If an event is dispatched on span, then the event path would be [span, slot, ShadowRoot, div]. Then
the values of integers assigned to each node would be: [0, 1, 1, 0] respectively. When composedPath
is called on span or div, slot and ShadowRoot are excluded because they have a greater *depth* value.

Unfortunately, this simplistic solution doesn't work when there are multiple shadow roots of the same
depth through which an event is dispatched as in:
section -- ShadowRoot (closed, SR2)

| +- slot (s2)
+div ------ ShadowRoot (closed, SR1)

+- span +- slot (s1)

If an event is dispatched on span, the event path would be [span, s1, SR1, div, s2, SR2, section].
The values of integers assigned are: [0, 1, 1, 0, 1, 1, 0] respectively. When composedPath is called
on SR1, the simplistic approach would include s2 and SR2, which would be wrong.

To account for this case, in computePathUnclosedToTarget, we traverse the event path upwards (i.e.
ancestors) and downwards (i.e. descendants) from the context object and decrease the *allowed depth*
of shadow trees when we traverse out of a shadow tree in either direction. When traversing upwards,
therefore, moving out of a shadow root to its host would would decrease the allowed depth. When
traversing dowards, moving from a slot element to its assigned node would decrease the allowed depth.

Note that the depths can be negative when a composed event is dispatched inside a closed shadow tree,
and it gets out of its shadow host.

Unfortunately, the latest DOM specification has a bug and doesn't match the behavior of Chrome. This
patch proposes a new algorithm which can be adopted in https://github.com/whatwg/dom/issues/684.

Test: imported/w3c/web-platform-tests/shadow-dom/event-composed-path-after-dom-mutation.html

  • dom/EventContext.cpp:

(WebCore::EventContext::EventContext):
(WebCore::MouseOrFocusEventContext::MouseOrFocusEventContext):
(WebCore::TouchEventContext::TouchEventContext):

  • dom/EventContext.h:

(WebCore::EventContext::closedShadowDepth const): Added.

  • dom/EventPath.cpp:

(WebCore::WindowEventContext::WindowEventContext):
(WebCore::EventPath::buildPath): Compute the closed shadow tree's depths for each node in the path.
(WebCore::computePathUnclosedToTarget const): Implemented the aforementioned algorithm.
(WebCore::EventPath::EventPath):

Sep 17, 2018:

11:36 PM Changeset in webkit [236102] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebKit

Unreviewed build fix after r236101.

  • UIProcess/WebResourceLoadStatisticsStore.cpp:

(WebKit::WebResourceLoadStatisticsStore::flushAndDestroyPersistentStore):
Correct a BinarySemaphore::wait() call which now accepts no arguments.

10:47 PM Changeset in webkit [236101] by yusukesuzuki@slowstart.org
  • 28 edits
    1 add in trunk

[WTF] Use Semaphore and BinarySemaphore instead of dispatch_semaphore_t
https://bugs.webkit.org/show_bug.cgi?id=185339

Patch by Yusuke Suzuki <Yusuke Suzuki> on 2018-09-17
Reviewed by Mark Lam.

Source/WebCore:

  • fileapi/ThreadableBlobRegistry.cpp:

(WebCore::ThreadableBlobRegistry::blobSize):

  • platform/cocoa/NetworkExtensionContentFilter.h:
  • platform/cocoa/NetworkExtensionContentFilter.mm:

(WebCore::NetworkExtensionContentFilter::initialize):
(WebCore::NetworkExtensionContentFilter::willSendRequest):
(WebCore::NetworkExtensionContentFilter::responseReceived):
(WebCore::NetworkExtensionContentFilter::addData):
(WebCore::NetworkExtensionContentFilter::finishedAddingData):
(WebCore::NetworkExtensionContentFilter::handleDecision):
Use per-function BinarySemaphore instead of holding it in NetworkExtensionContentFilter's field.

  • platform/glib/FileMonitorGLib.cpp:

(WebCore::FileMonitor::FileMonitor):
(WebCore::FileMonitor::~FileMonitor):

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC):
(WebCore::MediaPlayerPrivateAVFoundationObjC::~MediaPlayerPrivateAVFoundationObjC):
(WebCore::MediaPlayerPrivateAVFoundationObjC::waitForVideoOutputMediaDataWillChange):
(WebCore::MediaPlayerPrivateAVFoundationObjC::outputMediaDataWillChange):
Use BinarySemaphore. And remove unused dispatch_semaphore_t.

  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
  • platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:

(-[WebAVStreamDataParserListener streamDataParserWillProvideContentKeyRequestInitializationData:forTrackID:]):
(-[WebAVStreamDataParserListener streamDataParser:didProvideContentKeyRequestInitializationData:forTrackID:]):
(WebCore::SourceBufferPrivateAVFObjC::SourceBufferPrivateAVFObjC):
(WebCore::SourceBufferPrivateAVFObjC::~SourceBufferPrivateAVFObjC):
(WebCore::SourceBufferPrivateAVFObjC::didProvideContentKeyRequestInitializationDataForTrackID):
(WebCore::SourceBufferPrivateAVFObjC::abort):
(WebCore::SourceBufferPrivateAVFObjC::setCDMSession):
(WebCore::SourceBufferPrivateAVFObjC::setCDMInstance):
Use Box<Semaphore> and Box<BinarySemaphore>.

  • platform/graphics/cocoa/WebCoreDecompressionSession.h:
  • platform/graphics/cocoa/WebCoreDecompressionSession.mm:

(WebCore::WebCoreDecompressionSession::WebCoreDecompressionSession):
Remove unused dispatch_semaphore_t.

  • platform/network/cf/ResourceHandleCFNet.cpp:

(WebCore::ResourceHandle::platformLoadResourceSynchronously):

  • platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:

(WebCore::getRunLoop):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::willSendRequest):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveResponse):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::willCacheResponse):
(WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::canRespondToProtectionSpace):

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

(-[WebCoreResourceHandleAsOperationQueueDelegate initWithHandle:messageQueue:]):
(-[WebCoreResourceHandleAsOperationQueueDelegate detachHandle]):
(-[WebCoreResourceHandleAsOperationQueueDelegate dealloc]):
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:willSendRequest:redirectResponse:]):
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:canAuthenticateAgainstProtectionSpace:]):
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:]):
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:willCacheResponse:]):
Use BinarySemaphore instead.

Source/WebKit:

  • Platform/IPC/Connection.cpp:

(IPC::Connection::SyncMessageState::wait):

  • Shared/mac/SecItemShim.cpp:

(WebKit::sendSecItemRequest):
Use BinarySemaphore.

  • UIProcess/ResourceLoadStatisticsPersistentStorage.cpp:

(WebKit::ResourceLoadStatisticsPersistentStorage::finishAllPendingWorkSynchronously):

  • UIProcess/WebStorage/StorageManager.cpp:

(WebKit::StorageManager::applicationWillTerminate):

  • UIProcess/ios/WKActionSheetAssistant.mm:

(appLinkForURL):
Use BinarySemaphore to wait for async completion handler. We also fix memory leak
since the old code does not call dispatch_release for the used semaphore.

Source/WTF:

This patch adds WTF::Semaphore, which is based on WTF::Lock and WTF::Condition.

  • WTF.xcodeproj/project.pbxproj:
  • wtf/CMakeLists.txt:
  • wtf/Semaphore.h: Added.

(WTF::Semaphore::Semaphore):
(WTF::Semaphore::signal):
(WTF::Semaphore::waitUntil):
(WTF::Semaphore::waitFor):
(WTF::Semaphore::wait):

  • wtf/generic/WorkQueueGeneric.cpp:

(WorkQueue::platformInitialize):

  • wtf/threads/BinarySemaphore.cpp:

(WTF::BinarySemaphore::waitUntil):
(WTF::BinarySemaphore::wait): Deleted.

  • wtf/threads/BinarySemaphore.h:

(WTF::BinarySemaphore::waitFor):
(WTF::BinarySemaphore::wait):
Align the names of the functions to WTF::Condition.
Add BinarySemaphore::wait(), which is the same to waitUntil(WallTime::infinity()).

Tools:

  • TestWebKitAPI/Tests/WTF/SynchronizedFixedQueue.cpp:

(TestWebKitAPI::ToUpperConverter::stopProducing):
(TestWebKitAPI::ToUpperConverter::stopConsuming):

9:14 PM Changeset in webkit [236100] by Simon Fraser
  • 7 edits in trunk

Many modern media control tests leak documents in testing
https://bugs.webkit.org/show_bug.cgi?id=189437

Reviewed by Darin Adler.
Source/WebCore:

In order to accurately detect leaks in media controls tests which use lots of
SVGImages, we have to:

  • Fire a zero-delay timer after the postTask, in order for ImagesLoader's m_derefElementTimer to clear references to elements.
  • Have releaseCriticalMemory() call CachedResourceLoader's garbageCollectDocumentResources() to drop the last handle to the CachedResource for an SVGImage.
  • Call WKBundleReleaseMemory() after the GC and timer, since we need garbageCollectDocumentResources() to run again after that timer has fired.

This should fix most of the spurious leak reports involving SVGImage documents.

  • page/MemoryRelease.cpp:

(WebCore::releaseCriticalMemory):

Source/WebKit:

In order to accurately detect leaks in media controls tests which use lots of
SVGImages, we have to:

  • Fire a zero-delay timer after the postTask, in order for ImagesLoader's m_derefElementTimer to clear references to elements.
  • Have releaseCriticalMemory() call CachedResourceLoader's garbageCollectDocumentResources() to drop the last handle to the CachedResource for an SVGImage.
  • Call WKBundleReleaseMemory() after the GC and timer, since we need garbageCollectDocumentResources() to run again after that timer has fired.

This should fix most of the spurious leak reports involving SVGImage documents.

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

(WKBundlePageCallAfterTasksAndTimers):
(WKBundlePagePostTask): Deleted.

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

Tools:

In order to accurately detect leaks in media controls tests which use lots of
SVGImages, we have to:

  • Fire a zero-delay timer after the postTask, in order for ImagesLoader's m_derefElementTimer to clear references to elements.
  • Have releaseCriticalMemory() call CachedResourceLoader's garbageCollectDocumentResources() to drop the last handle to the CachedResource for an SVGImage.
  • Call WKBundleReleaseMemory() after the GC and timer, since we need garbageCollectDocumentResources() to run again after that timer has fired.

This should fix most of the spurious leak reports involving SVGImage documents.

  • WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:

(WTR::InjectedBundle::reportLiveDocuments):
(WTR::InjectedBundle::didReceiveMessageToPage):

7:54 PM Changeset in webkit [236099] by Fujii Hironori
  • 3 edits in trunk/Source/WebKitLegacy/win

[Win][Clang][WebKitLegacy] error: cannot pass object of non-trivial type through variadic function
https://bugs.webkit.org/show_bug.cgi?id=189612

Reviewed by Alex Christensen.

Non-trivial types can't be used as aruguments of LOG_ERROR and
ASSERT_WITH_MESSAGE.

  • DefaultPolicyDelegate.cpp:

(DefaultPolicyDelegate::unableToImplementPolicyWithError): Apply
static_cast<BSTR> to convert BString.

  • WebLocalizableStrings.cpp:

(copyLocalizedStringFromBundle): Convert 'key' from WTF::String to
char* by using 'key.utf8().data()'.

6:42 PM Changeset in webkit [236098] by mitz@apple.com
  • 2 edits in trunk/Source/WebKit

Try to fix Apple internal builds with the iOS 12.0 SDK.

  • Configurations/WebKit.xcconfig: Disable framework header postprocessing for iOS 12.0.
6:01 PM Changeset in webkit [236097] by Ryan Haddad
  • 2 edits
    1 delete in trunk/Source/WebKit

Unreviewed, rolling out r236092 because it breaks internal builds. Also, remove stray '+' character from ChangeLog file.

  • Scripts/copy-webcontent-resources-to-private-headers.sh: Removed.
  • WebKit.xcodeproj/project.pbxproj:
5:54 PM Changeset in webkit [236096] by Ryan Haddad
  • 2 edits in trunk/LayoutTests

Layout Test legacy-animation-engine/animations/play-state-in-shorthand.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=185651

Unreviewed test gardening.

  • platform/mac/TestExpectations: Mark test as flaky.
5:31 PM Changeset in webkit [236095] by Justin Fan
  • 2538 edits in trunk/LayoutTests

Updated expected test [ PASS ] messages for new test-harness format for webgl tests
https://bugs.webkit.org/show_bug.cgi?id=189677

Reviewed by Dean Jackson.

Update generate-webgl-tests.py's test expectation template
for my new version of webgl-test-harness.js for the webgl 2 suite,
and update all webgl/2.0.0 test expectations to match.

  • webgl/resources/webgl-expectation-template.txt:
  • webgl/2.0.0/.../*expected.txt: Modified all *expected.txts to match.
4:24 PM Changeset in webkit [236094] by jer.noble@apple.com
  • 15 edits
    9 adds in trunk

Add support for HEVC codec types in Media Capabilities
https://bugs.webkit.org/show_bug.cgi?id=189565

Reviewed by Eric Carlson.

Source/WebCore:

Test: media/hevc-codec-parameters.html

Add some utility methods for parsing HEVC codec strings, and using those parsed
values to query the platform for detailed support for HEVC decoding.

Drive-by fix: Modify MediaEngineConfigurationFactory to allow for null function
pointers in the encode/decode factory pair.

  • Sources.txt:
  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/cocoa/VideoToolboxSoftLink.cpp:
  • platform/cocoa/VideoToolboxSoftLink.h:
  • platform/graphics/HEVCUtilities.cpp: Added.

(WebCore::parseHEVCCodecParameters):

  • platform/graphics/HEVCUtilities.h: Added.
  • platform/graphics/cocoa/HEVCUtilitiesCocoa.cpp: Added.

(WebCore::validateHEVCParameters):

  • platform/graphics/cocoa/HEVCUtilitiesCocoa.h: Added.
  • platform/graphics/cocoa/MediaEngineConfigurationFactoryCocoa.cpp: Added.

(WebCore::videoCodecTypeFromRFC4281Type):
(WebCore::createMediaPlayerDecodingConfigurationCocoa):

  • platform/graphics/cocoa/MediaEngineConfigurationFactoryCocoa.h: Added.
  • platform/mediacapabilities/MediaEngineConfigurationFactory.cpp:

(WebCore::factories):
(WebCore::MediaEngineConfigurationFactory::createDecodingConfiguration):
(WebCore::MediaEngineConfigurationFactory::createEncodingConfiguration):

  • testing/Internals.cpp:

(WebCore::Internals::parseHEVCCodecParameters):

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

Source/WTF:

Extract the toIntegralType template into its own header.

  • wtf/CMakeLists.txt:
  • wtf/text/StringConversion.h: Added.

(isCharacterAllowedInBase):
(toIntegralType):

  • wtf/text/WTFString.cpp:

LayoutTests:

  • media/hevc-codec-parameters-expected.txt: Added.
  • media/hevc-codec-parameters.html: Added.
4:21 PM Changeset in webkit [236093] by youenn@apple.com
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

Build fix after https://trac.webkit.org/changeset/236070
https://bugs.webkit.org/show_bug.cgi?id=189635
<rdar://problem/44361849>

Unreviewed.
Fix for iOS internal builds.

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

(-[RTCVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):

4:00 PM Changeset in webkit [236092] by achristensen@apple.com
  • 2 edits
    1 add in trunk/Source/WebKit

+2018-08-17 Ben Richards <benton_richards@apple.com>

Add script to generate WebContent service resource files and change XPC service main SPI to have it's own header
https://bugs.webkit.org/show_bug.cgi?id=188601

Reviewed by Dan Bernstein.

Added a script to the process entitlements build phase of the WebContent service that copies resource
files to WebKit.framework/PrivateHeaders/CustomWebContentResources. These resource files are to
be used by clients who would like to make a custom WebContent service.

  • Scripts/copy-webcontent-resources-to-private-headers.sh: Added.
  • WebKit.xcodeproj/project.pbxproj:
3:43 PM Changeset in webkit [236091] by Devin Rousso
  • 16 edits in trunk

Web Inspector: generate CSSKeywordCompletions from backend values
https://bugs.webkit.org/show_bug.cgi?id=189041

Reviewed by Joseph Pecoraro.

Source/JavaScriptCore:

  • inspector/protocol/CSS.json:

Include an optional aliases array and inherited boolean for CSSPropertyInfo.

Source/WebCore:

Modified existing test inspector/css/getSupportedCSSProperties.html.

  • inspector/agents/InspectorCSSAgent.cpp:

(WebCore::InspectorCSSAgent::getSupportedCSSProperties):
Send alias and longhand information for all properties, and any known keyword values for
those applicable. This makes use of CSSParserFastPaths::isValidKeywordPropertyAndValue to
determine if a given keyword is a valid value for each property. This only generates a list
for properties who have no non-keyword values.

  • css/makeprop.pl:
  • css/makevalues.pl:

Create additional helper functions/constants for retrieving strings of each CSS keyword.

  • css/CSSProperty.h:

(WebCore::CSSProperty::aliasesForProperty):

  • css/CSSPrimitiveValue.cpp:

(WebCore::valueName):

  • css/CSSValuePool.cpp:

(WebCore::CSSValuePool::CSSValuePool):
(WebCore::CSSValuePool::createIdentifierValue):

Source/WebInspectorUI:

Moves the longhands map to WI.CSSKeywordCompletions for more global access. Creates an
aliases map to support completions on aliases with the same values as the non-alias name.
Removes all keyword-only properties from WI.CSSKeywordCompletions._propertyKeywordMap as
they are now generated by the backend (kept for compatibility).

  • UserInterface/Models/CSSCompletions.js:

(WI.CSSCompletions):
(WI.CSSCompletions.requestCSSCompletions.propertyNamesCallback):
(WI.CSSCompletions.prototype.isShorthandPropertyName):

  • UserInterface/Models/CSSKeywordCompletions.js:

(WI.CSSKeywordCompletions.forProperty.addKeywordsForName): Added.
(WI.CSSKeywordCompletions.forProperty):
(WI.CSSKeywordCompletions.addCustomCompletions):

  • UserInterface/Models/CSSProperty.js:

(WI.CSSProperty.isInheritedPropertyName):

LayoutTests:

  • inspector/css/getSupportedCSSProperties-expected.txt:
  • inspector/css/getSupportedCSSProperties.html:
3:22 PM Changeset in webkit [236090] by youenn@apple.com
  • 5 edits
    2 adds in trunk

track.onmute isn't called for a remote MediaStreamTrack when its counter part track is removed from the peer connection
https://bugs.webkit.org/show_bug.cgi?id=176281
<rdar://problem/44525674>

Reviewed by Eric Carlson.

Source/WebCore:

Listen to libwebrtc remove track callbacks.
Implement handling as per https://w3c.github.io/webrtc-pc/#process-remote-track-removal.
This triggers a mute event on the track.

Test: webrtc/remove-track.html

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:

(WebCore::LibWebRTCMediaEndpoint::removeRemoteTrack):
(WebCore::LibWebRTCMediaEndpoint::OnRemoveTrack):

  • Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.h:
  • Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:

(WebCore::LibWebRTCPeerConnectionBackend::shouldOfferAllowToReceive const):
Drive by fix: Plan B code path does not mandate having an rtc backend for each sender.

LayoutTests:

  • webrtc/remove-track-expected.txt: Added.
  • webrtc/remove-track.html: Added.
3:21 PM Changeset in webkit [236089] by sbarati@apple.com
  • 4 edits
    1 add in trunk

We must convert ProfileType to CheckStructureOrEmpty instead of CheckStructure
https://bugs.webkit.org/show_bug.cgi?id=189676
<rdar://problem/39682897>

Reviewed by Michael Saboff.

JSTests:

  • typeProfiler/check-structure-or-empty-in-fixup.js: Added.

(A):
(K):
(i.catch):

Source/JavaScriptCore:

Because the incoming value may be TDZ, CheckStructure may end up crashing.
Since the Type Profile does not currently record TDZ values in any of its
data structures, this is not a semantic change in how it will show you data.
It just fixes crashes when we emit a CheckStructure and the incoming value
is TDZ.

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):

  • dfg/DFGNode.h:

(JSC::DFG::Node::convertToCheckStructureOrEmpty):

3:05 PM Changeset in webkit [236088] by Simon Fraser
  • 5 edits in trunk/Source

Add more Fullscreen logging
https://bugs.webkit.org/show_bug.cgi?id=189656

Reviewed by Jer Noble.

Add some fullscreen logging so I can tell whether WebFullScreenManager ever releases
the fullscreen element.

Source/WebCore:

  • platform/cocoa/VideoFullscreenModelVideoElement.mm:

(VideoFullscreenModelVideoElement::VideoFullscreenModelVideoElement):
(VideoFullscreenModelVideoElement::~VideoFullscreenModelVideoElement):
(VideoFullscreenModelVideoElement::setVideoElement):

Source/WebKit:

  • WebProcess/FullScreen/WebFullScreenManager.cpp:

(WebKit::WebFullScreenManager::WebFullScreenManager):
(WebKit::WebFullScreenManager::videoControlsManagerDidChange):
(WebKit::WebFullScreenManager::setPIPStandbyElement):
(WebKit::WebFullScreenManager::enterFullScreenForElement):
(WebKit::WebFullScreenManager::exitFullScreenForElement):
(WebKit::WebFullScreenManager::willEnterFullScreen):
(WebKit::WebFullScreenManager::didEnterFullScreen):
(WebKit::WebFullScreenManager::willExitFullScreen):
(WebKit::WebFullScreenManager::didExitFullScreen):
(WebKit::WebFullScreenManager::close):

  • WebProcess/FullScreen/WebFullScreenManager.h:
3:05 PM Changeset in webkit [236087] by Simon Fraser
  • 7 edits in trunk/Source/WebCore

Add support for dumping the GraphicsLayer tree via notifyutil
https://bugs.webkit.org/show_bug.cgi?id=189639

Reviewed by Zalan Bujtas.

Make "notifyutil -p com.apple.WebKit.showGraphicsLayerTree" work. It dumps the GraphicsLayer tree
for each top-level document (GraphicsLayers are connected across frame boundaries, so this prints
the entire tree for each main frame).

It uses WTFLogAlways rather than fprintf() so output shows on all platforms (other tree dumps should
be converted in the same way).

  • page/mac/PageMac.mm:

(WebCore::Page::platformInitialize):

  • platform/graphics/GraphicsLayer.cpp:

(showGraphicsLayerTree):

  • rendering/RenderLayerCompositor.cpp:

(showGraphicsLayerTreeForCompositor):

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

(WebCore::printGraphicsLayerTreeForLiveDocuments):

  • rendering/RenderObject.h:
2:59 PM Changeset in webkit [236086] by timothy_horton@apple.com
  • 4 edits in trunk/Source/WebKit

Swipe snapshot can get stuck if swiping is disabled while it is visible
https://bugs.webkit.org/show_bug.cgi?id=189667
<rdar://problem/40367780>

Reviewed by Simon Fraser.

If navigation gestures are disabled while a swipe snapshot is visible,
WKWebView will tear down the ViewGestureController, which means that
the SnapshotRemovalTracker will no longer be around to ever remove
the snapshot.

It's currently very hard to write a test for this because we have
yet to come up with a good mechanism for testing swiping on iOS.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView setAllowsBackForwardNavigationGestures:]):
Instead of tearing down the ViewGestureController when navigation
gestures are disabled, just set a bit on it that disables gestures.

  • UIProcess/Cocoa/ViewGestureController.cpp:

(WebKit::ViewGestureController::canSwipeInDirection const):

  • UIProcess/Cocoa/ViewGestureController.h:

(WebKit::ViewGestureController::setSwipeGestureEnabled):
(WebKit::ViewGestureController::isSwipeGestureEnabled):
Add a bit to ViewGestureController that makes starting new gestures
always fail, but allows e.g. snapshots from existing swipes to continue
their usual behavior.

2:41 PM Changeset in webkit [236085] by chris.reid@sony.com
  • 5 edits in trunk/Source/WebCore

[Curl] Add schema version and enable auto vacuum for cookie database.
https://bugs.webkit.org/show_bug.cgi?id=189669

Reviewed by Alex Christensen.

Turning on auto incremental vacuuming and adding versioning to the database. Right now we
reset tables if there's an unknown schema or if the none is set. There is placeholder logic
in place to upgrade databases as the schema changes in the future.

Tested by checking the database manually after launching MiniBrowser.

  • platform/network/curl/CookieJarDB.cpp:

(WebCore::CookieJarDB::openDatabase):
(WebCore::CookieJarDB::verifySchemaVersion):
(WebCore::CookieJarDB::deleteAllTables):
(WebCore::CookieJarDB::createPrepareStatement):
(WebCore::CookieJarDB::getPrepareStatement):
(WebCore::CookieJarDB::executeSimpleSql):

  • platform/network/curl/CookieJarDB.h:
  • platform/network/curl/NetworkStorageSessionCurl.cpp:

(WebCore::defaultSession):

  • platform/sql/SQLiteDatabase.cpp:

(WebCore::SQLiteDatabase::turnOnIncrementalAutoVacuum): fixed a bug.

2:14 PM Changeset in webkit [236084] by david_fenton@apple.com
  • 2 edits in trunk/LayoutTests

Fixed typo in TestExpectations file.
https://bugs.webkit.org/show_bug.cgi?id=188020.

Unreviewed test gardening.

Patch by Dawei Fenton <realdawei@apple.com> on 2018-09-17

  • platform/ios/TestExpectations:
2:07 PM Changeset in webkit [236083] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

Re-order Node flags based on semantics
https://bugs.webkit.org/show_bug.cgi?id=189643

Reviewed by Simon Fraser.

Re-ordered Node flags based on their category and subclasses of Node which use them.

  • dom/Node.h:
1:50 PM Changeset in webkit [236082] by mitz@apple.com
  • 7 copies
    1 add in releases/Apple/watchOS 5.0

Added a tag for watchOS 5.0.

1:50 PM Changeset in webkit [236081] by mitz@apple.com
  • 8 copies
    1 add in releases/Apple/iOS 12.0

Added a tag for iOS 12.0.

1:50 PM Changeset in webkit [236080] by mitz@apple.com
  • 9 copies
    1 add in releases/Apple/Safari 12.0

Added a tag for Safari 12.0.

1:36 PM Changeset in webkit [236079] by achristensen@apple.com
  • 2 edits in trunk/Source/WebKit

Expose WKWebProcess.h as a private header
https://bugs.webkit.org/show_bug.cgi?id=189636

  • WebKit.xcodeproj/project.pbxproj:
12:39 PM Changeset in webkit [236078] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

Add more ResourceLoading logging, particularly in MemoryCache code
https://bugs.webkit.org/show_bug.cgi?id=189651

Reviewed by Tim Horton.

Adding more logging to the ResourceLoading log channel, which I found useful
when trying to understand cached SVGImage lifetimes (bug 189437).

  • loader/cache/CachedResource.cpp:

(WebCore::CachedResource::deleteIfPossible):

  • loader/cache/CachedResourceLoader.cpp:

(WebCore::CachedResourceLoader::requestResource):
(WebCore::CachedResourceLoader::garbageCollectDocumentResources):

  • loader/cache/MemoryCache.cpp:

(WebCore::MemoryCache::add):
(WebCore::MemoryCache::pruneLiveResourcesToSize):
(WebCore::MemoryCache::pruneDeadResources):
(WebCore::MemoryCache::pruneDeadResourcesToSize):
(WebCore::MemoryCache::remove):
(WebCore::MemoryCache::dumpLRULists const):

11:57 AM Changeset in webkit [236077] by jer.noble@apple.com
  • 9 edits
    1 move
    2 deletes in trunk

Enable USE_MEDIAREMOTE on iOS
https://bugs.webkit.org/show_bug.cgi?id=189096

Reviewed by Eric Carlson.

Source/WebCore:

Migrate to using MediaRemote.framework on iOS from MediaPlayer.framework. This unifies the
Now Playing implementation on iOS and Mac.

  • SourcesCocoa.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/audio/cocoa/MediaSessionManagerCocoa.cpp: Removed.
  • platform/audio/cocoa/MediaSessionManagerCocoa.h:
  • platform/audio/cocoa/MediaSessionManagerCocoa.mm: Renamed from Source/WebCore/platform/audio/mac/MediaSessionManagerMac.mm.

(PlatformMediaSessionManager::sharedManager):
(PlatformMediaSessionManager::sharedManagerIfExists):
(MediaSessionManagerCocoa::updateSessionState):
(MediaSessionManagerCocoa::beginInterruption):
(MediaSessionManagerCocoa::scheduleUpdateNowPlayingInfo):
(MediaSessionManagerCocoa::sessionWillBeginPlayback):
(MediaSessionManagerCocoa::sessionDidEndRemoteScrubbing):
(MediaSessionManagerCocoa::removeSession):
(MediaSessionManagerCocoa::sessionWillEndPlayback):
(MediaSessionManagerCocoa::clientCharacteristicsChanged):
(MediaSessionManagerCocoa::sessionCanProduceAudioChanged):
(MediaSessionManagerCocoa::nowPlayingEligibleSession):
(MediaSessionManagerCocoa::updateNowPlayingInfo):

  • platform/audio/ios/MediaSessionManagerIOS.h:

(): Deleted.

  • platform/audio/ios/MediaSessionManagerIOS.mm:

(WebCore::MediaSessionManageriOS::nowPlayingEligibleSession): Deleted.
(WebCore::MediaSessionManageriOS::updateNowPlayingInfo): Deleted.
(WebCore::MediaSessionManageriOS::sessionWillBeginPlayback): Deleted.
(WebCore::MediaSessionManageriOS::removeSession): Deleted.
(WebCore::MediaSessionManageriOS::sessionWillEndPlayback): Deleted.
(WebCore::MediaSessionManageriOS::clientCharacteristicsChanged): Deleted.

  • platform/audio/mac/MediaSessionManagerMac.h: Removed.

Source/WTF:

  • wtf/Platform.h:
11:49 AM Changeset in webkit [236076] by youenn@apple.com
  • 2 edits in trunk/Source/ThirdParty/libwebrtc

Enable VCP for iOS and reenable it for MacOS
https://bugs.webkit.org/show_bug.cgi?id=189635
<rdar://problem/43621029>

Unreviewed, build fix for iOS simulator.

  • Source/webrtc/sdk/WebKit/VideoProcessingSoftLink.h:
11:45 AM Changeset in webkit [236075] by commit-queue@webkit.org
  • 9 edits
    4 adds in trunk/Source/WebKit

Expose XPCServiceMain in a WebProcess header rather than WKProcessPool
https://bugs.webkit.org/show_bug.cgi?id=189636

Patch by Alex Christensen <achristensen@webkit.org> on 2018-09-17
Reviewed by Dan Bernstein.

Fix a few build failures along the way.

  • PluginProcess/mac/PluginControllerProxyMac.mm:

(WebKit::PluginControllerProxy::windowAndViewFramesChanged):
(WebKit::PluginControllerProxy::updateLayerHostingContext):

  • PluginProcess/mac/PluginProcessMac.mm:

(WebKit::replacedNSWorkspace_launchApplicationAtURL_options_configuration_error):
(WebKit::PluginProcess::platformInitializeProcess):

  • Shared/EntryPointUtilities/mac/XPCService/XPCServiceEntryPoint.h:
  • Shared/EntryPointUtilities/mac/XPCService/XPCServiceMain.mm:

(WebKit::XPCServiceMain):
(main):

  • SourcesCocoa.txt:
  • UIProcess/API/Cocoa/WKProcessPool.mm:

(+[WKProcessPool _webContentProcessXPCMain]): Deleted.

  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/API: Added.
  • WebProcess/API/Cocoa: Added.
  • WebProcess/API/Cocoa/WKWebProcess.cpp: Added.

(WKWebProcessMain):

  • WebProcess/API/Cocoa/WKWebProcess.h: Added.
  • WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm:

(-[WKAccessibilityWebPageObject convertScreenPointToRootView:]):
(-[WKAccessibilityWebPageObject accessibilityAttributeValue:]):
(-[WKAccessibilityWebPageObject accessibilityHitTest:]):

11:24 AM Changeset in webkit [236074] by commit-queue@webkit.org
  • 6 edits in trunk/Source

Build error in ImageBufferCG when compiled with IOSurfacePool
https://bugs.webkit.org/show_bug.cgi?id=189579

Patch by Frederic Wang <fwang@igalia.com> on 2018-09-17
Reviewed by Tim Horton.

IOSurface.h might be included with different value of IOSURFACE_CANVAS_BACKING_STORE, causing
compilation errors when files in the same unified source do not agree on the definition.
This patch moves the definition of IOSURFACE_CANVAS_BACKING_STORE from ImageBufferDataCG.h
to Platform.h so that IOSURFACE_CANVAS_BACKING_STORE is set to the same value in all files.
Finally some minors changes to explicitly declare/define ImageBuffer are performed in order
to prevent future issues with Unified build rotating.

Source/WebCore:

No new tests, behavior unchanged.

  • html/HTMLCanvasElement.cpp: Explicitly include ImageBuffer.h since it's used in this file.
  • platform/graphics/cg/ImageBufferDataCG.h: Move definition into Platform.h.
  • platform/graphics/cocoa/IOSurface.h: Forward-declare ImageBuffer since it's used in this

header.

Source/WTF:

  • wtf/Platform.h: Move definition from ImageBufferDataCG.h.
11:19 AM Changeset in webkit [236073] by Basuke Suzuki
  • 12 edits in trunk

[Curl] Respond with requested authentication scheme for authentication challenge.
https://bugs.webkit.org/show_bug.cgi?id=189318

Reviewed by Alex Christensen.

Source/WebCore:

Curl port depends on libcurl's authentication handling by enabling CURLAUTH_ANY. With this
mode, the round-trip communication between the client and the server is handled by libcurl
internally. That's okay for many cases. But when initial request has a credentials
(i.e. XMLHttpRequest), there's no valid chance to store credential to the storage because
the returned response is not 401.

Passes following tests:

  • http/tests/websocket/tests/hybi/httponly-cookie.pl
  • http/tests/websocket/tests/hybi/secure-cookie-insecure-connection.pl
  • http/tests/websocket/tests/hybi/secure-cookie-secure-connection.pl
  • http/tests/xmlhttprequest/basic-auth-default.html
  • http/tests/xmlhttprequest/cross-origin-authorization.html
  • http/tests/xmlhttprequest/logout.html
  • http/tests/xmlhttprequest/null-auth.php
  • http/tests/xmlhttprequest/re-login-async.html
  • http/tests/xmlhttprequest/re-login.html
  • http/tests/xmlhttprequest/redirect-credentials-responseURL.html
  • http/tests/xmlhttprequest/remember-bad-password.html
  • platform/network/ResourceHandle.h:
  • platform/network/curl/CurlContext.cpp:

(WebCore::CurlHandle::setHttpAuthUserPass):
(WebCore::CurlHandle::enableHttpAuthentication): Deleted.

  • platform/network/curl/CurlContext.h:
  • platform/network/curl/CurlRequest.cpp:

(WebCore::CurlRequest::setAuthenticationScheme):
(WebCore::CurlRequest::setupTransfer):

  • platform/network/curl/CurlRequest.h:
  • platform/network/curl/ResourceHandleCurl.cpp:

(WebCore::ResourceHandle::start):
(WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
(WebCore::ResourceHandle::receivedCredential):
(WebCore::ResourceHandle::getCredential):
(WebCore::ResourceHandle::restartRequestWithCredential):
(WebCore::ResourceHandle::platformLoadResourceSynchronously):
(WebCore::ResourceHandle::continueAfterWillSendRequest):

Source/WebKit:

Curl port depends on libcurl's authentication handling by enabling CURLAUTH_ANY. With this
mode, the round-trip communication between the client and the server is handled by libcurl
internally. That's okay for many cases. But when initial request has a credentials
(i.e. XMLHttpRequest), there's no valid chance to store credential to the storage because
the returned response is not 401.

  • NetworkProcess/curl/NetworkDataTaskCurl.cpp:

(WebKit::NetworkDataTaskCurl::NetworkDataTaskCurl):
(WebKit::NetworkDataTaskCurl::willPerformHTTPRedirection):
(WebKit::NetworkDataTaskCurl::tryHttpAuthentication):
(WebKit::NetworkDataTaskCurl::tryProxyAuthentication):
(WebKit::NetworkDataTaskCurl::restartWithCredential):

  • NetworkProcess/curl/NetworkDataTaskCurl.h:

LayoutTests:

  • platform/wincairo/TestExpectations:
10:37 AM Changeset in webkit [236072] by graouts@webkit.org
  • 3 edits in trunk/LayoutTests

[Web Animations] Positive delays of accelerated animations are not respected
https://bugs.webkit.org/show_bug.cgi?id=189411
<rdar://problem/44151416>

Reviewed by Dean Jackson.

Use a mask over the animated rectangle to allow for a 1px rounding error when seeking to fix flakiness.

  • webanimations/accelerated-animation-with-delay-and-seek-expected.html:
  • webanimations/accelerated-animation-with-delay-and-seek.html:
10:18 AM Changeset in webkit [236071] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit

Clear pending resource load statistics' writes after tests
https://bugs.webkit.org/show_bug.cgi?id=189632
<rdar://problem/44469275>

Patch by Woodrow Wang <woodrow_wang@apple.com> on 2018-09-17
Reviewed by Chris Dumez.

  • UIProcess/API/C/WKWebsiteDataStoreRef.cpp:

(WKWebsiteDataStoreStatisticsResetToConsistentState):

10:15 AM Changeset in webkit [236070] by youenn@apple.com
  • 20 edits in trunk

Enable VCP for iOS and reenable it for MacOS
https://bugs.webkit.org/show_bug.cgi?id=189635
<rdar://problem/43621029>

Reviewed by Eric Carlson.

Source/ThirdParty/libwebrtc:

Make sure VCP API is used to set encoding session parameters.

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

(-[RTCVideoEncoderH264 resetCompressionSessionWithPixelFormat:]):

  • Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/helpers.cc:
  • Source/webrtc/sdk/objc/Framework/Classes/VideoToolbox/helpers.h:

Source/WebCore:

Covered by exsiting and modified tests.
Instead of using libwebrtc YUV frames for black frames, use CVPixelBuffer to make it efficient.
Add internal API to know whether VCP is enabled so as to make capture-webrtc test pass on all platforms.

  • platform/mediastream/RealtimeOutgoingVideoSource.cpp:

(WebCore::RealtimeOutgoingVideoSource::sendBlackFramesIfNeeded):

  • platform/mediastream/RealtimeOutgoingVideoSource.h:
  • platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceLibWebRTC.h:
  • platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.h:
  • platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm:

(WebCore::createBlackPixelBuffer):
(WebCore::RealtimeIncomingVideoSourceCocoa::pixelBufferFromVideoFrame):

  • platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.cpp:

(WebCore::RealtimeOutgoingVideoSourceCocoa::createBlackFrame):

  • platform/mediastream/mac/RealtimeOutgoingVideoSourceCocoa.h:
  • testing/Internals.cpp:

(WebCore::Internals::supportsVCPEncoder):

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

LayoutTests:

  • platform/mac/webrtc/captureCanvas-webrtc-software-encoder.html:

For platforms suppporting VCP, arbitrary size should be supported.

  • webrtc/routines.js:
10:15 AM Changeset in webkit [236069] by Chris Dumez
  • 19 edits in trunk

PSON: window.open() with 'noopener' should only process-swap cross-site, not cross-origin
https://bugs.webkit.org/show_bug.cgi?id=189602
<rdar://problem/44430549>

Reviewed by Geoff Garen.

Source/WebCore:

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::setTriggeringAction):

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

(WebCore::FrameLoader::loadURL):
(WebCore::FrameLoader::loadWithNavigationAction):
(WebCore::FrameLoader::loadWithDocumentLoader):
(WebCore::FrameLoader::loadPostRequest):
(WebCore::FrameLoader::continueLoadAfterNewWindowPolicy):
(WebCore::FrameLoader::loadDifferentDocumentItem):
Move NavigationAction's opener setting to loadWithNavigationAction() as this is a better bottleneck.
Otherwise, we'd have to set it at several call sites. Also move the NavigationAction around instead
of copying it.

  • loader/FrameLoader.h:

(WebCore::FrameLoader::loadWithNavigationAction):

  • loader/NavigationAction.h:

(WebCore::NavigationAction::setShouldOpenExternalURLsPolicy):

  • loader/PolicyChecker.cpp:

(WebCore::PolicyChecker::checkNavigationPolicy):

  • page/DOMWindow.cpp:

(WebCore::DOMWindow::createWindow):

Source/WebKit:

The following fixes were made to our process swap on navigation logic:

  • Browsing contexts opened via window.open() with 'noopener' option now only same if they are cross-site, instead of doing a stricter cross-origin check.
  • Support process swapping when opening a new window via <a target="_blank" rel="noopener"> that is cross-site.

In order to support this, the following changes were made:

  • Stop passing a 'isCrossOriginWindowOpenNavigation' flag to the UIProcess when navigating because:
    • This is specific to window.open() and does not apply to other windows opened by DOM
    • This forces the origin check to happens on WebContent process side instead of relying on the one in WebProcessPool in the UIProcess
  • Pass the origin of the requester to the UIProcess when navigating, so that the WebProcessPool can use the requester's host for the cross-site check for the initial navigation in a new window created by DOM.
  • Add 2 flags to WebPageProxy which indicate if the page was created by the DOM and if any provisional loads have been committed. The WebProcessPool uses theses flags to recognize initial loads in new windows created by the DOM, so that it uses the requester's origin for the cross-site check.
  • Shared/NavigationActionData.cpp:

(WebKit::NavigationActionData::encode const):
(WebKit::NavigationActionData::decode):

  • Shared/NavigationActionData.h:
  • UIProcess/API/APINavigation.h:

(API::Navigation::setRequesterOrigin):
(API::Navigation::requesterOrigin const):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::continueNavigationInNewProcess):
(WebKit::WebPageProxy::didCommitLoadForFrame):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::createNewPage):

  • UIProcess/WebPageProxy.h:

(WebKit::WebPageProxy::setOpenedByDOM):
(WebKit::WebPageProxy::openedByDOM const):
(WebKit::WebPageProxy::hasCommittedAnyProvisionalLoads const):

  • UIProcess/WebProcessPool.cpp:

(WebKit::shouldUseSameProcessBasedOnURLs):
(WebKit::WebProcessPool::processForNavigationInternal):

  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:

(WebKit::WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction):

Tools:

Add API test coverage.

  • TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
10:11 AM Changeset in webkit [236068] by ap@apple.com
  • 4 edits
    2 deletes in trunk

Revert https://trac.webkit.org/r235910, because the new test times out.
Crash under PlatformPopupMenuData::encode when interacting with a select menu that has variable fonts
https://bugs.webkit.org/show_bug.cgi?id=188008

Source/WebKit:

  • Shared/cf/ArgumentCodersCF.cpp:

(IPC::encode):
(IPC::decode):

LayoutTests:

  • fast/text/variations/ipc2-expected.txt: Removed.
  • fast/text/variations/ipc2.html: Removed.
  • platform/mac-wk1/TestExpectations:
10:09 AM Changeset in webkit [236067] by commit-queue@webkit.org
  • 9 edits in trunk/Source/WebKit

Refactoring related to Safe Browsing
https://bugs.webkit.org/show_bug.cgi?id=189631

Patch by Alex Christensen <achristensen@webkit.org> on 2018-09-17
Reviewed by Tim Horton.

Make SafeBrowsingResult RefCounted.
Move logic from an unnamed lambda to WebPageProxy::receivedNavigationPolicyDecision.

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:

(WebKit::WebPageProxy::beginSafeBrowsingCheck):
(WebKit::WebPageProxy::contentFilterDidBlockLoadForFrame): Deleted.
(WebKit::WebPageProxy::addPlatformLoadParameters): Deleted.
(WebKit::WebPageProxy::createSandboxExtensionsIfNeeded): Deleted.
(WebKit::WebPageProxy::startDrag): Deleted.
(WebKit::WebPageProxy::setPromisedDataForImage): Deleted.
(WebKit::WebPageProxy::setDragCaretRect): Deleted.
(WebKit::WebPageProxy::platformRegisterAttachment): Deleted.
(WebKit::WebPageProxy::platformCloneAttachment): Deleted.

  • UIProcess/SafeBrowsingResult.h:

(WebKit::SafeBrowsingResult::create):

  • UIProcess/WebFramePolicyListenerProxy.cpp:

(WebKit::WebFramePolicyListenerProxy::didReceiveSafeBrowsingResults):

  • UIProcess/WebFramePolicyListenerProxy.h:
  • UIProcess/WebFrameProxy.cpp:

(WebKit::WebFrameProxy::setUpPolicyListenerProxy):

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

(WebKit::WebPageProxy::receivedNavigationPolicyDecision):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForNewWindowAction):
(WebKit::WebPageProxy::decidePolicyForResponse):

  • UIProcess/WebPageProxy.h:
9:54 AM Changeset in webkit [236066] by Darin Adler
  • 17 edits in trunk/Source

Use OpaqueJSString rather than JSRetainPtr inside WebKit
https://bugs.webkit.org/show_bug.cgi?id=189652

Reviewed by Saam Barati.

Source/JavaScriptCore:

  • API/JSCallbackObjectFunctions.h: Removed an uneeded include of

JSStringRef.h.

  • API/JSContext.mm:

(-[JSContext evaluateScript:withSourceURL:]): Use OpaqueJSString::create rather
than JSStringCreateWithCFString, simplifying the code and also obviating the
need for explicit JSStringRelease.
(-[JSContext setName:]): Ditto.

  • API/JSStringRef.cpp:

(JSStringIsEqualToUTF8CString): Use adoptRef rather than explicit JSStringRelease.
It seems that additional optimization is possible, obviating the need to allocate
an OpaqueJSString, but that's true almost everywhere else in this patch, too.

  • API/JSValue.mm:

(+[JSValue valueWithNewRegularExpressionFromPattern:flags:inContext:]): Use
OpaqueJSString::create and adoptRef as appropriate.
(+[JSValue valueWithNewErrorFromMessage:inContext:]): Ditto.
(+[JSValue valueWithNewSymbolFromDescription:inContext:]): Ditto.
(performPropertyOperation): Ditto.
(-[JSValue invokeMethod:withArguments:]): Ditto.
(valueToObjectWithoutCopy): Ditto.
(containerValueToObject): Ditto.
(valueToString): Ditto.
(objectToValueWithoutCopy): Ditto.
(objectToValue): Ditto.

Source/WebCore:

  • Modules/plugins/QuickTimePluginReplacement.mm:

(WebCore::jsValueWithDictionaryInContext): Use OpaqueJSString::create.
(WebCore::jsValueWithAVMetadataItemInContext): Use adoptCF.

  • platform/mac/SerializedPlatformRepresentationMac.mm:

(WebCore::jsValueWithDictionaryInContext): Use OpaqueJSString::create.

Source/WebKit:

  • Shared/API/c/WKString.cpp: Removed unneeded include of JSStringRef.h.
  • WebProcess/Automation/WebAutomationSessionProxy.cpp: Removed unneeded

include of JSRetainPtr.
(WebKit::toJSString): Deleted.
(WebKit::toJSValue): Use OpaqueJSString::create.
(WebKit::callPropertyFunction): Ditto.
(WebKit::evaluate): Use adoptRef.
(WebKit::evaluateJavaScriptCallback): Ditto.
(WebKit::WebAutomationSessionProxy::scriptObjectForFrame):
Use OpaqueJSString::create.
(WebKit::WebAutomationSessionProxy::evaluateJavaScriptFunction): Use
String rather than JSStringRef.

  • WebProcess/Plugins/PDF/PDFPlugin.mm: Removed unneeded includes.

(WebKit::PDFPlugin::runScriptsInPDFDocument): Use OpaqueJSString::create.

Source/WebKitLegacy/ios:

  • WebView/WebPDFViewIOS.mm:

(-[WebPDFView finishedLoadingWithDataSource:]): Use OpaqueJSString::create.

  • WebView/WebPDFViewPlaceholder.mm:

(-[WebPDFViewPlaceholder _evaluateJSForDocument:]): Ditto.

Source/WebKitLegacy/mac:

  • WebView/WebPDFRepresentation.mm:

(-[WebPDFRepresentation finishedLoadingWithDataSource:]): Use OpaqueJSString::create.

9:41 AM Changeset in webkit [236065] by david_fenton@apple.com
  • 2 edits in trunk/LayoutTests

Layout Test imported/w3c/web-platform-tests/2dcontext/imagebitmap/createImageBitmap-drawImage.html is a flaky failure.
https://bugs.webkit.org/show_bug.cgi?id=188020.

Unreviewed test gardening.

Patch by Dawei Fenton <realdawei@apple.com> on 2018-09-17

  • platform/ios/TestExpectations:
8:04 AM Changeset in webkit [236064] by Claudio Saavedra
  • 2 edits in trunk/LayoutTests

[WPE] Add new failure

Unreviewed gardening.

  • platform/wpe/TestExpectations:
7:36 AM Changeset in webkit [236063] by Claudio Saavedra
  • 4 edits in trunk/LayoutTests

[GTK][WPE] Update baseline for fast/dom/navigator-detached-no-crash

In GTK it's just a matter of updating the baseline. In WPE
there's some JS output that just needs to be ignored.

  • platform/gtk/TestExpectations:
  • platform/gtk/fast/dom/navigator-detached-no-crash-expected.txt:
  • platform/wpe/TestExpectations:
7:09 AM Changeset in webkit [236062] by Claudio Saavedra
  • 2 edits in trunk/LayoutTests

[WPE] Mark crashing animations test.

animations/play-state-start-paused.html crashing.
Unreviewed gardening.

  • platform/wpe/TestExpectations:
6:42 AM Changeset in webkit [236061] by Carlos Garcia Campos
  • 7 edits
    1 add in releases/WebKitGTK/webkit-2.22

[JSC] Array.prototype.reverse modifies JSImmutableButterfly
https://bugs.webkit.org/show_bug.cgi?id=188794

Reviewed by Saam Barati.

JSTests:

  • stress/reverse-with-immutable-butterfly.js: Added.

(shouldBe):
(reverseInt):
(reverseDouble):
(reverseContiguous):

Source/JavaScriptCore:

While Array.prototype.reverse modifies the butterfly of the given Array,
it does not account JSImmutableButterfly case. So it accidentally modifies
the content of JSImmutableButterfly.
This patch converts CoW arrays to writable arrays before reversing.

  • runtime/ArrayPrototype.cpp:

(JSC::arrayProtoFuncReverse):

  • runtime/JSObject.h:

(JSC::JSObject::ensureWritable):

5:45 AM WebKitGTK/2.22.x edited by Adrian Perez de Castro
Add a few items for WPE noted by Pablo Saavedra (diff)
5:23 AM Changeset in webkit [236060] by Claudio Saavedra
  • 2 edits in trunk/LayoutTests

[WPE] Unmark now passing tests

Unreviewed gardening.

  • platform/wpe/TestExpectations:
5:07 AM Changeset in webkit [236059] by Claudio Saavedra
  • 2 edits in trunk/LayoutTests

[GTK] Unmark now passing tests.

Unreviewed gardening.

  • platform/gtk/TestExpectations:
5:03 AM Changeset in webkit [236058] by Carlos Garcia Campos
  • 7 edits in releases/WebKitGTK/webkit-2.22/Source

Merge r235355 - Shrink size of XMLHttpRequest
https://bugs.webkit.org/show_bug.cgi?id=188944

Reviewed by Saam Barati.

Source/WebCore:

Shrink the size of XMLHttpRequest by packing bits and reordering members.
It reduces the size from 1248 to 1176.

No behavior change.

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::XMLHttpRequest):
(WebCore::XMLHttpRequest::responseText):
(WebCore::XMLHttpRequest::createResponseBlob):
(WebCore::XMLHttpRequest::createResponseArrayBuffer):
(WebCore::XMLHttpRequest::setResponseType):
(WebCore::XMLHttpRequest::changeState):
(WebCore::XMLHttpRequest::callReadyStateChangeListener):
(WebCore::XMLHttpRequest::setWithCredentials):
(WebCore::XMLHttpRequest::open):
(WebCore::XMLHttpRequest::prepareToSend):
(WebCore::XMLHttpRequest::createRequest):
(WebCore::XMLHttpRequest::abort):
(WebCore::XMLHttpRequest::overrideMimeType):
(WebCore::XMLHttpRequest::setRequestHeader):
(WebCore::XMLHttpRequest::getAllResponseHeaders const):
(WebCore::XMLHttpRequest::getResponseHeader const):
(WebCore::XMLHttpRequest::status const):
(WebCore::XMLHttpRequest::statusText const):
(WebCore::XMLHttpRequest::didFinishLoading):
(WebCore::XMLHttpRequest::createDecoder const):
(WebCore::XMLHttpRequest::didReceiveData):
(WebCore::XMLHttpRequest::didReachTimeout):
(WebCore::XMLHttpRequest::readyState const): Deleted.

  • xml/XMLHttpRequest.h:

(WebCore::XMLHttpRequest::responseType const):
(WebCore::XMLHttpRequest::readyState const):

  • xml/XMLHttpRequestProgressEventThrottle.cpp:

(WebCore::XMLHttpRequestProgressEventThrottle::XMLHttpRequestProgressEventThrottle):

  • xml/XMLHttpRequestProgressEventThrottle.h:

Source/WTF:

StringBuilder is included in XMLHttpRequest. We reduce the size of StringBuilder too
by reordering members.

  • wtf/text/StringBuilder.h:

(WTF::StringBuilder::StringBuilder):

5:03 AM Changeset in webkit [236057] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r235345 - Make IDBCursor::m_request a WeakPtr
https://bugs.webkit.org/show_bug.cgi?id=188938

Reviewed by Alex Christensen.

Make m_request a WeakPtr so that if m_request is destroyed, the related cursor will not use the invalid pointer.

Covered by existing tests.

  • Modules/indexeddb/IDBCursor.cpp:

(WebCore::IDBCursor::continuePrimaryKey): Other continue and advance methods that are calling uncheckedIterateCursor do check for m_request.
Apply the same check for continuePrimaryKey.
(WebCore::IDBCursor::uncheckedIterateCursor):

  • Modules/indexeddb/IDBCursor.h:

(WebCore::IDBCursor::setRequest):
(WebCore::IDBCursor::clearRequest):
(WebCore::IDBCursor::request):

  • Modules/indexeddb/IDBRequest.h:
5:02 AM Changeset in webkit [236056] by Carlos Garcia Campos
  • 10 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r235344 - IDBCursor does not need to be an ActiveDOMObject
https://bugs.webkit.org/show_bug.cgi?id=188937

Reviewed by Alex Christensen.

Remove ActiveDOMObject from IDBCursor IDL.
Update constructors and call sites accordingly.
This allows removing m_outstandingRequestCount and related code in IDBRequest.

Covered by existing tests.

  • Modules/indexeddb/IDBCursor.cpp:

(WebCore::IDBCursor::create):
(WebCore::IDBCursor::IDBCursor):
(WebCore::IDBCursor::update):
(WebCore::IDBCursor::uncheckedIterateCursor):
(WebCore::IDBCursor::deleteFunction):
(WebCore::IDBCursor::activeDOMObjectName const): Deleted.
(WebCore::IDBCursor::canSuspendForDocumentSuspension const): Deleted.
(WebCore::IDBCursor::hasPendingActivity const): Deleted.
(WebCore::IDBCursor::decrementOutstandingRequestCount): Deleted.

  • Modules/indexeddb/IDBCursor.h:
  • Modules/indexeddb/IDBCursor.idl:
  • Modules/indexeddb/IDBCursorWithValue.cpp:

(WebCore::IDBCursorWithValue::create):
(WebCore::IDBCursorWithValue::IDBCursorWithValue):

  • Modules/indexeddb/IDBCursorWithValue.h:
  • Modules/indexeddb/IDBCursorWithValue.idl:
  • Modules/indexeddb/IDBRequest.cpp:

(WebCore::IDBRequest::setSource):
(WebCore::IDBRequest::dispatchEvent):
(WebCore::IDBRequest::willIterateCursor):
(WebCore::IDBRequest::didOpenOrIterateCursor):

  • Modules/indexeddb/IDBRequest.h:
  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::requestOpenCursor):

  • WebCore.xcodeproj/project.pbxproj:
5:02 AM Changeset in webkit [236055] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/WTF

Merge r235336 - Improve unified source generator script logging and error messages
https://bugs.webkit.org/show_bug.cgi?id=188932

Reviewed by Simon Fraser.

  • Scripts/generate-unified-source-bundles.rb:

Add the ability to explain why you're getting usage() instead of just printing it.
Capitalize log messages, and improve the wording in a few places.

5:02 AM Changeset in webkit [236054] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.22/Source/JavaScriptCore

Merge r235333 - YARR: Update UCS canonicalization tables for Unicode 11
https://bugs.webkit.org/show_bug.cgi?id=188928

Reviewed by Mark Lam.

Generated YarrCanonicalizeUCS2.cpp from YarrCanonicalizeUCS2.js.

This passes JavaScriptCore and test262 tests.

  • yarr/YarrCanonicalizeUCS2.cpp:
  • yarr/YarrCanonicalizeUCS2.js:

(printHeader):

5:02 AM Changeset in webkit [236053] by Carlos Garcia Campos
  • 13 edits
    1 copy
    3 adds in releases/WebKitGTK/webkit-2.22

Merge r235329 - Add getModifierState to MouseEvent
https://bugs.webkit.org/show_bug.cgi?id=188913
<rdar://problem/43668772>

Reviewed by Simon Fraser.

Source/WebCore:

Moved getModifierState from KeyboardEvent to UIEventWithKeyState and exposed it in MouseEvent.
See https://www.w3.org/TR/2016/WD-uievents-20160804/#mouseevent

This patch also fixes the bug that initMouseEvent was not clearing AltGraph and CapsLock states,
which was preserved in the refactoring done in r235158.

Tests: fast/events/constructors/mouse-event-getModifierState.html

fast/events/dblclick-event-getModifierState.html

  • dom/KeyboardEvent.cpp:

(WebCore::KeyboardEvent::getModifierState const): Moved to UIEventWithKeyState.

  • dom/KeyboardEvent.h:
  • dom/KeyboardEvent.idl: Insert a blank line to match the spec's IDL.
  • dom/MouseEvent.idl: Added getModifierState.
  • dom/UIEventWithKeyState.cpp:

(WebCore::UIEventWithKeyState::modifiersFromInitializer): Moved from the header file.
(WebCore::UIEventWithKeyState::getModifierState const):
(WebCore::UIEventWithKeyState::setModifierKeys): Moved from the header file.

  • dom/UIEventWithKeyState.h:

(WebCore::UIEventWithKeyState::modifierKeys const):
(WebCore::UIEventWithKeyState::setModifierKeys): Deleted the variant which didn't take altGraphKey
since that variant behaves same as the one which takes altGraphKey.

LayoutTests:

Added two tests for getModifierState: one manually setting modifier key states in MouseEvent's constructor,
and another one for dblclick inheriting modifier key states from the click event.

Also improved the test coverage for KeyboardEvent's getModifierState.

  • fast/events/constructors/keyboard-event-getModifierState-expected.txt:
  • fast/events/constructors/keyboard-event-getModifierState.html: Added more test cases.
  • fast/events/constructors/mouse-event-getModifierState-expected.txt: Added.
  • fast/events/constructors/mouse-event-getModifierState.html: Added.
  • fast/events/dblclick-event-getModifierState-expected.txt: Added.
  • fast/events/dblclick-event-getModifierState.html: Added.
  • fast/events/init-event-clears-capslock-expected.txt:
  • fast/events/init-event-clears-capslock.html: Added tests for MouseEvent. Note that initMouseEvent doesn't

take altGraphKey boolean unlike initKeyboardEvent.

  • platform/ios/TestExpectations: Skip the dblclick test in iOS since click event isn't supported on iOS.
5:02 AM Changeset in webkit [236052] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.22/Source/JavaScriptCore

Merge r235322 - YARR: JIT RegExps with non-greedy parenthesized sub patterns
https://bugs.webkit.org/show_bug.cgi?id=180876

Reviewed by Filip Pizlo.

Implemented the non-greedy nested parenthesis based on the prior greedy nested parenthesis work.
For the matching code, the greedy path was correct except that we don't try matching for the
non-greedy case. Added a jump out to the term after the parenthesis and a label to perform the
first / next match when we backtrack. The backtracking code needs to check to see if we have
tried the first match or if we can do another match.

Updated the disassembly annotations to include parenthesis capturing info, quantifier type and
count. Did other minor cleanup as well.

Fixed function name typo, added missing 't' in "setUsesPaternContextBuffer()".

Updated the text in some comments, both for this change as well as accuracy for existing code.

  • yarr/YarrJIT.cpp:

(JSC::Yarr::YarrGenerator::generate):
(JSC::Yarr::YarrGenerator::backtrack):
(JSC::Yarr::YarrGenerator::opCompileParenthesesSubpattern):
(JSC::Yarr::YarrGenerator::compile):
(JSC::Yarr::dumpCompileFailure):
(JSC::Yarr::jitCompile):

  • yarr/YarrJIT.h:

(JSC::Yarr::YarrCodeBlock::setUsesPatternContextBuffer):
(JSC::Yarr::YarrCodeBlock::setUsesPaternContextBuffer): Deleted.

4:23 AM Changeset in webkit [236051] by Michael Catanzaro
  • 3 edits in trunk/Source/WebKit

Unreviewed, fix incorrect WPE build fix made in r236009

This isn't the right place to add the typedef. I failed to notice that the WebKitWebView
type is not actually used anywhere in this header. Actually, the problematic function is no
longer declared or used anywhere and was just missed when WebKitScriptDialog was refactored,
so remove it.

  • UIProcess/API/wpe/WebKitScriptDialog.h:
  • UIProcess/API/wpe/WebKitScriptDialogWPE.cpp:

(webkitScriptDialogRun): Deleted.

4:06 AM Changeset in webkit [236050] by Philippe Normand
  • 2 edits in trunk/Tools

[JHBuild] Update to GStreamer 1.14.3
https://bugs.webkit.org/show_bug.cgi?id=189450

Reviewed by Xabier Rodriguez-Calvar.

  • gstreamer/jhbuild.modules: Bump GStreamer modules from 1.14.1 to 1.14.3.
2:54 AM Changeset in webkit [236049] by Carlos Garcia Campos
  • 9 edits in releases/WebKitGTK/webkit-2.22

Merge r235315 - Allow creating WeakPtrs to const objects
https://bugs.webkit.org/show_bug.cgi?id=188785

Reviewed by Geoff Garen.

Source/WebCore:

Remove some unneeded const_casts.

  • css/MediaQueryEvaluator.cpp:

(WebCore::MediaQueryEvaluator::MediaQueryEvaluator):
(WebCore::MediaQueryEvaluator::evaluate const):

  • css/MediaQueryEvaluator.h:
  • rendering/FloatingObjects.cpp:

(WebCore::ComputeFloatOffsetAdapter::ComputeFloatOffsetAdapter):
(WebCore::ComputeFloatOffsetForFloatLayoutAdapter::ComputeFloatOffsetForFloatLayoutAdapter):
(WebCore::ComputeFloatOffsetForLineLayoutAdapter::ComputeFloatOffsetForLineLayoutAdapter):
(WebCore::FindNextFloatLogicalBottomAdapter::FindNextFloatLogicalBottomAdapter):
(WebCore::FloatingObjects::FloatingObjects):

  • rendering/FloatingObjects.h:

(WebCore::FloatingObjects::renderer const):

Source/WTF:

const Foo foo;
WeakPtr<const Foo> weakConstFoo = makeWeakPtr(foo);

  • wtf/WeakPtr.h:

(WTF::WeakPtrFactory::createWeakPtr const):

Add a separate factory function for const T.
The underlying WeakReference is kept non-const in all cases.

Tools:

  • TestWebKitAPI/Tests/WTF/WeakPtr.cpp:

(TestWebKitAPI::Base::weakPtrFactory const):
(TestWebKitAPI::TEST):
(TestWebKitAPI::Base::weakPtrFactory): Deleted.

2:54 AM Changeset in webkit [236048] by Carlos Garcia Campos
  • 3 edits
    2 adds in releases/WebKitGTK/webkit-2.22

Merge r235268 - initKeyboardEvent doesn't clear CapsLock state
https://bugs.webkit.org/show_bug.cgi?id=188909

Reviewed by Wenson Hsieh.

Source/WebCore:

Fixed the bug by not preserving CapsLock state in setModifierKeys variant which takes boolean
for altGraphKey, which is only called by KeyboardEvent::initKeyboardEvent.

Test: fast/events/init-event-clears-capslock.html

  • dom/UIEventWithKeyState.h:

(WebCore::UIEventWithKeyState::setModifierKeys):

LayoutTests:

Added a regression test. Note that altGraph is only supported in WebKit
so Chrome and Firefox would fail to reset it via initKeyboardEvent.

  • fast/events/init-event-clears-capslock-expected.txt: Added.
  • fast/events/init-event-clears-capslock.html: Added.
2:54 AM Changeset in webkit [236047] by Carlos Garcia Campos
  • 116 edits in releases/WebKitGTK/webkit-2.22/Source/WebKit

Merge r235265 - Use unified build for UIProcess
https://bugs.webkit.org/show_bug.cgi?id=185014

Reviewed by Alex Christensen.

  • Sources.txt:
  • SourcesCocoa.txt:
  • UIProcess/API/APIWebsiteDataStore.h:
  • UIProcess/API/Cocoa/WKWebView.mm:
  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(-[WKWebViewConfiguration urlSchemeHandlerForURLScheme:]):

  • UIProcess/API/glib/IconDatabase.cpp:
  • UIProcess/API/gtk/PageClientImpl.cpp:
  • UIProcess/API/gtk/WebKitColorChooser.cpp:
  • UIProcess/API/gtk/WebKitPopupMenu.cpp:
  • UIProcess/API/gtk/WebKitRemoteInspectorProtocolHandler.cpp:
  • UIProcess/ApplicationStateTracker.mm:
  • UIProcess/Authentication/mac/WebCredentialMac.mm:
  • UIProcess/Automation/cocoa/WebAutomationSessionCocoa.mm:
  • UIProcess/Automation/ios/WebAutomationSessionIOS.mm:
  • UIProcess/Automation/mac/WebAutomationSessionMac.mm:
  • UIProcess/Cocoa/NavigationState.mm:
  • UIProcess/Cocoa/PlaybackSessionManagerProxy.mm:
  • UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:
  • UIProcess/Cocoa/VideoFullscreenManagerProxy.mm:
  • UIProcess/Cocoa/ViewGestureController.cpp:
  • UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm:

(-[WKWebViewContentProviderRegistry initWithConfiguration:]):
(-[WKWebViewContentProviderRegistry addPage:]):
(-[WKWebViewContentProviderRegistry removePage:]):

  • UIProcess/Cocoa/WebPageProxyCocoa.mm:
  • UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:
  • UIProcess/Cocoa/WebProcessPoolCocoa.mm:
  • UIProcess/Cocoa/WebURLSchemeHandlerCocoa.mm:
  • UIProcess/Cocoa/WebViewImpl.mm:

(-[WKTextTouchBarItemController itemForIdentifier:]):
(WebKit::WebViewImpl::performDragOperation):

  • UIProcess/Downloads/DownloadProxy.cpp:
  • UIProcess/DrawingAreaProxy.cpp:
  • UIProcess/Gamepad/UIGamepad.cpp:
  • UIProcess/Gamepad/UIGamepadProvider.cpp:
  • UIProcess/Gamepad/cocoa/UIGamepadProviderCocoa.mm:
  • UIProcess/HighPerformanceGraphicsUsageSampler.cpp:
  • UIProcess/Network/NetworkProcessProxy.cpp:
  • UIProcess/Notifications/WebNotificationManagerProxy.cpp:
  • UIProcess/PerActivityStateCPUUsageSampler.cpp:
  • UIProcess/Plugins/PluginInfoStore.cpp:
  • UIProcess/Plugins/PluginProcessProxy.cpp:
  • UIProcess/Plugins/mac/PluginInfoStoreMac.mm:
  • UIProcess/Plugins/mac/PluginProcessProxyMac.mm:
  • UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:
  • UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm:
  • UIProcess/RemoteLayerTree/RemoteLayerTreeScrollingPerformanceData.mm:
  • UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp:
  • UIProcess/RemoteLayerTree/RemoteScrollingTree.cpp:
  • UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm:
  • UIProcess/RemoteLayerTree/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:
  • UIProcess/RemoteWebInspectorProxy.cpp:
  • UIProcess/ResourceLoadStatisticsMemoryStore.cpp:
  • UIProcess/ServiceWorkerProcessProxy.cpp:
  • UIProcess/Storage/StorageProcessProxy.cpp:
  • UIProcess/SuspendedPageProxy.cpp:
  • UIProcess/TextCheckerCompletion.cpp:
  • UIProcess/UIMessagePortChannelProvider.cpp:
  • UIProcess/UserMediaPermissionCheckProxy.cpp:
  • UIProcess/UserMediaPermissionRequestManagerProxy.cpp:
  • UIProcess/UserMediaPermissionRequestProxy.cpp:
  • UIProcess/VisitedLinkStore.cpp:
  • UIProcess/WKInspectorHighlightView.mm:

(findIntersectionOnLineBetweenPoints):
(quadIntersection):
(layerPathWithHole):
(layerPath):
(-[WKInspectorHighlightView _layoutForNodeHighlight:offset:]):
(-[WKInspectorHighlightView _layoutForNodeListHighlight:]):
(-[WKInspectorHighlightView _layoutForRectsHighlight:]):
(-[WKInspectorHighlightView update:]):

  • UIProcess/WebBackForwardList.cpp:
  • UIProcess/WebContextMenuListenerProxy.cpp:
  • UIProcess/WebCookieManagerProxy.cpp:
  • UIProcess/WebEditCommandProxy.cpp:
  • UIProcess/WebFrameProxy.cpp:
  • UIProcess/WebFullScreenManagerProxy.cpp:
  • UIProcess/WebInspectorProxy.cpp:
  • UIProcess/WebNavigationState.cpp:
  • UIProcess/WebOpenPanelResultListenerProxy.cpp:
  • UIProcess/WebPageInjectedBundleClient.cpp:
  • UIProcess/WebPageProxy.cpp:
  • UIProcess/WebProcessPool.cpp:
  • UIProcess/WebProcessProxy.cpp:
  • UIProcess/WebStorage/LocalStorageDatabaseTracker.cpp:
  • UIProcess/WebURLSchemeHandler.cpp:
  • UIProcess/WebURLSchemeTask.cpp:
  • UIProcess/gtk/AcceleratedBackingStoreWayland.cpp:
  • UIProcess/gtk/AcceleratedBackingStoreX11.cpp:
  • UIProcess/ios/DragDropInteractionState.mm:
  • UIProcess/ios/InputViewUpdateDeferrer.mm:
  • UIProcess/ios/PageClientImplIOS.mm:

(-[WKEditCommandObjC initWithWebEditCommandProxy:]):
(-[WKEditCommandObjC command]):

  • UIProcess/ios/SmartMagnificationController.mm:
  • UIProcess/ios/TextCheckerIOS.mm:
  • UIProcess/ios/ViewGestureControllerIOS.mm:

(WebKit::ViewGestureController::beginSwipeGesture):
(WebKit::ViewGestureController::removeSwipeSnapshot):

  • UIProcess/ios/WKActionSheetAssistant.mm:

(presentationStyleForView):

  • UIProcess/ios/WKApplicationStateTrackingView.mm:

(-[WKApplicationStateTrackingView initWithFrame:webView:]):
(-[WKApplicationStateTrackingView _applicationDidEnterBackground]):
(-[WKApplicationStateTrackingView _applicationDidFinishSnapshottingAfterEnteringBackground]):
(-[WKApplicationStateTrackingView _applicationWillEnterForeground]):

  • UIProcess/ios/WKGeolocationProviderIOS.mm:

(-[WKGeolocationProviderIOS _startUpdating]):
(-[WKGeolocationProviderIOS _stopUpdating]):
(-[WKGeolocationProviderIOS _setEnableHighAccuracy:]):
(-[WKGeolocationProviderIOS init]):
(-[WKGeolocationProviderIOS initWithProcessPool:]):
(-[WKGeolocationProviderIOS decidePolicyForGeolocationRequestFromOrigin:frame:completionHandler:view:]):
(-[WKGeolocationProviderIOS geolocationAuthorizationGranted]):
(-[WKLegacyCoreLocationProvider positionChanged:]):

  • UIProcess/ios/WKKeyboardScrollingAnimator.mm:

(-[WKKeyboardScrollingAnimator _scrollOffsetForEvent:]):
(-[WKKeyboardScrollingAnimator beginWithEvent:]):
(-[WKKeyboardScrollingAnimator handleKeyEvent:]):
(-[WKKeyboardScrollingAnimator startAnimatedScroll]):
(-[WKKeyboardScrollingAnimator stopAnimatedScroll]):

  • UIProcess/ios/WKLegacyPDFView.mm:
  • UIProcess/ios/WKPDFView.mm:

(-[WKPDFView web_setContentProviderData:suggestedFilename:]):

  • UIProcess/ios/WKScrollView.mm:

(-[WKScrollView _systemContentInset]):

  • UIProcess/ios/WKSystemPreviewView.mm:
  • UIProcess/ios/WebPageProxyIOS.mm:
  • UIProcess/mac/CorrectionPanel.mm:

(correctionIndicatorType):

  • UIProcess/mac/PageClientImplMac.mm:
  • UIProcess/mac/RemoteWebInspectorProxyMac.mm:

(-[WKRemoteWebInspectorProxyObjCAdapter initWithRemoteWebInspectorProxy:]):

  • UIProcess/mac/TextCheckerMac.mm:
  • UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:
  • UIProcess/mac/ViewGestureControllerMac.mm:
  • UIProcess/mac/ViewSnapshotStore.mm:
  • UIProcess/mac/WKFullKeyboardAccessWatcher.mm:

(-[WKFullKeyboardAccessWatcher notifyAllProcessPools]):

  • UIProcess/mac/WKFullScreenWindowController.mm:

(WebKit::WKFullScreenWindowControllerVideoFullscreenModelClient::setInterface):
(WebKit::WKFullScreenWindowControllerVideoFullscreenModelClient::interface const):
(-[WKFullScreenWindowController initWithWindow:webView:page:]):
(-[WKFullScreenWindowController enterFullScreen:]):
(-[WKFullScreenWindowController finishedEnterFullScreenAnimation:]):
(-[WKFullScreenWindowController finishedExitFullScreenAnimation:]):
(-[WKFullScreenWindowController windowDidEnterFullScreen:]):
(-[WKFullScreenWindowController windowDidExitFullScreen:]):
(-[WKFullScreenWindowController _manager]):
(-[WKFullScreenWindowController _replaceView:with:]):
(zoomAnimation):
(createMask):
(maskAnimation):

  • UIProcess/mac/WKImmediateActionController.mm:

(-[WKImmediateActionController initWithPage:view:viewImpl:recognizer:]):
(-[WKImmediateActionController willDestroyView:]):
(-[WKImmediateActionController _clearImmediateActionState]):
(-[WKImmediateActionController didPerformImmediateActionHitTest:contentPreventsDefault:userData:]):
(-[WKImmediateActionController immediateActionRecognizerWillPrepare:]):
(-[WKImmediateActionController immediateActionRecognizerWillBeginAnimation:]):
(-[WKImmediateActionController _webHitTestResult]):
(-[WKImmediateActionController _defaultAnimationController]):
(-[WKImmediateActionController menuItem:maxSizeForPoint:]):
(-[WKImmediateActionController _animationControllerForDataDetectedText]):
(-[WKImmediateActionController _animationControllerForDataDetectedLink]):
(-[WKImmediateActionController _animationControllerForText]):

  • UIProcess/mac/WKInspectorViewController.mm:

(-[WKInspectorViewController initWithInspectedPage:]):
(-[WKInspectorViewController webView]):
(-[WKInspectorViewController configuration]):
(-[WKInspectorViewController webView:runOpenPanelWithParameters:initiatedByFrame:completionHandler:]):
(-[WKInspectorViewController webView:decidePolicyForNavigationAction:decisionHandler:]):
(-[WKInspectorViewController inspectorWKWebViewReload:]):

  • UIProcess/mac/WKPrintingView.mm:

(-[WKPrintingView _expectedPreviewCallbackForRect:]):
(pageDidDrawToImage):
(-[WKPrintingView _preparePDFDataForPrintingOnSecondaryThread]):
(pageDidComputePageRects):
(-[WKPrintingView _askPageToComputePageRects]):
(-[WKPrintingView _pageForRect:]):
(-[WKPrintingView _drawPDFDocument:page:atPoint:]):
(-[WKPrintingView _drawPreview:]):
(-[WKPrintingView drawRect:]):
(-[WKPrintingView rectForPage:]):

  • UIProcess/mac/WKTextFinderClient.mm:

(-[WKTextFinderClient initWithPage:view:]):
(-[WKTextFinderClient findMatchesForString:relativeToMatch:findOptions:maxResults:resultCollector:]):
(-[WKTextFinderClient getSelectedText:]):
(arrayFromRects):
(-[WKTextFinderClient didFindStringMatchesWithRects:didWrapAround:]):
(-[WKTextFinderClient didGetImageForMatchResult:]):

  • UIProcess/mac/WKTextInputWindowController.mm:
  • UIProcess/mac/WKViewLayoutStrategy.mm:

(+[WKViewLayoutStrategy layoutStrategyWithPage:view:viewImpl:mode:]):
(-[WKViewLayoutStrategy initWithPage:view:viewImpl:mode:]):
(-[WKViewViewSizeLayoutStrategy initWithPage:view:viewImpl:mode:]):
(-[WKViewFixedSizeLayoutStrategy initWithPage:view:viewImpl:mode:]):
(-[WKViewDynamicSizeComputedFromViewScaleLayoutStrategy initWithPage:view:viewImpl:mode:]):
(-[WKViewDynamicSizeComputedFromMinimumDocumentSizeLayoutStrategy initWithPage:view:viewImpl:mode:]):

  • UIProcess/mac/WebColorPickerMac.mm:
  • UIProcess/mac/WebContextMenuProxyMac.mm:

(-[WKMenuTarget forwardContextMenuAction:]):
(WebKit::menuItemIdentifier):
(WebKit::WebContextMenuProxyMac::createContextMenuItem):

  • UIProcess/mac/WebInspectorProxyMac.mm:

(-[WKWebInspectorProxyObjCAdapter initWithWebInspectorProxy:]):

  • UIProcess/mac/WebPageProxyMac.mm:
  • UIProcess/mac/WebPopupMenuProxyMac.mm:
  • UIProcess/win/PageClientImpl.cpp:
  • UIProcess/win/TextCheckerWin.cpp:
  • UIProcess/win/WebContextMenuProxyWin.cpp:
  • UIProcess/win/WebPopupMenuProxyWin.cpp:
  • UIProcess/win/WebView.cpp:
  • UIProcess/wpe/TextCheckerWPE.cpp:
  • UIProcess/wpe/WebPasteboardProxyWPE.cpp:
  • WebKit.xcodeproj/project.pbxproj:
2:25 AM Changeset in webkit [236046] by Carlos Garcia Campos
  • 22 edits in releases/WebKitGTK/webkit-2.22/Source

Merge r235261 - JSRunLoopTimer may run part of a member function after it's destroyed
https://bugs.webkit.org/show_bug.cgi?id=188426

Reviewed by Mark Lam.

Source/JavaScriptCore:

When I was reading the JSRunLoopTimer code, I noticed that it is possible
to end up running timer code after the class had been destroyed.

The issue I spotted was in this function:
`
void JSRunLoopTimer::timerDidFire()
{

JSLock* apiLock = m_apiLock.get();
if (!apiLock) {

Likely a buggy usage: the timer fired while JSRunLoopTimer was being destroyed.
return;

}
HERE
std::lock_guard<JSLock> lock(*apiLock);
RefPtr<VM> vm = apiLock->vm();
if (!vm) {

The VM has been destroyed, so we should just give up.
return;

}

doWork();

}
`

Look at the comment 'HERE'. Let's say that the timer callback thread gets context
switched before grabbing the API lock. Then, some other thread destroys the VM.
And let's say that the VM owns (perhaps transitively) this timer. Then, the
timer would run code and access member variables after it was destroyed.

This patch fixes this issue by introducing a new timer manager class.
This class manages timers on a per VM basis. When a timer is scheduled,
this class refs the timer. It also calls the timer callback while actively
maintaining a +1 ref to it. So, it's no longer possible to call the timer
callback after the timer has been destroyed. However, calling a timer callback
can still race with the VM being destroyed. We continue to detect this case and
bail out of the callback early.

This patch also removes a lot of duplicate code between GCActivityCallback
and JSRunLoopTimer.

  • heap/EdenGCActivityCallback.cpp:

(JSC::EdenGCActivityCallback::doCollection):
(JSC::EdenGCActivityCallback::lastGCLength):
(JSC::EdenGCActivityCallback::deathRate):

  • heap/EdenGCActivityCallback.h:
  • heap/FullGCActivityCallback.cpp:

(JSC::FullGCActivityCallback::doCollection):
(JSC::FullGCActivityCallback::lastGCLength):
(JSC::FullGCActivityCallback::deathRate):

  • heap/FullGCActivityCallback.h:
  • heap/GCActivityCallback.cpp:

(JSC::GCActivityCallback::doWork):
(JSC::GCActivityCallback::scheduleTimer):
(JSC::GCActivityCallback::didAllocate):
(JSC::GCActivityCallback::willCollect):
(JSC::GCActivityCallback::cancel):
(JSC::GCActivityCallback::cancelTimer): Deleted.
(JSC::GCActivityCallback::nextFireTime): Deleted.

  • heap/GCActivityCallback.h:
  • heap/Heap.cpp:

(JSC::Heap::reportAbandonedObjectGraph):
(JSC::Heap::notifyIncrementalSweeper):
(JSC::Heap::updateAllocationLimits):
(JSC::Heap::didAllocate):

  • heap/IncrementalSweeper.cpp:

(JSC::IncrementalSweeper::scheduleTimer):
(JSC::IncrementalSweeper::doWork):
(JSC::IncrementalSweeper::doSweep):
(JSC::IncrementalSweeper::sweepNextBlock):
(JSC::IncrementalSweeper::startSweeping):
(JSC::IncrementalSweeper::stopSweeping):

  • heap/IncrementalSweeper.h:
  • heap/StopIfNecessaryTimer.cpp:

(JSC::StopIfNecessaryTimer::doWork):
(JSC::StopIfNecessaryTimer::scheduleSoon):

  • heap/StopIfNecessaryTimer.h:
  • runtime/JSRunLoopTimer.cpp:

(JSC::epochTime):
(JSC::JSRunLoopTimer::Manager::timerDidFireCallback):
(JSC::JSRunLoopTimer::Manager::PerVMData::setRunLoop):
(JSC::JSRunLoopTimer::Manager::PerVMData::PerVMData):
(JSC::JSRunLoopTimer::Manager::PerVMData::~PerVMData):
(JSC::JSRunLoopTimer::Manager::timerDidFire):
(JSC::JSRunLoopTimer::Manager::shared):
(JSC::JSRunLoopTimer::Manager::registerVM):
(JSC::JSRunLoopTimer::Manager::unregisterVM):
(JSC::JSRunLoopTimer::Manager::scheduleTimer):
(JSC::JSRunLoopTimer::Manager::cancelTimer):
(JSC::JSRunLoopTimer::Manager::timeUntilFire):
(JSC::JSRunLoopTimer::Manager::didChangeRunLoop):
(JSC::JSRunLoopTimer::timerDidFire):
(JSC::JSRunLoopTimer::JSRunLoopTimer):
(JSC::JSRunLoopTimer::timeUntilFire):
(JSC::JSRunLoopTimer::setTimeUntilFire):
(JSC::JSRunLoopTimer::cancelTimer):
(JSC::JSRunLoopTimer::setRunLoop): Deleted.
(JSC::JSRunLoopTimer::timerDidFireCallback): Deleted.
(JSC::JSRunLoopTimer::scheduleTimer): Deleted.

  • runtime/JSRunLoopTimer.h:

(JSC::JSRunLoopTimer::Manager::PerVMData::PerVMData):

  • runtime/PromiseDeferredTimer.cpp:

(JSC::PromiseDeferredTimer::doWork):
(JSC::PromiseDeferredTimer::runRunLoop):
(JSC::PromiseDeferredTimer::addPendingPromise):
(JSC::PromiseDeferredTimer::hasPendingPromise):
(JSC::PromiseDeferredTimer::hasDependancyInPendingPromise):
(JSC::PromiseDeferredTimer::cancelPendingPromise):
(JSC::PromiseDeferredTimer::scheduleWorkSoon):

  • runtime/PromiseDeferredTimer.h:
  • runtime/VM.cpp:

(JSC::VM::VM):
(JSC::VM::~VM):
(JSC::VM::setRunLoop):
(JSC::VM::registerRunLoopTimer): Deleted.
(JSC::VM::unregisterRunLoopTimer): Deleted.

  • runtime/VM.h:

(JSC::VM::runLoop const):

  • wasm/js/WebAssemblyPrototype.cpp:

(JSC::webAssemblyModuleValidateAsyncInternal):
(JSC::instantiate):
(JSC::compileAndInstantiate):
(JSC::webAssemblyModuleInstantinateAsyncInternal):
(JSC::webAssemblyCompileStreamingInternal):
(JSC::webAssemblyInstantiateStreamingInternal):

Source/WebCore:

  • page/cocoa/ResourceUsageThreadCocoa.mm:

(WebCore::ResourceUsageThread::platformThreadBody):

  • page/linux/ResourceUsageThreadLinux.cpp:

(WebCore::ResourceUsageThread::platformThreadBody):

2:25 AM Changeset in webkit [236045] by Carlos Garcia Campos
  • 30 edits in releases/WebKitGTK/webkit-2.22/Source

Merge r235254 - Move vmEntryGlobalObject() to VM from CallFrame.
https://bugs.webkit.org/show_bug.cgi?id=188900
<rdar://problem/43655753>

Reviewed by Michael Saboff.

Source/JavaScriptCore:

Also introduced CallFrame::isGlobalExec() which makes use of one property of
GlobalExecs to identify them i.e. GlobalExecs have null callerFrame and returnPCs.
CallFrame::initGlobalExec() ensures this.

In contrast, normal CallFrames always have a callerFrame (because they must at
least be preceded by a VM EntryFrame) and a returnPC (at least return to the
VM entry glue).

  • API/APIUtils.h:

(handleExceptionIfNeeded):
(setException):

  • API/JSBase.cpp:

(JSEvaluateScript):
(JSCheckScriptSyntax):

  • API/JSContextRef.cpp:

(JSGlobalContextRetain):
(JSGlobalContextRelease):
(JSGlobalContextCopyName):
(JSGlobalContextSetName):
(JSGlobalContextGetRemoteInspectionEnabled):
(JSGlobalContextSetRemoteInspectionEnabled):
(JSGlobalContextGetIncludesNativeCallStackWhenReportingExceptions):
(JSGlobalContextSetIncludesNativeCallStackWhenReportingExceptions):
(JSGlobalContextGetDebuggerRunLoop):
(JSGlobalContextSetDebuggerRunLoop):
(JSGlobalContextGetAugmentableInspectorController):

  • API/JSValue.mm:

(reportExceptionToInspector):

  • API/glib/JSCClass.cpp:

(jscContextForObject):

  • API/glib/JSCContext.cpp:

(jsc_context_evaluate_in_object):

  • debugger/Debugger.cpp:

(JSC::Debugger::pauseIfNeeded):

  • debugger/DebuggerCallFrame.cpp:

(JSC::DebuggerCallFrame::vmEntryGlobalObject const):
(JSC::DebuggerCallFrame::evaluateWithScopeExtension):

  • interpreter/CallFrame.cpp:

(JSC::CallFrame::vmEntryGlobalObject): Deleted.

  • interpreter/CallFrame.h:

(JSC::ExecState::scope const):
(JSC::ExecState::noCaller):
(JSC::ExecState::isGlobalExec const):

  • interpreter/Interpreter.cpp:

(JSC::notifyDebuggerOfUnwinding):
(JSC::Interpreter::notifyDebuggerOfExceptionToBeThrown):
(JSC::Interpreter::debug):

  • runtime/CallData.cpp:

(JSC::profiledCall):

  • runtime/Completion.cpp:

(JSC::evaluate):
(JSC::profiledEvaluate):
(JSC::evaluateWithScopeExtension):
(JSC::loadAndEvaluateModule):
(JSC::loadModule):
(JSC::linkAndEvaluateModule):
(JSC::importModule):

  • runtime/ConstructData.cpp:

(JSC::profiledConstruct):

  • runtime/Error.cpp:

(JSC::getStackTrace):

  • runtime/VM.cpp:

(JSC::VM::throwException):
(JSC::VM::vmEntryGlobalObject const):

  • runtime/VM.h:

Source/WebCore:

No new tests needed because this patch does not introduce new functionality.

  • bindings/js/JSCustomXPathNSResolver.cpp:

(WebCore::JSCustomXPathNSResolver::create):

  • bindings/js/JSDOMGlobalObject.cpp:

(WebCore::callerGlobalObject):
(WebCore::toJSDOMGlobalObject): Deleted.

  • bindings/js/JSDOMWindowBase.cpp:

(WebCore::firstDOMWindow):

  • bridge/c/c_utility.cpp:

(JSC::Bindings::convertValueToNPVariant):

  • bridge/objc/WebScriptObject.mm:

(WebCore::addExceptionToConsole):

  • bridge/objc/objc_instance.mm:

(ObjcInstance::moveGlobalExceptionToExecState):

  • bridge/objc/objc_runtime.mm:

(JSC::Bindings::convertValueToObjcObject):

  • bridge/objc/objc_utility.mm:

(JSC::Bindings::convertValueToObjcValue):

  • testing/Internals.cpp:

(WebCore::Internals::cloneArrayBuffer):

Source/WebKitLegacy/mac:

  • WebView/WebScriptDebugger.mm:

(WebScriptDebugger::sourceParsed):

2:24 AM Changeset in webkit [236044] by Carlos Garcia Campos
  • 8 edits
    2 adds in releases/WebKitGTK/webkit-2.22

Merge r235243 - Assert in NetworkBlobRegistry::unregisterBlobURL after network process had terminated
https://bugs.webkit.org/show_bug.cgi?id=188880

Reviewed by Saam Barati.

Source/WebKit:

Removed the debug assertion. WebContent process might be asking this network process
to unregister a blob registered from another network processs which had since crashed.

We could keep track of which blob had been registered with which network process
in WebContent process and avoid sending IPC to the network process but that's a lot of
house-keeping for virtually no benefit other than not hitting this assertion.

  • NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:

(WebKit::NetworkBlobRegistry::unregisterBlobURL):

Tools:

Fixed the bug that testRunner's terminateNetworkProcess, terminateServiceWorkerProcess, and terminateStorageProcess
were asynchronously terminating respective processes. Do so synchronously so that we can deterministically
test WebKit's behavior in layout tests.

  • WebKitTestRunner/InjectedBundle/TestRunner.cpp:

(WTR::TestRunner::terminateNetworkProcess):
(WTR::TestRunner::terminateServiceWorkerProcess):
(WTR::TestRunner::terminateStorageProcess):

  • WebKitTestRunner/TestInvocation.cpp:

(WTR::TestInvocation::didReceiveMessageFromInjectedBundle):
(WTR::TestInvocation::didReceiveSynchronousMessageFromInjectedBundle):

LayoutTests:

Added a layout test which demonstrates this debug assertion.

  • TestExpectations:
  • fast/files/blob-network-process-crash-expected.txt: Added.
  • fast/files/blob-network-process-crash.html: Added.
  • platform/wk2/TestExpectations:
1:50 AM Changeset in webkit [236043] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/JavaScriptCore

Merge r235238 - YARR: Need to JIT compile a RegExp before using containsNestedSubpatterns flag
https://bugs.webkit.org/show_bug.cgi?id=188895

Reviewed by Mark Lam.

Found while working on another change. This will allow processing of nested
parenthesis that require saved ParenContext structures.

  • yarr/YarrJIT.cpp:

(JSC::Yarr::YarrGenerator::compile):

1:50 AM Changeset in webkit [236042] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebKit

Merge r235208 - De-unify WebPage
https://bugs.webkit.org/show_bug.cgi?id=188865

Reviewed by Wenson Hsieh.

  • Sources.txt:
  • WebKit.xcodeproj/project.pbxproj:

WebPage being unified is causing mysterious build issues inside Carbon headers
on High Sierra only. Also, WebPage by itself takes longer to build than
most full unified source files, so it might not make sense to unify it
with others (to maximize parallelism).

1:50 AM Changeset in webkit [236041] by Carlos Garcia Campos
  • 159 edits in releases/WebKitGTK/webkit-2.22/Source/WebKit

Merge r235176 - Use unified build for WebProcess
https://bugs.webkit.org/show_bug.cgi?id=185015

Reviewed by Alex Christensen.

  • Sources.txt:
  • SourcesCocoa.txt:
  • UIProcess/WebPageProxy.h:
  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:
  • WebProcess/Databases/WebDatabaseProvider.cpp:
  • WebProcess/EntryPoint/mac/XPCService/WebContentServiceEntryPoint.mm:
  • WebProcess/FileAPI/BlobRegistryProxy.cpp:
  • WebProcess/FullScreen/WebFullScreenManager.cpp:
  • WebProcess/Gamepad/WebGamepadProvider.cpp:
  • WebProcess/Geolocation/GeolocationPermissionRequestManager.cpp:
  • WebProcess/Geolocation/WebGeolocationManager.cpp:
  • WebProcess/InjectedBundle/API/c/mac/WKBundlePageBannerMac.mm:
  • WebProcess/InjectedBundle/API/gtk/DOM/GObjectEventListener.cpp:
  • WebProcess/InjectedBundle/DOM/InjectedBundleCSSStyleDeclarationHandle.cpp:
  • WebProcess/InjectedBundle/DOM/InjectedBundleFileHandle.cpp:
  • WebProcess/InjectedBundle/DOM/InjectedBundleNodeHandle.cpp:
  • WebProcess/InjectedBundle/DOM/InjectedBundleRangeHandle.cpp:
  • WebProcess/InjectedBundle/InjectedBundle.cpp:
  • WebProcess/InjectedBundle/InjectedBundleBackForwardList.cpp:
  • WebProcess/InjectedBundle/InjectedBundleBackForwardListItem.cpp:
  • WebProcess/InjectedBundle/InjectedBundleDOMWindowExtension.cpp:
  • WebProcess/InjectedBundle/InjectedBundleHitTestResult.cpp:
  • WebProcess/InjectedBundle/InjectedBundleNavigationAction.cpp:
  • WebProcess/InjectedBundle/InjectedBundlePageContextMenuClient.cpp:
  • WebProcess/InjectedBundle/InjectedBundlePageEditorClient.cpp:
  • WebProcess/InjectedBundle/InjectedBundlePageFormClient.cpp:
  • WebProcess/InjectedBundle/InjectedBundlePageFullScreenClient.cpp:
  • WebProcess/InjectedBundle/InjectedBundlePageLoaderClient.cpp:
  • WebProcess/InjectedBundle/InjectedBundlePagePolicyClient.cpp:
  • WebProcess/InjectedBundle/InjectedBundlePageResourceLoadClient.cpp:
  • WebProcess/InjectedBundle/InjectedBundlePageUIClient.cpp:
  • WebProcess/InjectedBundle/InjectedBundleScriptWorld.cpp:
  • WebProcess/InjectedBundle/mac/InjectedBundleMac.mm:
  • WebProcess/MediaStream/UserMediaPermissionRequestManager.cpp:
  • WebProcess/Network/NetworkProcessConnection.cpp:
  • WebProcess/Network/WebLoaderStrategy.cpp:
  • WebProcess/Network/WebResourceLoader.cpp:
  • WebProcess/Network/WebSocketProvider.cpp:
  • WebProcess/Network/WebSocketStream.cpp:
  • WebProcess/Network/webrtc/LibWebRTCProvider.cpp:
  • WebProcess/Network/webrtc/LibWebRTCResolver.cpp:
  • WebProcess/Network/webrtc/LibWebRTCResolver.h:
  • WebProcess/Network/webrtc/LibWebRTCSocket.cpp:
  • WebProcess/Network/webrtc/LibWebRTCSocket.h:
  • WebProcess/Network/webrtc/WebMDNSRegister.cpp:
  • WebProcess/Network/webrtc/WebRTCMonitor.cpp:
  • WebProcess/Network/webrtc/WebRTCMonitor.h:
  • WebProcess/Notifications/NotificationPermissionRequestManager.cpp:
  • WebProcess/Notifications/WebNotificationManager.cpp:
  • WebProcess/Plugins/Netscape/JSNPMethod.cpp:
  • WebProcess/Plugins/Netscape/JSNPObject.cpp:
  • WebProcess/Plugins/Netscape/NPJSObject.cpp:
  • WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:
  • WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:
  • WebProcess/Plugins/Netscape/NetscapePlugin.cpp:
  • WebProcess/Plugins/Netscape/NetscapePluginNone.cpp:
  • WebProcess/Plugins/Netscape/NetscapePluginStream.cpp:
  • WebProcess/Plugins/Netscape/mac/NetscapePluginMac.mm:
  • WebProcess/Plugins/PDF/PDFPlugin.mm:
  • WebProcess/Plugins/PDF/PDFPluginAnnotation.mm:
  • WebProcess/Plugins/PDF/PDFPluginChoiceAnnotation.mm:
  • WebProcess/Plugins/PDF/PDFPluginPasswordField.mm:
  • WebProcess/Plugins/PDF/PDFPluginTextAnnotation.mm:
  • WebProcess/Plugins/Plugin.cpp:
  • WebProcess/Plugins/PluginProcessConnection.cpp:
  • WebProcess/Plugins/PluginProxy.cpp:
  • WebProcess/Plugins/PluginView.cpp:
  • WebProcess/Plugins/WebPluginInfoProvider.cpp:
  • WebProcess/Storage/ServiceWorkerClientFetch.cpp:
  • WebProcess/Storage/WebSWClientConnection.cpp:
  • WebProcess/Storage/WebSWContextManagerConnection.cpp:
  • WebProcess/Storage/WebSWOriginTable.cpp:
  • WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp:
  • WebProcess/Storage/WebServiceWorkerProvider.cpp:
  • WebProcess/Storage/WebToStorageProcessConnection.cpp:
  • WebProcess/UserContent/WebUserContentController.cpp:
  • WebProcess/WebConnectionToUIProcess.cpp:
  • WebProcess/WebCoreSupport/SessionStateConversion.cpp:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:
  • WebProcess/WebCoreSupport/WebColorChooser.cpp:
  • WebProcess/WebCoreSupport/WebContextMenuClient.cpp:
  • WebProcess/WebCoreSupport/WebDataListSuggestionPicker.cpp:
  • WebProcess/WebCoreSupport/WebDiagnosticLoggingClient.cpp:
  • WebProcess/WebCoreSupport/WebDragClient.cpp:
  • WebProcess/WebCoreSupport/WebEditorClient.cpp:
  • WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
  • WebProcess/WebCoreSupport/WebGeolocationClient.cpp:
  • WebProcess/WebCoreSupport/WebInspectorClient.cpp:
  • WebProcess/WebCoreSupport/WebMessagePortChannelProvider.cpp:
  • WebProcess/WebCoreSupport/WebNotificationClient.cpp:
  • WebProcess/WebCoreSupport/WebPerformanceLoggingClient.cpp:
  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
  • WebProcess/WebCoreSupport/WebPopupMenu.cpp:
  • WebProcess/WebCoreSupport/WebProgressTrackerClient.cpp:
  • WebProcess/WebCoreSupport/WebSearchPopupMenu.cpp:
  • WebProcess/WebCoreSupport/WebUserMediaClient.cpp:
  • WebProcess/WebCoreSupport/WebValidationMessageClient.cpp:
  • WebProcess/WebCoreSupport/ios/WebChromeClientIOS.mm:
  • WebProcess/WebCoreSupport/ios/WebEditorClientIOS.mm:
  • WebProcess/WebCoreSupport/ios/WebFrameLoaderClientIOS.mm:
  • WebProcess/WebCoreSupport/mac/WebAlternativeTextClient.cpp:
  • WebProcess/WebCoreSupport/mac/WebContextMenuClientMac.mm:
  • WebProcess/WebCoreSupport/mac/WebDragClientMac.mm:
  • WebProcess/WebCoreSupport/mac/WebEditorClientMac.mm:
  • WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm:
  • WebProcess/WebCoreSupport/mac/WebPopupMenuMac.mm:
  • WebProcess/WebCoreSupport/soup/WebFrameNetworkingContext.cpp:
  • WebProcess/WebCoreSupport/win/WebContextMenuClientWin.cpp:
  • WebProcess/WebCoreSupport/win/WebPopupMenuWin.cpp:
  • WebProcess/WebCoreSupport/wpe/WebEditorClientWPE.cpp:
  • WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
  • WebProcess/WebPage/DrawingArea.cpp:
  • WebProcess/WebPage/EventDispatcher.cpp:
  • WebProcess/WebPage/FindController.cpp:
  • WebProcess/WebPage/LayerTreeHost.cpp:
  • WebProcess/WebPage/RemoteLayerTree/GraphicsLayerCARemote.cpp:
  • WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.cpp:
  • WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemoteCustom.mm:
  • WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemoteTiledBacking.cpp:
  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeContext.mm:
  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDisplayRefreshMonitor.mm:
  • WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:
  • WebProcess/WebPage/RemoteLayerTree/RemoteScrollingCoordinator.mm:
  • WebProcess/WebPage/RemoteWebInspectorUI.cpp:
  • WebProcess/WebPage/ViewGestureGeometryCollector.cpp:
  • WebProcess/WebPage/VisitedLinkTableController.cpp:
  • WebProcess/WebPage/WebBackForwardListProxy.cpp:
  • WebProcess/WebPage/WebContextMenu.cpp:
  • WebProcess/WebPage/WebDocumentLoader.cpp:
  • WebProcess/WebPage/WebFrame.cpp:
  • WebProcess/WebPage/WebInspector.cpp:
  • WebProcess/WebPage/WebInspectorUI.cpp:
  • WebProcess/WebPage/WebPage.cpp:
  • WebProcess/WebPage/WebPageOverlay.cpp:
  • WebProcess/WebPage/WebURLSchemeHandlerProxy.cpp:
  • WebProcess/WebPage/WebURLSchemeTaskProxy.cpp:
  • WebProcess/WebPage/ios/FindControllerIOS.mm:
  • WebProcess/WebPage/ios/WebPageIOS.mm:
  • WebProcess/WebPage/mac/DrawingAreaMac.cpp:
  • WebProcess/WebPage/mac/PageBannerMac.mm:
  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:
  • WebProcess/WebPage/mac/WKAccessibilityWebPageObjectBase.mm:
  • WebProcess/WebPage/mac/WebPageMac.mm:
  • WebProcess/WebPage/win/WebPageWin.cpp:
  • WebProcess/WebPage/wpe/AcceleratedSurfaceWPE.cpp:
  • WebProcess/WebPage/wpe/WebPageWPE.cpp:
  • WebProcess/WebProcess.cpp:
  • WebProcess/WebStorage/StorageAreaImpl.cpp:
  • WebProcess/WebStorage/StorageAreaMap.cpp:
  • WebProcess/WebStorage/StorageNamespaceImpl.cpp:
  • WebProcess/WebStorage/WebStorageNamespaceProvider.cpp:
  • WebProcess/cocoa/PlaybackSessionManager.mm:
  • WebProcess/cocoa/UserMediaCaptureManager.cpp:
  • WebProcess/cocoa/VideoFullscreenManager.mm:
  • WebProcess/cocoa/WebProcessCocoa.mm:
  • WebProcess/win/WebProcessMainWin.cpp:
  • WebProcess/win/WebProcessWin.cpp:
  • WebProcess/wpe/WebProcessMainWPE.cpp:
1:49 AM Changeset in webkit [236040] by Carlos Garcia Campos
  • 4 edits
    1 add in releases/WebKitGTK/webkit-2.22

Merge r235177 - The DFG CFGSimplification phase shouldn’t jettison a block when it’s the target of both branch directions.
https://bugs.webkit.org/show_bug.cgi?id=188298
<rdar://problem/42888427>

Reviewed by Saam Barati.

JSTests:

  • stress/bug-188298.js: Added.

Source/JavaScriptCore:

In the event that both targets of a Branch is the same block, then even if we'll
always take one path of the branch, the other target is not unreachable because
it is the same target as the one in the taken path. Hence, it should not be
jettisoned.

  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Added DFGCFG.h which is in use and should have been added to the project.
  • dfg/DFGCFGSimplificationPhase.cpp:

(JSC::DFG::CFGSimplificationPhase::run):

1:49 AM Changeset in webkit [236039] by Carlos Garcia Campos
  • 7 edits in releases/WebKitGTK/webkit-2.22

Merge r235174 - Fetch: Stop checking Request.integrity's value in no-cors mode
https://bugs.webkit.org/show_bug.cgi?id=188802

Patch by Rob Buis <rbuis@igalia.com> on 2018-08-22
Reviewed by Frédéric Wang.

LayoutTests/imported/w3c:

Update integrity.html expected result.

  • web-platform-tests/fetch/api/basic/integrity-expected.txt:

Source/WebCore:

Remove this check since it was removed from the spec.

Behavior matches Chrome and Firefox.

Test: http/tests/subresource-integrity/sri-fetch.js:

  • Modules/fetch/FetchRequest.cpp:

(WebCore::FetchRequest::initializeOptions):

LayoutTests:

Unskip fetch/api/basic/integrity.html and adjust sri-fetch.js.

1:49 AM Changeset in webkit [236038] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r235171 - [GTK] Never return an uninitialized ImageGStreamer object.
https://bugs.webkit.org/show_bug.cgi?id=188305

Reviewed by Philippe Normand.

The single caller was already checking for a null return value, so
make that check actually do something. Also remove the null-check on
the return value of image(), which asserted that it would never return
null.

Test: fast/canvas/canvas-createPattern-video-loading.html

  • platform/graphics/gstreamer/ImageGStreamer.h:

(WebCore::ImageGStreamer::createImage): Return null if m_image wasn't created.
(WebCore::ImageGStreamer::image): Return a reference.
(WebCore::ImageGStreamer::rect): Always assert that m_image is present.

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:

(WebCore::MediaPlayerPrivateGStreamerBase::paint): Update for new signature.

1:30 AM Changeset in webkit [236037] by Philippe Normand
  • 2 edits in trunk/Tools

[JHBuild] Doesn't check sha256 sums
https://bugs.webkit.org/show_bug.cgi?id=189646

Reviewed by Michael Catanzaro.

  • gstreamer/jhbuild.modules: Properly set the sha256: prefix on hashes.
1:14 AM Changeset in webkit [236036] by Carlos Garcia Campos
  • 2 edits in releases/WebKitGTK/webkit-2.22/Source/WebCore

Merge r235170 - Add changes missing from r234925.

  • layout/blockformatting/BlockMarginCollapse.cpp:

(WebCore::Layout::isMarginTopCollapsedWithParent):
(WebCore::Layout::isMarginBottomCollapsedThrough):
(WebCore::Layout::BlockFormattingContext::MarginCollapse::isMarginBottomCollapsedWithParent):

12:11 AM Changeset in webkit [236035] by sihui_liu@apple.com
  • 47 edits
    3 copies
    1 add
    1 delete in trunk

Move IndexedDB to Network Process
https://bugs.webkit.org/show_bug.cgi?id=189415
<rdar://problem/44396973>

Reviewed by Chris Dumez.

Source/WebKit:

We are going to eliminate storage process and move its functionality to network process.
The reasons why we want to do this:

  1. Lower resource usage of having an additional process for storage operations, especially

memory. Single storage process takes about 5MB memory on macOS.

  1. Reduce latency of Service Workers. After enabling Service Workers, we've seen

regression in app launch. The launch time of storage process is partly attributed to this:
Service Workers delay page loading until receiving response from storage process.

  1. We choose network process because UI process may have broader access in file system

that we don't want the storage operations to have.

This patch is the first piece towards the goal. It mainly moves indexedDB from storage process
to corresponding components of network process. Moving of Service Worker and stopping to
launch storage process will be done in following patches.

We expect to see the higher cpu and memory usage of network process as it is taking more work,
but the overall gain in memory and latency after we completely remove storage process should be
positive.

  • CMakeLists.txt:
  • DerivedSources.make:
  • NetworkProcess/IndexedDB/WebIDBConnectionToClient.cpp: Renamed from Source/WebKit/StorageProcess/IndexedDB/WebIDBConnectionToClient.cpp.

(WebKit::WebIDBConnectionToClient::create):
(WebKit::WebIDBConnectionToClient::WebIDBConnectionToClient):
(WebKit::WebIDBConnectionToClient::~WebIDBConnectionToClient):
(WebKit::WebIDBConnectionToClient::disconnectedFromWebProcess):
(WebKit::WebIDBConnectionToClient::messageSenderConnection):
(WebKit::WebIDBConnectionToClient::connectionToClient):
(WebKit::WebIDBConnectionToClient::didDeleteDatabase):
(WebKit::WebIDBConnectionToClient::didOpenDatabase):
(WebKit::WebIDBConnectionToClient::didAbortTransaction):
(WebKit::WebIDBConnectionToClient::didCommitTransaction):
(WebKit::WebIDBConnectionToClient::didCreateObjectStore):
(WebKit::WebIDBConnectionToClient::didDeleteObjectStore):
(WebKit::WebIDBConnectionToClient::didRenameObjectStore):
(WebKit::WebIDBConnectionToClient::didClearObjectStore):
(WebKit::WebIDBConnectionToClient::didCreateIndex):
(WebKit::WebIDBConnectionToClient::didDeleteIndex):
(WebKit::WebIDBConnectionToClient::didRenameIndex):
(WebKit::WebIDBConnectionToClient::didPutOrAdd):
(WebKit::WebIDBConnectionToClient::handleGetResult):
(WebKit::WebIDBConnectionToClient::didGetRecord):
(WebKit::WebIDBConnectionToClient::didGetAllRecords):
(WebKit::WebIDBConnectionToClient::didGetCount):
(WebKit::WebIDBConnectionToClient::didDeleteRecord):
(WebKit::WebIDBConnectionToClient::didOpenCursor):
(WebKit::WebIDBConnectionToClient::didIterateCursor):
(WebKit::WebIDBConnectionToClient::fireVersionChangeEvent):
(WebKit::WebIDBConnectionToClient::didStartTransaction):
(WebKit::WebIDBConnectionToClient::didCloseFromServer):
(WebKit::WebIDBConnectionToClient::notifyOpenDBRequestBlocked):
(WebKit::WebIDBConnectionToClient::didGetAllDatabaseNames):
(WebKit::WebIDBConnectionToClient::deleteDatabase):
(WebKit::WebIDBConnectionToClient::openDatabase):
(WebKit::WebIDBConnectionToClient::abortTransaction):
(WebKit::WebIDBConnectionToClient::commitTransaction):
(WebKit::WebIDBConnectionToClient::didFinishHandlingVersionChangeTransaction):
(WebKit::WebIDBConnectionToClient::createObjectStore):
(WebKit::WebIDBConnectionToClient::deleteObjectStore):
(WebKit::WebIDBConnectionToClient::renameObjectStore):
(WebKit::WebIDBConnectionToClient::clearObjectStore):
(WebKit::WebIDBConnectionToClient::createIndex):
(WebKit::WebIDBConnectionToClient::deleteIndex):
(WebKit::WebIDBConnectionToClient::renameIndex):
(WebKit::WebIDBConnectionToClient::putOrAdd):
(WebKit::WebIDBConnectionToClient::getRecord):
(WebKit::WebIDBConnectionToClient::getAllRecords):
(WebKit::WebIDBConnectionToClient::getCount):
(WebKit::WebIDBConnectionToClient::deleteRecord):
(WebKit::WebIDBConnectionToClient::openCursor):
(WebKit::WebIDBConnectionToClient::iterateCursor):
(WebKit::WebIDBConnectionToClient::establishTransaction):
(WebKit::WebIDBConnectionToClient::databaseConnectionPendingClose):
(WebKit::WebIDBConnectionToClient::databaseConnectionClosed):
(WebKit::WebIDBConnectionToClient::abortOpenAndUpgradeNeeded):
(WebKit::WebIDBConnectionToClient::didFireVersionChangeEvent):
(WebKit::WebIDBConnectionToClient::openDBRequestCancelled):
(WebKit::WebIDBConnectionToClient::confirmDidCloseFromServer):
(WebKit::WebIDBConnectionToClient::getAllDatabaseNames):

  • NetworkProcess/IndexedDB/WebIDBConnectionToClient.h: Renamed from Source/WebKit/StorageProcess/IndexedDB/WebIDBConnectionToClient.h.
  • NetworkProcess/IndexedDB/WebIDBConnectionToClient.messages.in: Renamed from Source/WebKit/StorageProcess/IndexedDB/WebIDBConnectionToClient.messages.in.
  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::didReceiveMessage):

Code moved from StorageToWebProcessConnection::didReceiveMessage.

(WebKit::NetworkConnectionToWebProcess::didClose):
(WebKit::NetworkConnectionToWebProcess::writeBlobsToTemporaryFiles):

Network process receives and stores sandbox extension of temporary files for later indexedDB
use.

(WebKit::NetworkConnectionToWebProcess::didClose):
(WebKit::NetworkConnectionToWebProcess::writeBlobsToTemporaryFiles):
(WebKit::generateIDBConnectionToServerIdentifier):
(WebKit::NetworkConnectionToWebProcess::establishIDBConnectionToServer):
(WebKit::NetworkConnectionToWebProcess::removeIDBConnectionToServer):

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

(WebKit::NetworkProcess::NetworkProcess):
(WebKit::NetworkProcess::initializeNetworkProcess):
(WebKit::NetworkProcess::addWebsiteDataStore):
(WebKit::NetworkProcess::fetchWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteData):
(WebKit::NetworkProcess::deleteWebsiteDataForOrigins):
(WebKit::NetworkProcess::idbServer):
(WebKit::NetworkProcess::ensurePathExists):
(WebKit::NetworkProcess::postStorageTask):
(WebKit::NetworkProcess::performNextStorageTask):
(WebKit::NetworkProcess::prepareForAccessToTemporaryFile):
(WebKit::NetworkProcess::accessToTemporaryFileComplete):
(WebKit::NetworkProcess::indexedDatabaseOrigins):
(WebKit::NetworkProcess::addIndexedDatabaseSession):
(WebKit::NetworkProcess::getSandboxExtensionsForBlobFiles):

Instead of asking UI process to grant sandbox extension to storage process, now network
process just asks for sandbox extension fot itself.

(WebKit::NetworkProcess::didGetSandboxExtensionsForBlobFiles):
(WebKit::NetworkProcess::updateTemporaryFileSandboxExtensions):
(WebKit::NetworkProcess::grantSandboxExtensionsToStorageProcessForBlobs): Deleted.
(WebKit::NetworkProcess::didGrantSandboxExtensionsToStorageProcessForBlobs): Deleted.

  • NetworkProcess/NetworkProcess.h:
  • NetworkProcess/NetworkProcess.messages.in:
  • NetworkProcess/NetworkProcessCreationParameters.cpp:

(WebKit::NetworkProcessCreationParameters::encode const):
(WebKit::NetworkProcessCreationParameters::decode):

  • NetworkProcess/NetworkProcessCreationParameters.h:
  • Shared/Storage/StorageProcessCreationParameters.cpp:

(WebKit::StorageProcessCreationParameters::encode const):
(WebKit::StorageProcessCreationParameters::decode):

  • Shared/Storage/StorageProcessCreationParameters.h:
  • Shared/WebsiteDataStoreParameters.cpp:

(WebKit::WebsiteDataStoreParameters::encode const):
(WebKit::WebsiteDataStoreParameters::decode):
(WebKit::WebsiteDataStoreParameters::privateSessionParameters):

  • Shared/WebsiteDataStoreParameters.h:
  • Sources.txt:
  • StorageProcess/StorageProcess.cpp:

(WebKit::StorageProcess::initializeWebsiteDataStore):
(WebKit::StorageProcess::fetchWebsiteData):
(WebKit::StorageProcess::deleteWebsiteData):
(WebKit::StorageProcess::deleteWebsiteDataForOrigins):
(WebKit::StorageProcess::idbServer): Deleted.
(WebKit::StorageProcess::grantSandboxExtensionsForBlobs): Deleted.
(WebKit::StorageProcess::prepareForAccessToTemporaryFile): Deleted.
(WebKit::StorageProcess::accessToTemporaryFileComplete): Deleted.
(WebKit::StorageProcess::indexedDatabaseOrigins): Deleted.
(WebKit::StorageProcess::getSandboxExtensionsForBlobFiles): Deleted.
(WebKit::StorageProcess::didGetSandboxExtensionsForBlobFiles): Deleted.

  • StorageProcess/StorageProcess.h:

(WebKit::StorageProcess::queue): Deleted.

  • StorageProcess/StorageProcess.messages.in:
  • StorageProcess/StorageToWebProcessConnection.cpp:

(WebKit::StorageToWebProcessConnection::didReceiveMessage):
(WebKit::StorageToWebProcessConnection::didClose):
(WebKit::generateIDBConnectionToServerIdentifier): Deleted.
(WebKit::StorageToWebProcessConnection::establishIDBConnectionToServer): Deleted.
(WebKit::StorageToWebProcessConnection::removeIDBConnectionToServer): Deleted.

  • StorageProcess/StorageToWebProcessConnection.h:
  • StorageProcess/StorageToWebProcessConnection.messages.in:
  • UIProcess/Network/NetworkProcessProxy.cpp:

(WebKit::NetworkProcessProxy::getSandboxExtensionsForBlobFiles):
(WebKit::NetworkProcessProxy::grantSandboxExtensionsToStorageProcessForBlobs): Deleted.

  • UIProcess/Network/NetworkProcessProxy.h:
  • UIProcess/Network/NetworkProcessProxy.messages.in:
  • UIProcess/Storage/StorageProcessProxy.cpp:

(WebKit::StorageProcessProxy::getSandboxExtensionsForBlobFiles): Deleted.

  • UIProcess/Storage/StorageProcessProxy.h:
  • UIProcess/Storage/StorageProcessProxy.messages.in:
  • UIProcess/WebProcessPool.cpp:

(WebKit::WebProcessPool::ensureNetworkProcess):
(WebKit::WebProcessPool::ensureStorageProcessAndWebsiteDataStore):
(WebKit::WebProcessPool::pageBeginUsingWebsiteDataStore):

  • UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:

(WebKit::WebsiteDataStore::parameters):

  • UIProcess/WebsiteData/WebsiteDataStore.cpp:

(WebKit::computeNetworkProcessAccessTypeForDataFetch):
(WebKit::WebsiteDataStore::fetchDataAndApply):
(WebKit::computeNetworkProcessAccessTypeForDataRemoval):
(WebKit::WebsiteDataStore::removeData):
(WebKit::WebsiteDataStore::storageProcessParameters):
(WebKit::WebsiteDataStore::parameters):

  • WebKit.xcodeproj/project.pbxproj:
  • WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.cpp:

(WebKit::WebIDBConnectionToServer::WebIDBConnectionToServer):
(WebKit::WebIDBConnectionToServer::~WebIDBConnectionToServer):
(WebKit::WebIDBConnectionToServer::messageSenderConnection):

  • WebProcess/Databases/WebDatabaseProvider.cpp:

(WebKit::WebDatabaseProvider::idbConnectionToServerForSession):

  • WebProcess/Network/NetworkProcessConnection.cpp:

(WebKit::NetworkProcessConnection::didReceiveMessage):
(WebKit::NetworkProcessConnection::didClose):
(WebKit::NetworkProcessConnection::idbConnectionToServerForSession):

  • WebProcess/Network/NetworkProcessConnection.h:

(WebKit::NetworkProcessConnection::existingIDBConnectionToServerForIdentifier const):

  • WebProcess/Storage/WebToStorageProcessConnection.cpp:

(WebKit::WebToStorageProcessConnection::didReceiveMessage):
(WebKit::WebToStorageProcessConnection::didClose):
(WebKit::WebToStorageProcessConnection::idbConnectionToServerForSession): Deleted.

  • WebProcess/Storage/WebToStorageProcessConnection.h:

(WebKit::WebToStorageProcessConnection::existingIDBConnectionToServerForIdentifier): Deleted.

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::networkProcessConnectionClosed):
(WebKit::WebProcess::webToStorageProcessConnectionClosed):

Tools:

  • TestWebKitAPI/Tests/WebKitCocoa/IDBDeleteRecovery.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/IDBIndexUpgradeToV2.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBDatabaseProcessKill.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBMultiProcess.mm:

(TEST):

  • TestWebKitAPI/Tests/WebKitCocoa/IndexedDBPersistence.mm:

(TEST):

LayoutTests:

  • storage/indexeddb/modern/opendatabase-after-storage-crash.html:
Note: See TracTimeline for information about the timeline view.