WebKit-https.git
11 months ago[WHLSL] Implement atomic operations and barriers
mmaxfield@apple.com [Sat, 22 Sep 2018 23:22:55 +0000 (23:22 +0000)]
[WHLSL] Implement atomic operations and barriers
https://bugs.webkit.org/show_bug.cgi?id=189025

Reviewed by Dean Jackson.

In the interpreter, atomic operations don't need to be atomic.

* WebGPUShadingLanguageRI/Intrinsics.js:
(Intrinsics.):
* WebGPUShadingLanguageRI/StandardLibrary.js:
(let.standardLibrary):
* WebGPUShadingLanguageRI/Test.js:
(tests.atomics):

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

11 months ago[Cairo] Null-check cairo_pattern_t gradient objects
zandobersek@gmail.com [Sat, 22 Sep 2018 12:54:45 +0000 (12:54 +0000)]
[Cairo] Null-check cairo_pattern_t gradient objects
https://bugs.webkit.org/show_bug.cgi?id=189820

Reviewed by Alex Christensen.

Cairo-specific implementation of Gradient::createPlatformGradient() can
now return a nullptr value when a conic gradient is described by the
Gradient object. Cairo doesn't have a way to create cairo_pattern_t
objects for such gradients.

Null-checks are now done on return values of createPlatformGradient(),
in order to avoid proceeding to paint a null cairo_pattern_t object.

* platform/graphics/cairo/GradientCairo.cpp:
(WebCore::Gradient::fill):
* platform/graphics/cairo/GraphicsContextImplCairo.cpp:
(WebCore::GraphicsContextImplCairo::fillRect):

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

11 months ago[WPE] Be very permissive in the MiniBrowser.
commit-queue@webkit.org [Sat, 22 Sep 2018 12:43:35 +0000 (12:43 +0000)]
[WPE] Be very permissive in the MiniBrowser.
https://bugs.webkit.org/show_bug.cgi?id=189800

This is just a test tool and we should make
it just work, security and privacy is not really
a primary focus here.

Patch by Thibault Saunier <tsaunier@igalia.com> on 2018-09-22
Reviewed by Žan Doberšek.

* MiniBrowser/wpe/main.cpp:
(decidePermissionRequest):
(main):

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

11 months agoCannot start a drag inside a shadow tree when an inclusive-ancestor of its shadow...
rniwa@webkit.org [Sat, 22 Sep 2018 08:13:52 +0000 (08:13 +0000)]
Cannot start a drag inside a shadow tree when an inclusive-ancestor of its shadow host is a draggable element
https://bugs.webkit.org/show_bug.cgi?id=136836

Reviewed by Wenson Hsieh.

Source/WebCore:

Fixed the bug by simply generalizing the existing code path existed for video / input type=color.

Tests: fast/shadow-dom/dragging-element-inside-shadow-tree.html
       fast/shadow-dom/dragging-element-with-shadow-tree.html

* page/DragController.cpp:
(WebCore::DragController::startDrag):

LayoutTests:

Added regression tests for dragging a element with a shadow tree, which is fixed in this bug
as well as dragging an element inside a shadow tree, which was already functional but had no tests.

* TestExpectations:
* fast/shadow-dom/dragging-element-inside-shadow-tree-expected.txt: Added.
* fast/shadow-dom/dragging-element-inside-shadow-tree.html: Added.
* fast/shadow-dom/dragging-element-with-shadow-tree-expected.txt: Added.
* fast/shadow-dom/dragging-element-with-shadow-tree.html: Added.
* platform/ios/TestExpectations: Don't mark the entirety of fast/shadow-dom as PASS.
* platform/mac-wk1/TestExpectations:

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

11 months agoFontDataCache should use Ref<Font> instead of a RefPtr<Font>
cdumez@apple.com [Sat, 22 Sep 2018 07:56:20 +0000 (07:56 +0000)]
FontDataCache should use Ref<Font> instead of a RefPtr<Font>
https://bugs.webkit.org/show_bug.cgi?id=189861

Reviewed by Antti Koivisto.

* platform/graphics/FontCache.cpp:
(WebCore::FontCache::fontForPlatformData):
(WebCore::FontCache::purgeInactiveFontData):

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

11 months agoThe sampling should not use Strong<CodeBlock> in its machineLocation field
sbarati@apple.com [Sat, 22 Sep 2018 07:28:39 +0000 (07:28 +0000)]
The sampling should not use Strong<CodeBlock> in its machineLocation field
https://bugs.webkit.org/show_bug.cgi?id=189319

Reviewed by Filip Pizlo.

JSTests:

* stress/sampling-profiler-richards.js: Added.

Source/JavaScriptCore:

The sampling profiler has a CLI mode where we gather information about inline
call frames. That data structure was using a Strong<CodeBlock>. We were
constructing this Strong<CodeBlock> during GC concurrently to processing all
the Strong handles. This is a bug since we end up corrupting that data
structure. This patch fixes this by just making this data structure use the
sampling profiler's mechanism for holding onto and properly visiting heap pointers.

* inspector/agents/InspectorScriptProfilerAgent.cpp:
(Inspector::InspectorScriptProfilerAgent::trackingComplete):
* runtime/SamplingProfiler.cpp:
(JSC::SamplingProfiler::processUnverifiedStackTraces):

(JSC::SamplingProfiler::reportTopFunctions):
(JSC::SamplingProfiler::reportTopBytecodes):
These CLI helpers needed a DeferGC otherwise we may end up deadlocking when we
cause a GC to happen while already holding the sampling profiler's
lock.

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

11 months ago[JSC] Enable LLInt ASM interpreter on X64 and ARM64 in non JIT configuration
yusukesuzuki@slowstart.org [Sat, 22 Sep 2018 05:26:44 +0000 (05:26 +0000)]
[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:

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

11 months agoWeb Inspector: REGRESSION(r236336): computed CSSProperty doesn't have a value for...
drousso@apple.com [Sat, 22 Sep 2018 02:03:51 +0000 (02:03 +0000)]
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`.

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

11 months agoImplement initialValue support for CSS Custom Properties and Values API
commit-queue@webkit.org [Sat, 22 Sep 2018 01:03:48 +0000 (01:03 +0000)]
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@apple.com> 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:

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

11 months agoAdd PointerEvent, plus feature flag, plus Web Platform Tests
dino@apple.com [Sat, 22 Sep 2018 00:51:47 +0000 (00:51 +0000)]
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:

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

11 months ago[macOS EWS] Layout test accessibility/smart-invert-reference.html is a flaky failure
ryanhaddad@apple.com [Sat, 22 Sep 2018 00:18:17 +0000 (00:18 +0000)]
[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.

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

11 months agoCustom elements in a reaction queue can lose its JS wrapper and become HTMLUnknownElement
rniwa@webkit.org [Sat, 22 Sep 2018 00:17:17 +0000 (00:17 +0000)]
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.

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

11 months agoWeb Inspector: dock buttons disappear if Web Inspector goes fullscreen
bburg@apple.com [Sat, 22 Sep 2018 00:14:05 +0000 (00:14 +0000)]
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.

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

11 months agoAdd Promise SPI
keith_miller@apple.com [Fri, 21 Sep 2018 23:38:25 +0000 (23:38 +0000)]
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):

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

11 months agoUnreviewed, rolling out r236359.
ryanhaddad@apple.com [Fri, 21 Sep 2018 23:22:05 +0000 (23:22 +0000)]
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

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

11 months agoUnreviewed, speed up storage/websql/transaction-database-expand-quota.html
cdumez@apple.com [Fri, 21 Sep 2018 23:18:58 +0000 (23:18 +0000)]
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:

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

11 months agoJSRopeString::resolveRope() wrongly assumes that tryGetValue() passes it a valid...
mark.lam@apple.com [Fri, 21 Sep 2018 23:18:15 +0000 (23:18 +0000)]
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):

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

11 months agoExtending the lifetime of a NetworkProcessProxy / StorageProcessProxy may cause it...
cdumez@apple.com [Fri, 21 Sep 2018 23:18:13 +0000 (23:18 +0000)]
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:

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

11 months agoImport WPT content hint tests
commit-queue@webkit.org [Fri, 21 Sep 2018 23:06:40 +0000 (23:06 +0000)]
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.

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

11 months agoUnreviewed Sierra Build Fix; ensure AVVideoPerformanceMetrics are defined on Sierra.
jer.noble@apple.com [Fri, 21 Sep 2018 22:56:55 +0000 (22:56 +0000)]
Unreviewed Sierra Build Fix; ensure AVVideoPerformanceMetrics are defined on Sierra.

* pal/spi/mac/AVFoundationSPI.h:

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

11 months agoUse a Variant for FormDataElement
achristensen@apple.com [Fri, 21 Sep 2018 22:50:36 +0000 (22:50 +0000)]
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):

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

11 months agoUnreviewed test gardening, consolidate iOS expectation files for EventTarget-dispatch...
ryanhaddad@apple.com [Fri, 21 Sep 2018 21:50:38 +0000 (21:50 +0000)]
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:

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

11 months agoREGRESSION (r235948?): Layout Test media/media-controls-accessibility.html is a flaky...
ryanhaddad@apple.com [Fri, 21 Sep 2018 21:50:34 +0000 (21:50 +0000)]
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.

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

11 months agoAdd functions to measure memory footprint to JSC
msaboff@apple.com [Fri, 21 Sep 2018 21:47:25 +0000 (21:47 +0000)]
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):

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

11 months ago[WHLSL] Local variables should be statically allocated
commit-queue@webkit.org [Fri, 21 Sep 2018 21:46:02 +0000 (21:46 +0000)]
[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.

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

11 months ago[Win10] Update test expectations for failing tests.
pvollan@apple.com [Fri, 21 Sep 2018 21:23:26 +0000 (21:23 +0000)]
[Win10] Update test expectations for failing tests.
https://bugs.webkit.org/show_bug.cgi?id=189858

Unreviewed test gardening.

* platform/win/TestExpectations:

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

11 months agoAdd Promise SPI
keith_miller@apple.com [Fri, 21 Sep 2018 21:16:20 +0000 (21:16 +0000)]
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):

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

11 months agoREGRESSION(r236237): Web Inspector: DarkMode: white background in Elements and Timelines
nvasilyev@apple.com [Fri, 21 Sep 2018 21:04:56 +0000 (21:04 +0000)]
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):

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

11 months agoWeb Inspector: remove unnecessary WI.Platform.version checks
bburg@apple.com [Fri, 21 Sep 2018 20:32:09 +0000 (20:32 +0000)]
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.

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

11 months agoSimplify the logic around has*ScrollbarWithAutoBehavior
simon.fraser@apple.com [Fri, 21 Sep 2018 20:29:18 +0000 (20:29 +0000)]
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):

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

11 months agoUnreviewed, rolling out r236255.
mcatanzaro@igalia.com [Fri, 21 Sep 2018 20:07:02 +0000 (20:07 +0000)]
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

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

11 months agoRebaseline tests after changes in https://trac.webkit.org/changeset/236321/webkit
tsavell@apple.com [Fri, 21 Sep 2018 20:05:26 +0000 (20:05 +0000)]
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:

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

11 months agoMove AVVideoPerformanceMetrics into AVFoundationSPI.h
jer.noble@apple.com [Fri, 21 Sep 2018 20:00:03 +0000 (20:00 +0000)]
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:

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

11 months ago[GTK] ANGLE's eglplatform.h does not support Wayland-only builds
aperez@igalia.com [Fri, 21 Sep 2018 19:59:52 +0000 (19:59 +0000)]
[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.

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

11 months agoWebSQL: User cannot grant quota increase if the JS provides an expected usage value...
cdumez@apple.com [Fri, 21 Sep 2018 19:59:40 +0000 (19:59 +0000)]
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.

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

11 months agoUse biplanar CVPixelBuffer for black frames sent to libwebrtc
youenn@apple.com [Fri, 21 Sep 2018 19:55:57 +0000 (19:55 +0000)]
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):

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

11 months agoAdd RTCCodecStats support
youenn@apple.com [Fri, 21 Sep 2018 19:39:41 +0000 (19:39 +0000)]
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:

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

11 months ago[iOS] Layout test fast/gradients/conic-gradient-alpha.html is failing
megan_gardner@apple.com [Fri, 21 Sep 2018 19:30:20 +0000 (19:30 +0000)]
[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:

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

11 months agoSimply authentication code even more!
achristensen@apple.com [Fri, 21 Sep 2018 19:25:21 +0000 (19:25 +0000)]
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:

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

11 months agoRegression(Mojave): Resuming a WK2 download crashes
cdumez@apple.com [Fri, 21 Sep 2018 19:19:55 +0000 (19:19 +0000)]
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):

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

11 months agoWeb Inspector: remove setting for Sources tab
drousso@apple.com [Fri, 21 Sep 2018 18:56:00 +0000 (18:56 +0000)]
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):

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

11 months agoMake "overflow: overlay" a synonym for "overflow: auto"
simon.fraser@apple.com [Fri, 21 Sep 2018 18:42:25 +0000 (18:42 +0000)]
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.

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

11 months agoTests checking document GC in case of ActiveDOMObjects are flaky
ryanhaddad@apple.com [Fri, 21 Sep 2018 18:40:15 +0000 (18:40 +0000)]
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.

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

11 months agoCentralize which CVPixelBuffer format is being used
youenn@apple.com [Fri, 21 Sep 2018 18:37:31 +0000 (18:37 +0000)]
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.

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

11 months agoWeb Inspector: hide Accessibility Audit Tab setting
drousso@apple.com [Fri, 21 Sep 2018 18:33:29 +0000 (18:33 +0000)]
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):

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

11 months agoBring up queues for iOS 12 (Build fix)
jbedard@apple.com [Fri, 21 Sep 2018 18:33:16 +0000 (18:33 +0000)]
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.

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

11 months agoWeb Inspector: remove Legacy Style Editor
drousso@apple.com [Fri, 21 Sep 2018 18:30:10 +0000 (18:30 +0000)]
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.

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

11 months agoBring up queues for iOS 12 (Build fix)
jbedard@apple.com [Fri, 21 Sep 2018 17:13:34 +0000 (17:13 +0000)]
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):

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

11 months agoREGRESSION (r235962-r235963): Layout Test animations/suspend-resume-animation-events...
graouts@webkit.org [Fri, 21 Sep 2018 16:57:10 +0000 (16:57 +0000)]
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.

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

11 months agoWhitelist two additional plugins
youenn@apple.com [Fri, 21 Sep 2018 16:41:13 +0000 (16:41 +0000)]
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

11 months agoBuild tools should work when the /usr/bin/python is python3
commit-queue@webkit.org [Fri, 21 Sep 2018 16:20:05 +0000 (16:20 +0000)]
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.

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

11 months agoClear persistent storage between tests for resourceLoadStatistics
commit-queue@webkit.org [Fri, 21 Sep 2018 16:17:16 +0000 (16:17 +0000)]
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):

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

11 months agoLayout Test webanimations/accelerated-animation-suspension.html is failing
pvollan@apple.com [Fri, 21 Sep 2018 15:57:04 +0000 (15:57 +0000)]
Layout Test webanimations/accelerated-animation-suspension.html is failing
https://bugs.webkit.org/show_bug.cgi?id=189836

Unreviewed test gardening.

* platform/win/TestExpectations:

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

11 months agoLayout Test css-custom-properties-api/registerProperty.html is failing
pvollan@apple.com [Fri, 21 Sep 2018 15:51:57 +0000 (15:51 +0000)]
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:

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

11 months ago[EME] Introduce the concept of CDMInstanceSession.
jer.noble@apple.com [Fri, 21 Sep 2018 15:08:35 +0000 (15:08 +0000)]
[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):

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

11 months ago[libwebrtc] Allow IP mismatch for local connections on localhost
commit-queue@webkit.org [Fri, 21 Sep 2018 14:37:48 +0000 (14:37 +0000)]
[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:

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

11 months ago[ARM] Build broken on armv7hl after r235517
tpopela@redhat.com [Fri, 21 Sep 2018 14:35:38 +0000 (14:35 +0000)]
[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):

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

11 months ago[MSE] Fix comparsion with uninitialized greatestDecodeDuration
aboya@igalia.com [Fri, 21 Sep 2018 13:47:48 +0000 (13:47 +0000)]
[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):

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

11 months ago[Web Animations] Accelerated animations don't get suspended
graouts@webkit.org [Fri, 21 Sep 2018 13:14:27 +0000 (13:14 +0000)]
[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:

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

11 months ago[Web Animations] Accelerated animations don't get suspended
graouts@webkit.org [Fri, 21 Sep 2018 13:09:45 +0000 (13:09 +0000)]
[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:

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

11 months agoTransformationMatrix::toColumnMajorFloatArray() should return a std::array<> object
zandobersek@gmail.com [Fri, 21 Sep 2018 12:47:44 +0000 (12:47 +0000)]
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:

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

11 months agoFloatQuad point getters should return const references
zandobersek@gmail.com [Fri, 21 Sep 2018 12:45:37 +0000 (12:45 +0000)]
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):

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

11 months ago[WPE] Built RPM of WPE webkit fails to install with "nothing provides libWPEToolingBa...
aperez@igalia.com [Fri, 21 Sep 2018 11:42:42 +0000 (11:42 +0000)]
[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).

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

11 months ago[Web Animations] DocumentTimeline::updateAnimations() is called endlessly
graouts@webkit.org [Fri, 21 Sep 2018 11:28:40 +0000 (11:28 +0000)]
[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:

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

11 months ago[EME] Fix typo in WebM sanitization variable
commit-queue@webkit.org [Fri, 21 Sep 2018 07:37:14 +0000 (07:37 +0000)]
[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):

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

11 months agoRestrict the total combined size of backdrop filters
dino@apple.com [Fri, 21 Sep 2018 05:37:01 +0000 (05:37 +0000)]
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

11 months agoUnreviewed, rolling out r236293.
ryanhaddad@apple.com [Fri, 21 Sep 2018 04:36:08 +0000 (04:36 +0000)]
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

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

11 months agoUnreviewed, rolling out r236289.
ryanhaddad@apple.com [Fri, 21 Sep 2018 03:47:37 +0000 (03:47 +0000)]
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

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

11 months agoMove IOKitSPI.h from TestRunnerShared to PAL
dbates@webkit.org [Fri, 21 Sep 2018 03:15:36 +0000 (03:15 +0000)]
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:

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

11 months ago[Win][Clang] UNUSED_PARAM(this) causes compilation error of "cannot take the address...
Hironori.Fujii@sony.com [Fri, 21 Sep 2018 02:49:50 +0000 (02:49 +0000)]
[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).

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

11 months ago[WHLSL] Metal code generation
commit-queue@webkit.org [Fri, 21 Sep 2018 02:06:43 +0000 (02:06 +0000)]
[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.

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

11 months agoWeb Inspector: remove Visual Style CSS details sidebar panel
drousso@apple.com [Fri, 21 Sep 2018 02:04:57 +0000 (02:04 +0000)]
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.

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

11 months agoWeb Inspector: Styles Redesign: rework Computed panel to use Spreadsheet classes
drousso@apple.com [Fri, 21 Sep 2018 02:02:14 +0000 (02:02 +0000)]
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.

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

11 months ago[JSC] Heap::reportExtraMemoryVisited shows contention if we have many JSString
yusukesuzuki@slowstart.org [Fri, 21 Sep 2018 01:11:19 +0000 (01:11 +0000)]
[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):

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

11 months agoBring up queues for iOS 12
ryanhaddad@apple.com [Fri, 21 Sep 2018 00:28:23 +0000 (00:28 +0000)]
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.

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

11 months agoBring up queues for iOS 12
ryanhaddad@apple.com [Thu, 20 Sep 2018 23:50:06 +0000 (23:50 +0000)]
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):

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

11 months agoAdd functions to measure memory footprint to JSC
msaboff@apple.com [Thu, 20 Sep 2018 23:46:43 +0000 (23:46 +0000)]
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):

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

11 months agoContinued test gardening after r236236
tsavell@apple.com [Thu, 20 Sep 2018 23:19:05 +0000 (23:19 +0000)]
Continued test gardening after r236236
https://bugs.webkit.org/show_bug.cgi?id=189641

Unreviewed test gardening

* TestExpectations:

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

11 months agoAllow additional plug-ins to run unsandboxed
youenn@apple.com [Thu, 20 Sep 2018 23:17:35 +0000 (23:17 +0000)]
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

11 months agoAdopt safe-area-insets on ImageDocument
benjamin@webkit.org [Thu, 20 Sep 2018 23:11:56 +0000 (23:11 +0000)]
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):

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

11 months agoInjectedBundle parameters often need initialization function called before unarchiving
bfulgham@apple.com [Thu, 20 Sep 2018 23:11:19 +0000 (23:11 +0000)]
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.

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

11 months agoRelease assert under RenderView::pageOrViewLogicalHeight
zalan@apple.com [Thu, 20 Sep 2018 22:27:28 +0000 (22:27 +0000)]
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.

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

11 months agoREGRESSION(r196265): WKWebView fires mouseover, mouseenter, and mouseleave events...
sihui_liu@apple.com [Thu, 20 Sep 2018 22:05:49 +0000 (22:05 +0000)]
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:

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

11 months ago[Win] TestRunner::queueLoad() fails to generate correct url for some urls.
Basuke.Suzuki@sony.com [Thu, 20 Sep 2018 21:36:57 +0000 (21:36 +0000)]
[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:

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

11 months agoUnreviewed, rolling out r235976.
achristensen@apple.com [Thu, 20 Sep 2018 21:33:31 +0000 (21:33 +0000)]
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

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

11 months ago[iOS] Layout test fast/gradients/conic-gradient-alpha.html is failing
ryanhaddad@apple.com [Thu, 20 Sep 2018 21:32:46 +0000 (21:32 +0000)]
[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.

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

11 months agoREGRESSION (r235962-r235963): Layout Test animations/suspend-resume-animation-events...
ryanhaddad@apple.com [Thu, 20 Sep 2018 21:32:43 +0000 (21:32 +0000)]
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.

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

11 months agoEnable Modern EME by default
jer.noble@apple.com [Thu, 20 Sep 2018 21:27:33 +0000 (21:27 +0000)]
Enable Modern EME by default
https://bugs.webkit.org/show_bug.cgi?id=189794

Reviewed by Jon Lee.

* Shared/WebPreferences.yaml:

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

11 months agoWebGL 2 updated test expectations.
realdawei@apple.com [Thu, 20 Sep 2018 21:11:36 +0000 (21:11 +0000)]
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:

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

11 months ago[GTK][WPE] Make sure MediaDeviceEnabled and PeerConnectionEnabled are always synced...
commit-queue@webkit.org [Thu, 20 Sep 2018 20:47:28 +0000 (20:47 +0000)]
[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):

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

11 months agoFix 'border' serialization with both common and uncommon values
commit-queue@webkit.org [Thu, 20 Sep 2018 20:43:36 +0000 (20:43 +0000)]
Fix 'border' serialization with both common and uncommon values
https://bugs.webkit.org/show_bug.cgi?id=189597

Patch by Oriol Brufau <obrufau@igalia.com> 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:

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

11 months agoWebGL conformance: Failures and Timeouts in suite 2.0.0/conformance
realdawei@apple.com [Thu, 20 Sep 2018 20:41:16 +0000 (20:41 +0000)]
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

* TestExpectations: Mark tests as Failure Slow.
* platform/mac/TestExpectations:

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

11 months agoVersioning.
kocsen_chung@apple.com [Thu, 20 Sep 2018 20:38:16 +0000 (20:38 +0000)]
Versioning.

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

11 months ago[WPE] fails to build on ARM arches complaining about undefined reference to `epoxy_eg...
mcatanzaro@igalia.com [Thu, 20 Sep 2018 20:32:02 +0000 (20:32 +0000)]
[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:

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

11 months agoSynchronize CSSOM View test suite against upstream WPT
commit-queue@webkit.org [Thu, 20 Sep 2018 19:31:29 +0000 (19:31 +0000)]
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.

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

11 months agoImplement CSS Custom Properties and Values Skeleton
commit-queue@webkit.org [Thu, 20 Sep 2018 18:57:56 +0000 (18:57 +0000)]
Implement CSS Custom Properties and Values Skeleton
https://bugs.webkit.org/show_bug.cgi?id=189694

Patch by Justin Michaud <justin_michaud@apple.com> 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:

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

11 months agoWebGL conformance: Failures and Timeouts in suite 2.0.0/conformance
realdawei@apple.com [Thu, 20 Sep 2018 18:23:06 +0000 (18:23 +0000)]
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

* TestExpectations:

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

11 months ago[iOS] Support testing more hardware special keys
dbates@webkit.org [Thu, 20 Sep 2018 18:20:02 +0000 (18:20 +0000)]
[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.

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

11 months agoTemporarily move fullscreen back to experimental features
dino@apple.com [Thu, 20 Sep 2018 18:07:39 +0000 (18:07 +0000)]
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:

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

11 months agoUnreviewed, remove accidentally-committed debugging changes from flatpakutils script
mcatanzaro@igalia.com [Thu, 20 Sep 2018 17:59:25 +0000 (17:59 +0000)]
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):

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