source: webkit/trunk/Source/WebCore/css/MediaQueryParserContext.cpp

Last change on this file was 237192, checked in by [email protected], 7 years ago

Implement feature flag and bindings for CSS Painting API
https://bugs.webkit.org/show_bug.cgi?id=190237

Patch by Justin Michaud <Justin Michaud> on 2018-10-16
Reviewed by Ryosuke Niwa.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

Add feature flag and bindings for CSS Painting API. This adds a new property,
CSS.paintWorkletGlobalScope, which will be a temporary way to access the paint
worklet global scope untill CSS.paintWorklet is implemented.

There are a few small changes, mostly adding headers and "using" declarations,
that were required to get this to build. This is probably related to unified sources.

Tests: fast/css-custom-paint/basic.html

fast/css-custom-paint/registerPaintBindings.html

  • CMakeLists.txt:
  • Configurations/FeatureDefines.xcconfig:
  • DerivedSources.make:
  • Sources.txt:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSCSSPaintWorkletGlobalScopeCustom.cpp: Added.

(WebCore::throwInvalidModificationError):
(WebCore::JSCSSPaintWorkletGlobalScope::registerPaint):

  • bindings/js/JSEventListener.cpp:
  • bindings/js/JSRemoteDOMWindowCustom.cpp:
  • bindings/js/JSWebMetalRenderPassAttachmentDescriptorCustom.cpp:
  • bindings/js/WebCoreBuiltinNames.h:
  • css/CSSPaintCallback.h: Copied from Source/WebCore/css/MediaQueryParserContext.cpp.

(WebCore::CSSPaintCallback::~CSSPaintCallback):

  • css/CSSPaintCallback.idl: Added.
  • css/CSSPaintWorkletGlobalScope.cpp: Copied from Source/WebCore/css/MediaQueryParserContext.cpp.

(WebCore::CSSPaintWorkletGlobalScope::create):
(WebCore::CSSPaintWorkletGlobalScope::CSSPaintWorkletGlobalScope):
(WebCore::CSSPaintWorkletGlobalScope::devicePixelRatio):
(WebCore::CSSPaintWorkletGlobalScope::addRegisteredPaint):

  • css/CSSPaintWorkletGlobalScope.h: Copied from Source/WebCore/css/MediaQueryParserContext.cpp.

(WebCore::CSSPaintWorkletGlobalScope::paintDefinitionMap):

  • css/CSSPaintWorkletGlobalScope.idl: Added.
  • css/DOMCSSPaintWorklet.cpp: Copied from Source/WebCore/css/MediaQueryParserContext.cpp.

(WebCore::DOMCSSPaintWorklet::ensurePaintWorkletGlobalScope):
(WebCore::DOMCSSPaintWorklet::from):
(WebCore::DOMCSSPaintWorklet::supplementName):

  • css/DOMCSSPaintWorklet.h: Copied from Source/WebCore/css/MediaQueryParserContext.cpp.
  • css/DOMCSSPaintWorklet.idl: Added.
  • css/MediaQueryParserContext.cpp:
  • css/StyleBuilder.h:
  • dom/Document.cpp:

(WebCore::Document::ensureCSSPaintWorkletGlobalScope):

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

(WebCore::RuntimeEnabledFeatures::setCSSPaintingAPIEnabled):
(WebCore::RuntimeEnabledFeatures::cssPaintingAPIEnabled const):

Source/WebCore/PAL:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit:

  • Configurations/FeatureDefines.xcconfig:
  • Shared/WebPreferences.yaml:
  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::overrideBoolPreferenceForTestRunner):

Source/WebKitLegacy/mac:

  • Configurations/FeatureDefines.xcconfig:

Tools:

  • TestWebKitAPI/Configurations/FeatureDefines.xcconfig:

LayoutTests:

Add basic tests for the CSS Painting API registerPaint function,
and test the custom bindings.

  • fast/css-custom-paint/basic-expected.txt: Added.
  • fast/css-custom-paint/basic.html: Added.
  • fast/css-custom-paint/registerPaintBindings-expected.txt: Added.
  • fast/css-custom-paint/registerPaintBindings.html: Added.
  • platform/ios-wk1/TestExpectations:
  • platform/mac-wk1/TestExpectations:
  • platform/win/TestExpectations:
File size: 1.8 KB
Line 
1/*
2 * Copyright (C) 2018 Apple Inc. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 *
13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 */
25
26#include "config.h"
27#include "MediaQueryParserContext.h"
28
29#include "CSSParserContext.h"
30#include "Document.h"
31#include "Page.h"
32
33namespace WebCore {
34
35MediaQueryParserContext::MediaQueryParserContext(const CSSParserContext& context)
36{
37 useSystemAppearance = context.useSystemAppearance;
38 mode = context.mode;
39}
40
41MediaQueryParserContext::MediaQueryParserContext(const Document& document)
42{
43 useSystemAppearance = document.page() ? document.page()->useSystemAppearance() : false;
44}
45
46} // namespace WebCore
Note: See TracBrowser for help on using the repository browser.