Commit 420ab929 authored by Xida Chen's avatar Xida Chen Committed by Commit Bot

Ship off-thread Paint Worklet

All the blockers for this feature has been removed, and it is ready to
be shipped.

Note that normally the "enable-threaded-compositing" is not enabled
when running the layout test, and off-thread paint worklet layout tests
are meaningless without the compositor thread. So this CL makes the
layout tests running on the main thread, which means we need to keep
the virtual/threaded/external/wpt/css/css-paint-api/ tests.

Bug: 829967
Change-Id: Ie7bd45e09c01729c238c1e3b8fb38e717e84e70e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1869332
Commit-Queue: Xida Chen <xidachen@chromium.org>
Reviewed-by: default avatarStephen McGruer <smcgruer@chromium.org>
Reviewed-by: default avatarRune Lillesveen <futhark@chromium.org>
Reviewed-by: default avatarKentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#709230}
parent 2fcf4ed8
...@@ -63,6 +63,7 @@ ...@@ -63,6 +63,7 @@
#include "third_party/blink/renderer/core/script/modulator.h" #include "third_party/blink/renderer/core/script/modulator.h"
#include "third_party/blink/renderer/core/trustedtypes/trusted_types_util.h" #include "third_party/blink/renderer/core/trustedtypes/trusted_types_util.h"
#include "third_party/blink/renderer/core/workers/worker_global_scope.h" #include "third_party/blink/renderer/core/workers/worker_global_scope.h"
#include "third_party/blink/renderer/core/workers/worklet_global_scope.h"
#include "third_party/blink/renderer/platform/bindings/dom_wrapper_world.h" #include "third_party/blink/renderer/platform/bindings/dom_wrapper_world.h"
#include "third_party/blink/renderer/platform/bindings/v8_per_context_data.h" #include "third_party/blink/renderer/platform/bindings/v8_per_context_data.h"
#include "third_party/blink/renderer/platform/bindings/v8_private_property.h" #include "third_party/blink/renderer/platform/bindings/v8_private_property.h"
...@@ -335,7 +336,9 @@ static void PromiseRejectHandlerInWorker(v8::PromiseRejectMessage data) { ...@@ -335,7 +336,9 @@ static void PromiseRejectHandlerInWorker(v8::PromiseRejectMessage data) {
return; return;
auto* script_controller = auto* script_controller =
To<WorkerGlobalScope>(execution_context)->ScriptController(); execution_context->IsWorkerGlobalScope()
? To<WorkerGlobalScope>(execution_context)->ScriptController()
: To<WorkletGlobalScope>(execution_context)->ScriptController();
DCHECK(script_controller); DCHECK(script_controller);
PromiseRejectHandler(data, *script_controller->GetRejectedPromises(), PromiseRejectHandler(data, *script_controller->GetRejectedPromises(),
......
...@@ -21,14 +21,19 @@ ...@@ -21,14 +21,19 @@
namespace blink { namespace blink {
CSSPaintValue::CSSPaintValue(CSSCustomIdentValue* name) CSSPaintValue::CSSPaintValue(CSSCustomIdentValue* name,
bool threaded_compositing_enabled)
: CSSImageGeneratorValue(kPaintClass), : CSSImageGeneratorValue(kPaintClass),
name_(name), name_(name),
paint_image_generator_observer_(MakeGarbageCollected<Observer>(this)), paint_image_generator_observer_(MakeGarbageCollected<Observer>(this)),
off_thread_paint_state_( off_thread_paint_state_(
RuntimeEnabledFeatures::OffMainThreadCSSPaintEnabled() (!threaded_compositing_enabled ||
? OffThreadPaintState::kUnknown !RuntimeEnabledFeatures::OffMainThreadCSSPaintEnabled())
: OffThreadPaintState::kMainThread) {} ? OffThreadPaintState::kMainThread
: OffThreadPaintState::kUnknown) {}
CSSPaintValue::CSSPaintValue(CSSCustomIdentValue* name)
: CSSPaintValue(name, Thread::CompositorThread()) {}
CSSPaintValue::CSSPaintValue( CSSPaintValue::CSSPaintValue(
CSSCustomIdentValue* name, CSSCustomIdentValue* name,
......
...@@ -20,6 +20,7 @@ namespace blink { ...@@ -20,6 +20,7 @@ namespace blink {
class CORE_EXPORT CSSPaintValue : public CSSImageGeneratorValue { class CORE_EXPORT CSSPaintValue : public CSSImageGeneratorValue {
public: public:
explicit CSSPaintValue(CSSCustomIdentValue* name); explicit CSSPaintValue(CSSCustomIdentValue* name);
CSSPaintValue(CSSCustomIdentValue* name, bool threaded_compositing_enabled);
CSSPaintValue(CSSCustomIdentValue* name, CSSPaintValue(CSSCustomIdentValue* name,
Vector<scoped_refptr<CSSVariableData>>&); Vector<scoped_refptr<CSSVariableData>>&);
~CSSPaintValue(); ~CSSPaintValue();
......
...@@ -89,7 +89,7 @@ TEST_P(CSSPaintValueTest, ReportingCompositedUMA) { ...@@ -89,7 +89,7 @@ TEST_P(CSSPaintValueTest, ReportingCompositedUMA) {
const ComputedStyle& style = *target->Style(); const ComputedStyle& style = *target->Style();
auto* ident = MakeGarbageCollected<CSSCustomIdentValue>("testpainter"); auto* ident = MakeGarbageCollected<CSSCustomIdentValue>("testpainter");
CSSPaintValue* paint_value = MakeGarbageCollected<CSSPaintValue>(ident); CSSPaintValue* paint_value = MakeGarbageCollected<CSSPaintValue>(ident, true);
// Mark the generator as ready - GetImage should succeed when // Mark the generator as ready - GetImage should succeed when
// OffMainThreadCSSPaint is enabled. // OffMainThreadCSSPaint is enabled.
ON_CALL(*mock_generator, IsImageGeneratorReady()).WillByDefault(Return(true)); ON_CALL(*mock_generator, IsImageGeneratorReady()).WillByDefault(Return(true));
...@@ -135,7 +135,7 @@ TEST_P(CSSPaintValueTest, ReportingNonCompositedUMA) { ...@@ -135,7 +135,7 @@ TEST_P(CSSPaintValueTest, ReportingNonCompositedUMA) {
LayoutObject* target = GetLayoutObjectByElementId("target"); LayoutObject* target = GetLayoutObjectByElementId("target");
auto style = ComputedStyle::Create(); auto style = ComputedStyle::Create();
auto* ident = MakeGarbageCollected<CSSCustomIdentValue>("testpainter"); auto* ident = MakeGarbageCollected<CSSCustomIdentValue>("testpainter");
CSSPaintValue* paint_value = MakeGarbageCollected<CSSPaintValue>(ident); CSSPaintValue* paint_value = MakeGarbageCollected<CSSPaintValue>(ident, true);
StyleGeneratedImage* style_image = StyleGeneratedImage* style_image =
MakeGarbageCollected<StyleGeneratedImage>(*paint_value); MakeGarbageCollected<StyleGeneratedImage>(*paint_value);
style->SetBorderImageSource(style_image); style->SetBorderImageSource(style_image);
...@@ -187,7 +187,7 @@ TEST_P(CSSPaintValueTest, DelayPaintUntilGeneratorReady) { ...@@ -187,7 +187,7 @@ TEST_P(CSSPaintValueTest, DelayPaintUntilGeneratorReady) {
const ComputedStyle& style = *target->Style(); const ComputedStyle& style = *target->Style();
auto* ident = MakeGarbageCollected<CSSCustomIdentValue>("testpainter"); auto* ident = MakeGarbageCollected<CSSCustomIdentValue>("testpainter");
CSSPaintValue* paint_value = MakeGarbageCollected<CSSPaintValue>(ident); CSSPaintValue* paint_value = MakeGarbageCollected<CSSPaintValue>(ident, true);
// Initially the generator is not ready, so GetImage should fail (and no paint // Initially the generator is not ready, so GetImage should fail (and no paint
// should happen). // should happen).
...@@ -220,7 +220,7 @@ TEST_P(CSSPaintValueTest, GetImageCalledOnMultipleDocuments) { ...@@ -220,7 +220,7 @@ TEST_P(CSSPaintValueTest, GetImageCalledOnMultipleDocuments) {
const ComputedStyle& style = *target->Style(); const ComputedStyle& style = *target->Style();
auto* ident = MakeGarbageCollected<CSSCustomIdentValue>("testpainter"); auto* ident = MakeGarbageCollected<CSSCustomIdentValue>("testpainter");
CSSPaintValue* paint_value = MakeGarbageCollected<CSSPaintValue>(ident); CSSPaintValue* paint_value = MakeGarbageCollected<CSSPaintValue>(ident, true);
EXPECT_EQ(paint_value->NumberOfGeneratorsForTesting(), 0u); EXPECT_EQ(paint_value->NumberOfGeneratorsForTesting(), 0u);
paint_value->GetImage(*target, GetDocument(), style, target_size); paint_value->GetImage(*target, GetDocument(), style, target_size);
...@@ -238,7 +238,7 @@ TEST_P(CSSPaintValueTest, NativeInvalidationPropertiesWithNoGenerator) { ...@@ -238,7 +238,7 @@ TEST_P(CSSPaintValueTest, NativeInvalidationPropertiesWithNoGenerator) {
SetBodyInnerHTML(R"HTML(<div id="target"></div>)HTML"); SetBodyInnerHTML(R"HTML(<div id="target"></div>)HTML");
auto* ident = MakeGarbageCollected<CSSCustomIdentValue>("testpainter"); auto* ident = MakeGarbageCollected<CSSCustomIdentValue>("testpainter");
CSSPaintValue* paint_value = MakeGarbageCollected<CSSPaintValue>(ident); CSSPaintValue* paint_value = MakeGarbageCollected<CSSPaintValue>(ident, true);
EXPECT_EQ(paint_value->NumberOfGeneratorsForTesting(), 0u); EXPECT_EQ(paint_value->NumberOfGeneratorsForTesting(), 0u);
// There is no generator, so returning a nullptr. // There is no generator, so returning a nullptr.
...@@ -249,7 +249,7 @@ TEST_P(CSSPaintValueTest, CustomInvalidationPropertiesWithNoGenerator) { ...@@ -249,7 +249,7 @@ TEST_P(CSSPaintValueTest, CustomInvalidationPropertiesWithNoGenerator) {
SetBodyInnerHTML(R"HTML(<div id="target"></div>)HTML"); SetBodyInnerHTML(R"HTML(<div id="target"></div>)HTML");
auto* ident = MakeGarbageCollected<CSSCustomIdentValue>("testpainter"); auto* ident = MakeGarbageCollected<CSSCustomIdentValue>("testpainter");
CSSPaintValue* paint_value = MakeGarbageCollected<CSSPaintValue>(ident); CSSPaintValue* paint_value = MakeGarbageCollected<CSSPaintValue>(ident, true);
EXPECT_EQ(paint_value->NumberOfGeneratorsForTesting(), 0u); EXPECT_EQ(paint_value->NumberOfGeneratorsForTesting(), 0u);
// There is no generator, so returning a nullptr. // There is no generator, so returning a nullptr.
...@@ -278,7 +278,7 @@ TEST_P(CSSPaintValueTest, PrintingMustFallbackToMainThread) { ...@@ -278,7 +278,7 @@ TEST_P(CSSPaintValueTest, PrintingMustFallbackToMainThread) {
const ComputedStyle& style = *target->Style(); const ComputedStyle& style = *target->Style();
auto* ident = MakeGarbageCollected<CSSCustomIdentValue>("testpainter"); auto* ident = MakeGarbageCollected<CSSCustomIdentValue>("testpainter");
CSSPaintValue* paint_value = MakeGarbageCollected<CSSPaintValue>(ident); CSSPaintValue* paint_value = MakeGarbageCollected<CSSPaintValue>(ident, true);
ON_CALL(*mock_generator, IsImageGeneratorReady()).WillByDefault(Return(true)); ON_CALL(*mock_generator, IsImageGeneratorReady()).WillByDefault(Return(true));
// This PW can be composited, so we should only fall back to main once, in // This PW can be composited, so we should only fall back to main once, in
...@@ -319,7 +319,7 @@ TEST_P(CSSPaintValueTest, DoNotPaintForLink) { ...@@ -319,7 +319,7 @@ TEST_P(CSSPaintValueTest, DoNotPaintForLink) {
ASSERT_NE(style.InsideLink(), EInsideLink::kNotInsideLink); ASSERT_NE(style.InsideLink(), EInsideLink::kNotInsideLink);
auto* ident = MakeGarbageCollected<CSSCustomIdentValue>("linkpainter"); auto* ident = MakeGarbageCollected<CSSCustomIdentValue>("linkpainter");
CSSPaintValue* paint_value = MakeGarbageCollected<CSSPaintValue>(ident); CSSPaintValue* paint_value = MakeGarbageCollected<CSSPaintValue>(ident, true);
EXPECT_FALSE(paint_value->GetImage(*target, GetDocument(), style, EXPECT_FALSE(paint_value->GetImage(*target, GetDocument(), style,
FloatSize(100, 100))); FloatSize(100, 100)));
} }
...@@ -347,14 +347,14 @@ TEST_P(CSSPaintValueTest, DoNotPaintWhenAncestorHasLink) { ...@@ -347,14 +347,14 @@ TEST_P(CSSPaintValueTest, DoNotPaintWhenAncestorHasLink) {
ASSERT_NE(style.InsideLink(), EInsideLink::kNotInsideLink); ASSERT_NE(style.InsideLink(), EInsideLink::kNotInsideLink);
auto* ident = MakeGarbageCollected<CSSCustomIdentValue>("linkpainter"); auto* ident = MakeGarbageCollected<CSSCustomIdentValue>("linkpainter");
CSSPaintValue* paint_value = MakeGarbageCollected<CSSPaintValue>(ident); CSSPaintValue* paint_value = MakeGarbageCollected<CSSPaintValue>(ident, true);
EXPECT_FALSE(paint_value->GetImage(*target, GetDocument(), style, EXPECT_FALSE(paint_value->GetImage(*target, GetDocument(), style,
FloatSize(100, 100))); FloatSize(100, 100)));
} }
TEST_P(CSSPaintValueTest, BuildInputArgumentValuesNotCrash) { TEST_P(CSSPaintValueTest, BuildInputArgumentValuesNotCrash) {
auto* ident = MakeGarbageCollected<CSSCustomIdentValue>("testpainter"); auto* ident = MakeGarbageCollected<CSSCustomIdentValue>("testpainter");
CSSPaintValue* paint_value = MakeGarbageCollected<CSSPaintValue>(ident); CSSPaintValue* paint_value = MakeGarbageCollected<CSSPaintValue>(ident, true);
ASSERT_EQ(paint_value->GetParsedInputArgumentsForTesting(), nullptr); ASSERT_EQ(paint_value->GetParsedInputArgumentsForTesting(), nullptr);
Vector<std::unique_ptr<CrossThreadStyleValue>> cross_thread_input_arguments; Vector<std::unique_ptr<CrossThreadStyleValue>> cross_thread_input_arguments;
......
...@@ -49,7 +49,10 @@ PaintWorklet::PaintWorklet(LocalFrame* frame) ...@@ -49,7 +49,10 @@ PaintWorklet::PaintWorklet(LocalFrame* frame)
Supplement<LocalDOMWindow>(*frame->DomWindow()), Supplement<LocalDOMWindow>(*frame->DomWindow()),
pending_generator_registry_( pending_generator_registry_(
MakeGarbageCollected<PaintWorkletPendingGeneratorRegistry>()), MakeGarbageCollected<PaintWorkletPendingGeneratorRegistry>()),
worklet_id_(NextId()) {} worklet_id_(NextId()),
is_paint_off_thread_(
RuntimeEnabledFeatures::OffMainThreadCSSPaintEnabled() &&
Thread::CompositorThread()) {}
PaintWorklet::~PaintWorklet() = default; PaintWorklet::~PaintWorklet() = default;
...@@ -58,6 +61,10 @@ void PaintWorklet::AddPendingGenerator(const String& name, ...@@ -58,6 +61,10 @@ void PaintWorklet::AddPendingGenerator(const String& name,
pending_generator_registry_->AddPendingGenerator(name, generator); pending_generator_registry_->AddPendingGenerator(name, generator);
} }
void PaintWorklet::ResetIsPaintOffThreadForTesting() {
is_paint_off_thread_ = RuntimeEnabledFeatures::OffMainThreadCSSPaintEnabled();
}
// We start with a random global scope when a new frame starts. Then within this // We start with a random global scope when a new frame starts. Then within this
// frame, we switch to the other global scope after certain amount of paint // frame, we switch to the other global scope after certain amount of paint
// calls (rand(kMaxPaintCountToSwitch)). // calls (rand(kMaxPaintCountToSwitch)).
...@@ -169,8 +176,7 @@ void PaintWorklet::RegisterCSSPaintDefinition(const String& name, ...@@ -169,8 +176,7 @@ void PaintWorklet::RegisterCSSPaintDefinition(const String& name,
// regiserered from RegisterCSSPaintDefinition and one extra definition from // regiserered from RegisterCSSPaintDefinition and one extra definition from
// RegisterMainThreadDocumentPaintDefinition if OffMainThreadCSSPaintEnabled // RegisterMainThreadDocumentPaintDefinition if OffMainThreadCSSPaintEnabled
// is true. // is true.
unsigned required_registered_count = unsigned required_registered_count = is_paint_off_thread_
RuntimeEnabledFeatures::OffMainThreadCSSPaintEnabled()
? kNumGlobalScopesPerThread + 1 ? kNumGlobalScopesPerThread + 1
: kNumGlobalScopesPerThread; : kNumGlobalScopesPerThread;
if (existing_document_definition->GetRegisteredDefinitionCount() == if (existing_document_definition->GetRegisteredDefinitionCount() ==
...@@ -229,7 +235,7 @@ void PaintWorklet::RegisterMainThreadDocumentPaintDefinition( ...@@ -229,7 +235,7 @@ void PaintWorklet::RegisterMainThreadDocumentPaintDefinition(
bool PaintWorklet::NeedsToCreateGlobalScope() { bool PaintWorklet::NeedsToCreateGlobalScope() {
wtf_size_t num_scopes_needed = kNumGlobalScopesPerThread; wtf_size_t num_scopes_needed = kNumGlobalScopesPerThread;
// If we are running off main thread, we will need twice as many global scopes // If we are running off main thread, we will need twice as many global scopes
if (RuntimeEnabledFeatures::OffMainThreadCSSPaintEnabled()) if (is_paint_off_thread_)
num_scopes_needed *= 2; num_scopes_needed *= 2;
return GetNumberOfGlobalScopes() < num_scopes_needed; return GetNumberOfGlobalScopes() < num_scopes_needed;
} }
...@@ -241,7 +247,7 @@ WorkletGlobalScopeProxy* PaintWorklet::CreateGlobalScope() { ...@@ -241,7 +247,7 @@ WorkletGlobalScopeProxy* PaintWorklet::CreateGlobalScope() {
// scopes from the beginning of the vector. If this code is changed to put // scopes from the beginning of the vector. If this code is changed to put
// the main thread global scopes at the end, then SelectNewGlobalScope must // the main thread global scopes at the end, then SelectNewGlobalScope must
// also be changed. // also be changed.
if (!RuntimeEnabledFeatures::OffMainThreadCSSPaintEnabled() || if (!is_paint_off_thread_ ||
GetNumberOfGlobalScopes() < kNumGlobalScopesPerThread) { GetNumberOfGlobalScopes() < kNumGlobalScopesPerThread) {
return MakeGarbageCollected<PaintWorkletGlobalScopeProxy>( return MakeGarbageCollected<PaintWorkletGlobalScopeProxy>(
To<Document>(GetExecutionContext())->GetFrame(), ModuleResponsesMap(), To<Document>(GetExecutionContext())->GetFrame(), ModuleResponsesMap(),
......
...@@ -89,6 +89,8 @@ class MODULES_EXPORT PaintWorklet : public Worklet, ...@@ -89,6 +89,8 @@ class MODULES_EXPORT PaintWorklet : public Worklet,
proxy_client_ = proxy_client; proxy_client_ = proxy_client;
} }
void ResetIsPaintOffThreadForTesting();
protected: protected:
// Since paint worklet has more than one global scope, we MUST override this // Since paint worklet has more than one global scope, we MUST override this
// function and provide our own selection logic. // function and provide our own selection logic.
...@@ -140,6 +142,12 @@ class MODULES_EXPORT PaintWorklet : public Worklet, ...@@ -140,6 +142,12 @@ class MODULES_EXPORT PaintWorklet : public Worklet,
// to ensure that all global scopes get the same proxy client. // to ensure that all global scopes get the same proxy client.
Member<PaintWorkletProxyClient> proxy_client_; Member<PaintWorkletProxyClient> proxy_client_;
// When running layout test, paint worklet has to be on the main thread
// because "enable-threaded-compositing" is off by default. However, some unit
// tests may be testing the functionality of the APIs when the paint worklet
// is off the main thread.
bool is_paint_off_thread_;
DISALLOW_COPY_AND_ASSIGN(PaintWorklet); DISALLOW_COPY_AND_ASSIGN(PaintWorklet);
}; };
......
...@@ -26,7 +26,9 @@ ...@@ -26,7 +26,9 @@
namespace blink { namespace blink {
class TestPaintWorklet : public PaintWorklet { class TestPaintWorklet : public PaintWorklet {
public: public:
explicit TestPaintWorklet(LocalFrame* frame) : PaintWorklet(frame) {} explicit TestPaintWorklet(LocalFrame* frame) : PaintWorklet(frame) {
ResetIsPaintOffThreadForTesting();
}
void SetPaintsToSwitch(int num) { paints_to_switch_ = num; } void SetPaintsToSwitch(int num) { paints_to_switch_ = num; }
...@@ -158,8 +160,14 @@ TEST_F(PaintWorkletTest, SinglyRegisteredDocumentDefinitionNotUsed) { ...@@ -158,8 +160,14 @@ TEST_F(PaintWorkletTest, SinglyRegisteredDocumentDefinitionNotUsed) {
EXPECT_TRUE(generator); EXPECT_TRUE(generator);
EXPECT_EQ(generator->GetRegisteredDefinitionCountForTesting(), 1u); EXPECT_EQ(generator->GetRegisteredDefinitionCountForTesting(), 1u);
DocumentPaintDefinition* definition; DocumentPaintDefinition* definition;
// Please refer to CSSPaintImageGeneratorImpl::GetValidDocumentDefinition for
// the logic.
if (RuntimeEnabledFeatures::OffMainThreadCSSPaintEnabled()) {
EXPECT_TRUE(generator->GetValidDocumentDefinitionForTesting(definition));
} else {
EXPECT_FALSE(generator->GetValidDocumentDefinitionForTesting(definition)); EXPECT_FALSE(generator->GetValidDocumentDefinitionForTesting(definition));
EXPECT_FALSE(definition); EXPECT_FALSE(definition);
}
} }
// In this test, we set a list of "paints_to_switch" numbers, and in each frame, // In this test, we set a list of "paints_to_switch" numbers, and in each frame,
...@@ -223,6 +231,7 @@ class MockObserver final : public CSSPaintImageGenerator::Observer { ...@@ -223,6 +231,7 @@ class MockObserver final : public CSSPaintImageGenerator::Observer {
TEST_P(MainOrOffThreadPaintWorkletTest, ConsistentGlobalScopeOnMainThread) { TEST_P(MainOrOffThreadPaintWorkletTest, ConsistentGlobalScopeOnMainThread) {
PaintWorklet* paint_worklet_to_test = PaintWorklet* paint_worklet_to_test =
PaintWorklet::From(*GetFrame().GetDocument()->domWindow()); PaintWorklet::From(*GetFrame().GetDocument()->domWindow());
paint_worklet_to_test->ResetIsPaintOffThreadForTesting();
MockObserver* observer = MakeGarbageCollected<MockObserver>(); MockObserver* observer = MakeGarbageCollected<MockObserver>();
CSSPaintImageGeneratorImpl* generator_foo = CSSPaintImageGeneratorImpl* generator_foo =
...@@ -294,6 +303,7 @@ TEST_P(MainOrOffThreadPaintWorkletTest, ConsistentGlobalScopeOnMainThread) { ...@@ -294,6 +303,7 @@ TEST_P(MainOrOffThreadPaintWorkletTest, ConsistentGlobalScopeOnMainThread) {
TEST_P(MainOrOffThreadPaintWorkletTest, AllGlobalScopesMustBeCreated) { TEST_P(MainOrOffThreadPaintWorkletTest, AllGlobalScopesMustBeCreated) {
PaintWorklet* paint_worklet_to_test = PaintWorklet* paint_worklet_to_test =
MakeGarbageCollected<PaintWorklet>(&GetFrame()); MakeGarbageCollected<PaintWorklet>(&GetFrame());
paint_worklet_to_test->ResetIsPaintOffThreadForTesting();
EXPECT_TRUE(paint_worklet_to_test->GetGlobalScopesForTesting().IsEmpty()); EXPECT_TRUE(paint_worklet_to_test->GetGlobalScopesForTesting().IsEmpty());
...@@ -321,6 +331,7 @@ TEST_F(PaintWorkletTest, ConsistentGlobalScopeCrossThread) { ...@@ -321,6 +331,7 @@ TEST_F(PaintWorkletTest, ConsistentGlobalScopeCrossThread) {
ScopedOffMainThreadCSSPaintForTest off_main_thread_css_paint(true); ScopedOffMainThreadCSSPaintForTest off_main_thread_css_paint(true);
PaintWorklet* paint_worklet_to_test = PaintWorklet* paint_worklet_to_test =
PaintWorklet::From(*GetFrame().GetDocument()->domWindow()); PaintWorklet::From(*GetFrame().GetDocument()->domWindow());
paint_worklet_to_test->ResetIsPaintOffThreadForTesting();
MockObserver* observer = MakeGarbageCollected<MockObserver>(); MockObserver* observer = MakeGarbageCollected<MockObserver>();
CSSPaintImageGeneratorImpl* generator_foo = CSSPaintImageGeneratorImpl* generator_foo =
...@@ -490,6 +501,7 @@ TEST_F(PaintWorkletTest, GeneratorNotifiedAfterAllRegistrations) { ...@@ -490,6 +501,7 @@ TEST_F(PaintWorkletTest, GeneratorNotifiedAfterAllRegistrations) {
ScopedOffMainThreadCSSPaintForTest off_main_thread_css_paint(true); ScopedOffMainThreadCSSPaintForTest off_main_thread_css_paint(true);
PaintWorklet* paint_worklet_to_test = PaintWorklet* paint_worklet_to_test =
PaintWorklet::From(*GetFrame().GetDocument()->domWindow()); PaintWorklet::From(*GetFrame().GetDocument()->domWindow());
paint_worklet_to_test->ResetIsPaintOffThreadForTesting();
MockObserver* observer = MakeGarbageCollected<MockObserver>(); MockObserver* observer = MakeGarbageCollected<MockObserver>();
CSSPaintImageGeneratorImpl* generator = CSSPaintImageGeneratorImpl* generator =
......
...@@ -1100,6 +1100,7 @@ ...@@ -1100,6 +1100,7 @@
}, },
{ {
name: "OffMainThreadCSSPaint", name: "OffMainThreadCSSPaint",
status: "stable",
}, },
{ {
name: "OffscreenCanvasCommit", name: "OffscreenCanvasCommit",
......
CONSOLE MESSAGE: line 9: This test logs a result once from each PaintWorkletGlobalScope
CONSOLE ERROR: line 3: TypeError: import() is disallowed on WorkletGlobalScope.
CONSOLE ERROR: line 3: TypeError: import() is disallowed on WorkletGlobalScope.
CONSOLE ERROR: line 3: TypeError: import() is disallowed on WorkletGlobalScope.
CONSOLE ERROR: line 3: TypeError: import() is disallowed on WorkletGlobalScope.
This is a testharness.js-based test.
PASS Dynamic import() on WorkletGlobalScope should reject the promise.
Harness: the test ran to completion.
CONSOLE ERROR: line 1: Uncaught EvalError: Refused to evaluate a string as JavaScript because 'unsafe-eval' is not an allowed source of script in the following Content Security Policy directive: "script-src 'self' 'unsafe-inline'".
CONSOLE ERROR: line 1: Uncaught EvalError: Refused to evaluate a string as JavaScript because 'unsafe-eval' is not an allowed source of script in the following Content Security Policy directive: "script-src 'self' 'unsafe-inline'".
CONSOLE ERROR: line 1: Uncaught EvalError: Refused to evaluate a string as JavaScript because 'unsafe-eval' is not an allowed source of script in the following Content Security Policy directive: "script-src 'self' 'unsafe-inline'".
CONSOLE ERROR: line 1: Uncaught EvalError: Refused to evaluate a string as JavaScript because 'unsafe-eval' is not an allowed source of script in the following Content Security Policy directive: "script-src 'self' 'unsafe-inline'".
This is a testharness.js-based test.
PASS eval() call on the worklet should be blocked because the script-src unsafe-eval directive is not specified.
PASS eval() call on the worklet should not be blocked because the script-src unsafe-eval directive allows it.
Harness: the test ran to completion.
CONSOLE MESSAGE: line 10: This test logs exposed APIs once from each PaintWorkletGlobalScope
CONSOLE MESSAGE: line 153: interface ByteLengthQueuingStrategy
CONSOLE MESSAGE: line 153: getter highWaterMark
CONSOLE MESSAGE: line 153: getter size
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface CSSImageValue : CSSStyleValue
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface CSSKeywordValue : CSSStyleValue
CONSOLE MESSAGE: line 153: getter value
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: setter value
CONSOLE MESSAGE: line 153: interface CSSMathInvert : CSSMathValue
CONSOLE MESSAGE: line 153: getter value
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface CSSMathMax : CSSMathValue
CONSOLE MESSAGE: line 153: getter values
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface CSSMathMin : CSSMathValue
CONSOLE MESSAGE: line 153: getter values
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface CSSMathNegate : CSSMathValue
CONSOLE MESSAGE: line 153: getter value
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface CSSMathProduct : CSSMathValue
CONSOLE MESSAGE: line 153: getter values
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface CSSMathSum : CSSMathValue
CONSOLE MESSAGE: line 153: getter values
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface CSSMathValue : CSSNumericValue
CONSOLE MESSAGE: line 153: getter operator
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface CSSMatrixComponent : CSSTransformComponent
CONSOLE MESSAGE: line 153: getter matrix
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: setter matrix
CONSOLE MESSAGE: line 153: interface CSSNumericArray
CONSOLE MESSAGE: line 153: getter length
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: method entries
CONSOLE MESSAGE: line 153: method forEach
CONSOLE MESSAGE: line 153: method keys
CONSOLE MESSAGE: line 153: method values
CONSOLE MESSAGE: line 153: interface CSSNumericValue : CSSStyleValue
CONSOLE MESSAGE: line 153: method add
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: method div
CONSOLE MESSAGE: line 153: method equals
CONSOLE MESSAGE: line 153: method max
CONSOLE MESSAGE: line 153: method min
CONSOLE MESSAGE: line 153: method mul
CONSOLE MESSAGE: line 153: method sub
CONSOLE MESSAGE: line 153: method to
CONSOLE MESSAGE: line 153: method toSum
CONSOLE MESSAGE: line 153: method type
CONSOLE MESSAGE: line 153: interface CSSPerspective : CSSTransformComponent
CONSOLE MESSAGE: line 153: getter length
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: setter length
CONSOLE MESSAGE: line 153: interface CSSPositionValue : CSSStyleValue
CONSOLE MESSAGE: line 153: getter x
CONSOLE MESSAGE: line 153: getter y
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: setter x
CONSOLE MESSAGE: line 153: setter y
CONSOLE MESSAGE: line 153: interface CSSRotate : CSSTransformComponent
CONSOLE MESSAGE: line 153: getter angle
CONSOLE MESSAGE: line 153: getter x
CONSOLE MESSAGE: line 153: getter y
CONSOLE MESSAGE: line 153: getter z
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: setter angle
CONSOLE MESSAGE: line 153: setter x
CONSOLE MESSAGE: line 153: setter y
CONSOLE MESSAGE: line 153: setter z
CONSOLE MESSAGE: line 153: interface CSSScale : CSSTransformComponent
CONSOLE MESSAGE: line 153: getter x
CONSOLE MESSAGE: line 153: getter y
CONSOLE MESSAGE: line 153: getter z
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: setter x
CONSOLE MESSAGE: line 153: setter y
CONSOLE MESSAGE: line 153: setter z
CONSOLE MESSAGE: line 153: interface CSSSkew : CSSTransformComponent
CONSOLE MESSAGE: line 153: getter ax
CONSOLE MESSAGE: line 153: getter ay
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: setter ax
CONSOLE MESSAGE: line 153: setter ay
CONSOLE MESSAGE: line 153: interface CSSSkewX : CSSTransformComponent
CONSOLE MESSAGE: line 153: getter ax
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: setter ax
CONSOLE MESSAGE: line 153: interface CSSSkewY : CSSTransformComponent
CONSOLE MESSAGE: line 153: getter ay
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: setter ay
CONSOLE MESSAGE: line 153: interface CSSStyleValue
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: method toString
CONSOLE MESSAGE: line 153: interface CSSTransformComponent
CONSOLE MESSAGE: line 153: getter is2D
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: method toMatrix
CONSOLE MESSAGE: line 153: method toString
CONSOLE MESSAGE: line 153: setter is2D
CONSOLE MESSAGE: line 153: interface CSSTransformValue : CSSStyleValue
CONSOLE MESSAGE: line 153: getter is2D
CONSOLE MESSAGE: line 153: getter length
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: method entries
CONSOLE MESSAGE: line 153: method forEach
CONSOLE MESSAGE: line 153: method keys
CONSOLE MESSAGE: line 153: method toMatrix
CONSOLE MESSAGE: line 153: method values
CONSOLE MESSAGE: line 153: interface CSSTranslate : CSSTransformComponent
CONSOLE MESSAGE: line 153: getter x
CONSOLE MESSAGE: line 153: getter y
CONSOLE MESSAGE: line 153: getter z
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: setter x
CONSOLE MESSAGE: line 153: setter y
CONSOLE MESSAGE: line 153: setter z
CONSOLE MESSAGE: line 153: interface CSSUnitValue : CSSNumericValue
CONSOLE MESSAGE: line 153: getter unit
CONSOLE MESSAGE: line 153: getter value
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: setter value
CONSOLE MESSAGE: line 153: interface CSSUnparsedValue : CSSStyleValue
CONSOLE MESSAGE: line 153: getter length
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: method entries
CONSOLE MESSAGE: line 153: method forEach
CONSOLE MESSAGE: line 153: method keys
CONSOLE MESSAGE: line 153: method values
CONSOLE MESSAGE: line 153: interface CSSVariableReferenceValue
CONSOLE MESSAGE: line 153: getter fallback
CONSOLE MESSAGE: line 153: getter variable
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: setter variable
CONSOLE MESSAGE: line 153: interface CountQueuingStrategy
CONSOLE MESSAGE: line 153: getter highWaterMark
CONSOLE MESSAGE: line 153: getter size
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface PaintRenderingContext2D
CONSOLE MESSAGE: line 153: getter fillStyle
CONSOLE MESSAGE: line 153: getter filter
CONSOLE MESSAGE: line 153: getter globalAlpha
CONSOLE MESSAGE: line 153: getter globalCompositeOperation
CONSOLE MESSAGE: line 153: getter imageSmoothingEnabled
CONSOLE MESSAGE: line 153: getter imageSmoothingQuality
CONSOLE MESSAGE: line 153: getter lineCap
CONSOLE MESSAGE: line 153: getter lineDashOffset
CONSOLE MESSAGE: line 153: getter lineJoin
CONSOLE MESSAGE: line 153: getter lineWidth
CONSOLE MESSAGE: line 153: getter miterLimit
CONSOLE MESSAGE: line 153: getter shadowBlur
CONSOLE MESSAGE: line 153: getter shadowColor
CONSOLE MESSAGE: line 153: getter shadowOffsetX
CONSOLE MESSAGE: line 153: getter shadowOffsetY
CONSOLE MESSAGE: line 153: getter strokeStyle
CONSOLE MESSAGE: line 153: method arc
CONSOLE MESSAGE: line 153: method arcTo
CONSOLE MESSAGE: line 153: method beginPath
CONSOLE MESSAGE: line 153: method bezierCurveTo
CONSOLE MESSAGE: line 153: method clearRect
CONSOLE MESSAGE: line 153: method clip
CONSOLE MESSAGE: line 153: method closePath
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: method createLinearGradient
CONSOLE MESSAGE: line 153: method createPattern
CONSOLE MESSAGE: line 153: method createRadialGradient
CONSOLE MESSAGE: line 153: method drawImage
CONSOLE MESSAGE: line 153: method ellipse
CONSOLE MESSAGE: line 153: method fill
CONSOLE MESSAGE: line 153: method fillRect
CONSOLE MESSAGE: line 153: method getLineDash
CONSOLE MESSAGE: line 153: method getTransform
CONSOLE MESSAGE: line 153: method isPointInPath
CONSOLE MESSAGE: line 153: method isPointInStroke
CONSOLE MESSAGE: line 153: method lineTo
CONSOLE MESSAGE: line 153: method moveTo
CONSOLE MESSAGE: line 153: method quadraticCurveTo
CONSOLE MESSAGE: line 153: method rect
CONSOLE MESSAGE: line 153: method resetTransform
CONSOLE MESSAGE: line 153: method restore
CONSOLE MESSAGE: line 153: method rotate
CONSOLE MESSAGE: line 153: method save
CONSOLE MESSAGE: line 153: method scale
CONSOLE MESSAGE: line 153: method setLineDash
CONSOLE MESSAGE: line 153: method setTransform
CONSOLE MESSAGE: line 153: method stroke
CONSOLE MESSAGE: line 153: method strokeRect
CONSOLE MESSAGE: line 153: method transform
CONSOLE MESSAGE: line 153: method translate
CONSOLE MESSAGE: line 153: setter fillStyle
CONSOLE MESSAGE: line 153: setter filter
CONSOLE MESSAGE: line 153: setter globalAlpha
CONSOLE MESSAGE: line 153: setter globalCompositeOperation
CONSOLE MESSAGE: line 153: setter imageSmoothingEnabled
CONSOLE MESSAGE: line 153: setter imageSmoothingQuality
CONSOLE MESSAGE: line 153: setter lineCap
CONSOLE MESSAGE: line 153: setter lineDashOffset
CONSOLE MESSAGE: line 153: setter lineJoin
CONSOLE MESSAGE: line 153: setter lineWidth
CONSOLE MESSAGE: line 153: setter miterLimit
CONSOLE MESSAGE: line 153: setter shadowBlur
CONSOLE MESSAGE: line 153: setter shadowColor
CONSOLE MESSAGE: line 153: setter shadowOffsetX
CONSOLE MESSAGE: line 153: setter shadowOffsetY
CONSOLE MESSAGE: line 153: setter strokeStyle
CONSOLE MESSAGE: line 153: interface PaintSize
CONSOLE MESSAGE: line 153: getter height
CONSOLE MESSAGE: line 153: getter width
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface PaintWorkletGlobalScope : WorkletGlobalScope
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface Path2D
CONSOLE MESSAGE: line 153: method addPath
CONSOLE MESSAGE: line 153: method arc
CONSOLE MESSAGE: line 153: method arcTo
CONSOLE MESSAGE: line 153: method bezierCurveTo
CONSOLE MESSAGE: line 153: method closePath
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: method ellipse
CONSOLE MESSAGE: line 153: method lineTo
CONSOLE MESSAGE: line 153: method moveTo
CONSOLE MESSAGE: line 153: method quadraticCurveTo
CONSOLE MESSAGE: line 153: method rect
CONSOLE MESSAGE: line 153: interface ReadableStream
CONSOLE MESSAGE: line 153: getter locked
CONSOLE MESSAGE: line 153: method cancel
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: method getReader
CONSOLE MESSAGE: line 153: method pipeThrough
CONSOLE MESSAGE: line 153: method pipeTo
CONSOLE MESSAGE: line 153: method tee
CONSOLE MESSAGE: line 153: interface ReadableStreamDefaultReader
CONSOLE MESSAGE: line 153: getter closed
CONSOLE MESSAGE: line 153: method cancel
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: method read
CONSOLE MESSAGE: line 153: method releaseLock
CONSOLE MESSAGE: line 153: interface StylePropertyMapReadOnly
CONSOLE MESSAGE: line 153: getter size
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: method entries
CONSOLE MESSAGE: line 153: method forEach
CONSOLE MESSAGE: line 153: method get
CONSOLE MESSAGE: line 153: method getAll
CONSOLE MESSAGE: line 153: method has
CONSOLE MESSAGE: line 153: method keys
CONSOLE MESSAGE: line 153: method values
CONSOLE MESSAGE: line 153: interface TransformStream
CONSOLE MESSAGE: line 153: getter readable
CONSOLE MESSAGE: line 153: getter writable
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface WorkletGlobalScope
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface WritableStream
CONSOLE MESSAGE: line 153: getter locked
CONSOLE MESSAGE: line 153: method abort
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: method getWriter
CONSOLE MESSAGE: line 153: interface WritableStreamDefaultWriter
CONSOLE MESSAGE: line 153: getter closed
CONSOLE MESSAGE: line 153: getter desiredSize
CONSOLE MESSAGE: line 153: getter ready
CONSOLE MESSAGE: line 153: method abort
CONSOLE MESSAGE: line 153: method close
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: method releaseLock
CONSOLE MESSAGE: line 153: method write
CONSOLE MESSAGE: line 153: global object
CONSOLE MESSAGE: line 153: attribute console
CONSOLE MESSAGE: line 153: attribute globalThis
CONSOLE MESSAGE: line 153: getter devicePixelRatio
CONSOLE MESSAGE: line 153: method gc
CONSOLE MESSAGE: line 153: method registerPaint
CONSOLE MESSAGE: line 153: interface ByteLengthQueuingStrategy
CONSOLE MESSAGE: line 153: getter highWaterMark
CONSOLE MESSAGE: line 153: getter size
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface CSSImageValue : CSSStyleValue
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface CSSKeywordValue : CSSStyleValue
CONSOLE MESSAGE: line 153: getter value
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: setter value
CONSOLE MESSAGE: line 153: interface CSSMathInvert : CSSMathValue
CONSOLE MESSAGE: line 153: getter value
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface CSSMathMax : CSSMathValue
CONSOLE MESSAGE: line 153: getter values
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface CSSMathMin : CSSMathValue
CONSOLE MESSAGE: line 153: getter values
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface CSSMathNegate : CSSMathValue
CONSOLE MESSAGE: line 153: getter value
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface CSSMathProduct : CSSMathValue
CONSOLE MESSAGE: line 153: getter values
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface CSSMathSum : CSSMathValue
CONSOLE MESSAGE: line 153: getter values
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface CSSMathValue : CSSNumericValue
CONSOLE MESSAGE: line 153: getter operator
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface CSSMatrixComponent : CSSTransformComponent
CONSOLE MESSAGE: line 153: getter matrix
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: setter matrix
CONSOLE MESSAGE: line 153: interface CSSNumericArray
CONSOLE MESSAGE: line 153: getter length
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: method entries
CONSOLE MESSAGE: line 153: method forEach
CONSOLE MESSAGE: line 153: method keys
CONSOLE MESSAGE: line 153: method values
CONSOLE MESSAGE: line 153: interface CSSNumericValue : CSSStyleValue
CONSOLE MESSAGE: line 153: method add
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: method div
CONSOLE MESSAGE: line 153: method equals
CONSOLE MESSAGE: line 153: method max
CONSOLE MESSAGE: line 153: method min
CONSOLE MESSAGE: line 153: method mul
CONSOLE MESSAGE: line 153: method sub
CONSOLE MESSAGE: line 153: method to
CONSOLE MESSAGE: line 153: method toSum
CONSOLE MESSAGE: line 153: method type
CONSOLE MESSAGE: line 153: interface CSSPerspective : CSSTransformComponent
CONSOLE MESSAGE: line 153: getter length
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: setter length
CONSOLE MESSAGE: line 153: interface CSSPositionValue : CSSStyleValue
CONSOLE MESSAGE: line 153: getter x
CONSOLE MESSAGE: line 153: getter y
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: setter x
CONSOLE MESSAGE: line 153: setter y
CONSOLE MESSAGE: line 153: interface CSSRotate : CSSTransformComponent
CONSOLE MESSAGE: line 153: getter angle
CONSOLE MESSAGE: line 153: getter x
CONSOLE MESSAGE: line 153: getter y
CONSOLE MESSAGE: line 153: getter z
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: setter angle
CONSOLE MESSAGE: line 153: setter x
CONSOLE MESSAGE: line 153: setter y
CONSOLE MESSAGE: line 153: setter z
CONSOLE MESSAGE: line 153: interface CSSScale : CSSTransformComponent
CONSOLE MESSAGE: line 153: getter x
CONSOLE MESSAGE: line 153: getter y
CONSOLE MESSAGE: line 153: getter z
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: setter x
CONSOLE MESSAGE: line 153: setter y
CONSOLE MESSAGE: line 153: setter z
CONSOLE MESSAGE: line 153: interface CSSSkew : CSSTransformComponent
CONSOLE MESSAGE: line 153: getter ax
CONSOLE MESSAGE: line 153: getter ay
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: setter ax
CONSOLE MESSAGE: line 153: setter ay
CONSOLE MESSAGE: line 153: interface CSSSkewX : CSSTransformComponent
CONSOLE MESSAGE: line 153: getter ax
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: setter ax
CONSOLE MESSAGE: line 153: interface CSSSkewY : CSSTransformComponent
CONSOLE MESSAGE: line 153: getter ay
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: setter ay
CONSOLE MESSAGE: line 153: interface CSSStyleValue
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: method toString
CONSOLE MESSAGE: line 153: interface CSSTransformComponent
CONSOLE MESSAGE: line 153: getter is2D
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: method toMatrix
CONSOLE MESSAGE: line 153: method toString
CONSOLE MESSAGE: line 153: setter is2D
CONSOLE MESSAGE: line 153: interface CSSTransformValue : CSSStyleValue
CONSOLE MESSAGE: line 153: getter is2D
CONSOLE MESSAGE: line 153: getter length
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: method entries
CONSOLE MESSAGE: line 153: method forEach
CONSOLE MESSAGE: line 153: method keys
CONSOLE MESSAGE: line 153: method toMatrix
CONSOLE MESSAGE: line 153: method values
CONSOLE MESSAGE: line 153: interface CSSTranslate : CSSTransformComponent
CONSOLE MESSAGE: line 153: getter x
CONSOLE MESSAGE: line 153: getter y
CONSOLE MESSAGE: line 153: getter z
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: setter x
CONSOLE MESSAGE: line 153: setter y
CONSOLE MESSAGE: line 153: setter z
CONSOLE MESSAGE: line 153: interface CSSUnitValue : CSSNumericValue
CONSOLE MESSAGE: line 153: getter unit
CONSOLE MESSAGE: line 153: getter value
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: setter value
CONSOLE MESSAGE: line 153: interface CSSUnparsedValue : CSSStyleValue
CONSOLE MESSAGE: line 153: getter length
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: method entries
CONSOLE MESSAGE: line 153: method forEach
CONSOLE MESSAGE: line 153: method keys
CONSOLE MESSAGE: line 153: method values
CONSOLE MESSAGE: line 153: interface CSSVariableReferenceValue
CONSOLE MESSAGE: line 153: getter fallback
CONSOLE MESSAGE: line 153: getter variable
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: setter variable
CONSOLE MESSAGE: line 153: interface CountQueuingStrategy
CONSOLE MESSAGE: line 153: getter highWaterMark
CONSOLE MESSAGE: line 153: getter size
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface PaintRenderingContext2D
CONSOLE MESSAGE: line 153: getter fillStyle
CONSOLE MESSAGE: line 153: getter filter
CONSOLE MESSAGE: line 153: getter globalAlpha
CONSOLE MESSAGE: line 153: getter globalCompositeOperation
CONSOLE MESSAGE: line 153: getter imageSmoothingEnabled
CONSOLE MESSAGE: line 153: getter imageSmoothingQuality
CONSOLE MESSAGE: line 153: getter lineCap
CONSOLE MESSAGE: line 153: getter lineDashOffset
CONSOLE MESSAGE: line 153: getter lineJoin
CONSOLE MESSAGE: line 153: getter lineWidth
CONSOLE MESSAGE: line 153: getter miterLimit
CONSOLE MESSAGE: line 153: getter shadowBlur
CONSOLE MESSAGE: line 153: getter shadowColor
CONSOLE MESSAGE: line 153: getter shadowOffsetX
CONSOLE MESSAGE: line 153: getter shadowOffsetY
CONSOLE MESSAGE: line 153: getter strokeStyle
CONSOLE MESSAGE: line 153: method arc
CONSOLE MESSAGE: line 153: method arcTo
CONSOLE MESSAGE: line 153: method beginPath
CONSOLE MESSAGE: line 153: method bezierCurveTo
CONSOLE MESSAGE: line 153: method clearRect
CONSOLE MESSAGE: line 153: method clip
CONSOLE MESSAGE: line 153: method closePath
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: method createLinearGradient
CONSOLE MESSAGE: line 153: method createPattern
CONSOLE MESSAGE: line 153: method createRadialGradient
CONSOLE MESSAGE: line 153: method drawImage
CONSOLE MESSAGE: line 153: method ellipse
CONSOLE MESSAGE: line 153: method fill
CONSOLE MESSAGE: line 153: method fillRect
CONSOLE MESSAGE: line 153: method getLineDash
CONSOLE MESSAGE: line 153: method getTransform
CONSOLE MESSAGE: line 153: method isPointInPath
CONSOLE MESSAGE: line 153: method isPointInStroke
CONSOLE MESSAGE: line 153: method lineTo
CONSOLE MESSAGE: line 153: method moveTo
CONSOLE MESSAGE: line 153: method quadraticCurveTo
CONSOLE MESSAGE: line 153: method rect
CONSOLE MESSAGE: line 153: method resetTransform
CONSOLE MESSAGE: line 153: method restore
CONSOLE MESSAGE: line 153: method rotate
CONSOLE MESSAGE: line 153: method save
CONSOLE MESSAGE: line 153: method scale
CONSOLE MESSAGE: line 153: method setLineDash
CONSOLE MESSAGE: line 153: method setTransform
CONSOLE MESSAGE: line 153: method stroke
CONSOLE MESSAGE: line 153: method strokeRect
CONSOLE MESSAGE: line 153: method transform
CONSOLE MESSAGE: line 153: method translate
CONSOLE MESSAGE: line 153: setter fillStyle
CONSOLE MESSAGE: line 153: setter filter
CONSOLE MESSAGE: line 153: setter globalAlpha
CONSOLE MESSAGE: line 153: setter globalCompositeOperation
CONSOLE MESSAGE: line 153: setter imageSmoothingEnabled
CONSOLE MESSAGE: line 153: setter imageSmoothingQuality
CONSOLE MESSAGE: line 153: setter lineCap
CONSOLE MESSAGE: line 153: setter lineDashOffset
CONSOLE MESSAGE: line 153: setter lineJoin
CONSOLE MESSAGE: line 153: setter lineWidth
CONSOLE MESSAGE: line 153: setter miterLimit
CONSOLE MESSAGE: line 153: setter shadowBlur
CONSOLE MESSAGE: line 153: setter shadowColor
CONSOLE MESSAGE: line 153: setter shadowOffsetX
CONSOLE MESSAGE: line 153: setter shadowOffsetY
CONSOLE MESSAGE: line 153: setter strokeStyle
CONSOLE MESSAGE: line 153: interface PaintSize
CONSOLE MESSAGE: line 153: getter height
CONSOLE MESSAGE: line 153: getter width
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface PaintWorkletGlobalScope : WorkletGlobalScope
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface Path2D
CONSOLE MESSAGE: line 153: method addPath
CONSOLE MESSAGE: line 153: method arc
CONSOLE MESSAGE: line 153: method arcTo
CONSOLE MESSAGE: line 153: method bezierCurveTo
CONSOLE MESSAGE: line 153: method closePath
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: method ellipse
CONSOLE MESSAGE: line 153: method lineTo
CONSOLE MESSAGE: line 153: method moveTo
CONSOLE MESSAGE: line 153: method quadraticCurveTo
CONSOLE MESSAGE: line 153: method rect
CONSOLE MESSAGE: line 153: interface ReadableStream
CONSOLE MESSAGE: line 153: getter locked
CONSOLE MESSAGE: line 153: method cancel
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: method getReader
CONSOLE MESSAGE: line 153: method pipeThrough
CONSOLE MESSAGE: line 153: method pipeTo
CONSOLE MESSAGE: line 153: method tee
CONSOLE MESSAGE: line 153: interface ReadableStreamDefaultReader
CONSOLE MESSAGE: line 153: getter closed
CONSOLE MESSAGE: line 153: method cancel
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: method read
CONSOLE MESSAGE: line 153: method releaseLock
CONSOLE MESSAGE: line 153: interface StylePropertyMapReadOnly
CONSOLE MESSAGE: line 153: getter size
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: method entries
CONSOLE MESSAGE: line 153: method forEach
CONSOLE MESSAGE: line 153: method get
CONSOLE MESSAGE: line 153: method getAll
CONSOLE MESSAGE: line 153: method has
CONSOLE MESSAGE: line 153: method keys
CONSOLE MESSAGE: line 153: method values
CONSOLE MESSAGE: line 153: interface TransformStream
CONSOLE MESSAGE: line 153: getter readable
CONSOLE MESSAGE: line 153: getter writable
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface WorkletGlobalScope
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface WritableStream
CONSOLE MESSAGE: line 153: getter locked
CONSOLE MESSAGE: line 153: method abort
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: method getWriter
CONSOLE MESSAGE: line 153: interface WritableStreamDefaultWriter
CONSOLE MESSAGE: line 153: getter closed
CONSOLE MESSAGE: line 153: getter desiredSize
CONSOLE MESSAGE: line 153: getter ready
CONSOLE MESSAGE: line 153: method abort
CONSOLE MESSAGE: line 153: method close
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: method releaseLock
CONSOLE MESSAGE: line 153: method write
CONSOLE MESSAGE: line 153: global object
CONSOLE MESSAGE: line 153: attribute console
CONSOLE MESSAGE: line 153: attribute globalThis
CONSOLE MESSAGE: line 153: getter devicePixelRatio
CONSOLE MESSAGE: line 153: method gc
CONSOLE MESSAGE: line 153: method registerPaint
CONSOLE MESSAGE: line 153: interface ByteLengthQueuingStrategy
CONSOLE MESSAGE: line 153: getter highWaterMark
CONSOLE MESSAGE: line 153: getter size
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface CSSImageValue : CSSStyleValue
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface CSSKeywordValue : CSSStyleValue
CONSOLE MESSAGE: line 153: getter value
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: setter value
CONSOLE MESSAGE: line 153: interface CSSMathInvert : CSSMathValue
CONSOLE MESSAGE: line 153: getter value
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface CSSMathMax : CSSMathValue
CONSOLE MESSAGE: line 153: getter values
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface CSSMathMin : CSSMathValue
CONSOLE MESSAGE: line 153: getter values
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface CSSMathNegate : CSSMathValue
CONSOLE MESSAGE: line 153: getter value
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface CSSMathProduct : CSSMathValue
CONSOLE MESSAGE: line 153: getter values
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface CSSMathSum : CSSMathValue
CONSOLE MESSAGE: line 153: getter values
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface CSSMathValue : CSSNumericValue
CONSOLE MESSAGE: line 153: getter operator
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface CSSMatrixComponent : CSSTransformComponent
CONSOLE MESSAGE: line 153: getter matrix
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: setter matrix
CONSOLE MESSAGE: line 153: interface CSSNumericArray
CONSOLE MESSAGE: line 153: getter length
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: method entries
CONSOLE MESSAGE: line 153: method forEach
CONSOLE MESSAGE: line 153: method keys
CONSOLE MESSAGE: line 153: method values
CONSOLE MESSAGE: line 153: interface CSSNumericValue : CSSStyleValue
CONSOLE MESSAGE: line 153: method add
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: method div
CONSOLE MESSAGE: line 153: method equals
CONSOLE MESSAGE: line 153: method max
CONSOLE MESSAGE: line 153: method min
CONSOLE MESSAGE: line 153: method mul
CONSOLE MESSAGE: line 153: method sub
CONSOLE MESSAGE: line 153: method to
CONSOLE MESSAGE: line 153: method toSum
CONSOLE MESSAGE: line 153: method type
CONSOLE MESSAGE: line 153: interface CSSPerspective : CSSTransformComponent
CONSOLE MESSAGE: line 153: getter length
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: setter length
CONSOLE MESSAGE: line 153: interface CSSPositionValue : CSSStyleValue
CONSOLE MESSAGE: line 153: getter x
CONSOLE MESSAGE: line 153: getter y
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: setter x
CONSOLE MESSAGE: line 153: setter y
CONSOLE MESSAGE: line 153: interface CSSRotate : CSSTransformComponent
CONSOLE MESSAGE: line 153: getter angle
CONSOLE MESSAGE: line 153: getter x
CONSOLE MESSAGE: line 153: getter y
CONSOLE MESSAGE: line 153: getter z
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: setter angle
CONSOLE MESSAGE: line 153: setter x
CONSOLE MESSAGE: line 153: setter y
CONSOLE MESSAGE: line 153: setter z
CONSOLE MESSAGE: line 153: interface CSSScale : CSSTransformComponent
CONSOLE MESSAGE: line 153: getter x
CONSOLE MESSAGE: line 153: getter y
CONSOLE MESSAGE: line 153: getter z
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: setter x
CONSOLE MESSAGE: line 153: setter y
CONSOLE MESSAGE: line 153: setter z
CONSOLE MESSAGE: line 153: interface CSSSkew : CSSTransformComponent
CONSOLE MESSAGE: line 153: getter ax
CONSOLE MESSAGE: line 153: getter ay
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: setter ax
CONSOLE MESSAGE: line 153: setter ay
CONSOLE MESSAGE: line 153: interface CSSSkewX : CSSTransformComponent
CONSOLE MESSAGE: line 153: getter ax
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: setter ax
CONSOLE MESSAGE: line 153: interface CSSSkewY : CSSTransformComponent
CONSOLE MESSAGE: line 153: getter ay
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: setter ay
CONSOLE MESSAGE: line 153: interface CSSStyleValue
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: method toString
CONSOLE MESSAGE: line 153: interface CSSTransformComponent
CONSOLE MESSAGE: line 153: getter is2D
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: method toMatrix
CONSOLE MESSAGE: line 153: method toString
CONSOLE MESSAGE: line 153: setter is2D
CONSOLE MESSAGE: line 153: interface CSSTransformValue : CSSStyleValue
CONSOLE MESSAGE: line 153: getter is2D
CONSOLE MESSAGE: line 153: getter length
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: method entries
CONSOLE MESSAGE: line 153: method forEach
CONSOLE MESSAGE: line 153: method keys
CONSOLE MESSAGE: line 153: method toMatrix
CONSOLE MESSAGE: line 153: method values
CONSOLE MESSAGE: line 153: interface CSSTranslate : CSSTransformComponent
CONSOLE MESSAGE: line 153: getter x
CONSOLE MESSAGE: line 153: getter y
CONSOLE MESSAGE: line 153: getter z
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: setter x
CONSOLE MESSAGE: line 153: setter y
CONSOLE MESSAGE: line 153: setter z
CONSOLE MESSAGE: line 153: interface CSSUnitValue : CSSNumericValue
CONSOLE MESSAGE: line 153: getter unit
CONSOLE MESSAGE: line 153: getter value
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: setter value
CONSOLE MESSAGE: line 153: interface CSSUnparsedValue : CSSStyleValue
CONSOLE MESSAGE: line 153: getter length
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: method entries
CONSOLE MESSAGE: line 153: method forEach
CONSOLE MESSAGE: line 153: method keys
CONSOLE MESSAGE: line 153: method values
CONSOLE MESSAGE: line 153: interface CSSVariableReferenceValue
CONSOLE MESSAGE: line 153: getter fallback
CONSOLE MESSAGE: line 153: getter variable
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: setter variable
CONSOLE MESSAGE: line 153: interface CountQueuingStrategy
CONSOLE MESSAGE: line 153: getter highWaterMark
CONSOLE MESSAGE: line 153: getter size
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface PaintRenderingContext2D
CONSOLE MESSAGE: line 153: getter fillStyle
CONSOLE MESSAGE: line 153: getter filter
CONSOLE MESSAGE: line 153: getter globalAlpha
CONSOLE MESSAGE: line 153: getter globalCompositeOperation
CONSOLE MESSAGE: line 153: getter imageSmoothingEnabled
CONSOLE MESSAGE: line 153: getter imageSmoothingQuality
CONSOLE MESSAGE: line 153: getter lineCap
CONSOLE MESSAGE: line 153: getter lineDashOffset
CONSOLE MESSAGE: line 153: getter lineJoin
CONSOLE MESSAGE: line 153: getter lineWidth
CONSOLE MESSAGE: line 153: getter miterLimit
CONSOLE MESSAGE: line 153: getter shadowBlur
CONSOLE MESSAGE: line 153: getter shadowColor
CONSOLE MESSAGE: line 153: getter shadowOffsetX
CONSOLE MESSAGE: line 153: getter shadowOffsetY
CONSOLE MESSAGE: line 153: getter strokeStyle
CONSOLE MESSAGE: line 153: method arc
CONSOLE MESSAGE: line 153: method arcTo
CONSOLE MESSAGE: line 153: method beginPath
CONSOLE MESSAGE: line 153: method bezierCurveTo
CONSOLE MESSAGE: line 153: method clearRect
CONSOLE MESSAGE: line 153: method clip
CONSOLE MESSAGE: line 153: method closePath
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: method createLinearGradient
CONSOLE MESSAGE: line 153: method createPattern
CONSOLE MESSAGE: line 153: method createRadialGradient
CONSOLE MESSAGE: line 153: method drawImage
CONSOLE MESSAGE: line 153: method ellipse
CONSOLE MESSAGE: line 153: method fill
CONSOLE MESSAGE: line 153: method fillRect
CONSOLE MESSAGE: line 153: method getLineDash
CONSOLE MESSAGE: line 153: method getTransform
CONSOLE MESSAGE: line 153: method isPointInPath
CONSOLE MESSAGE: line 153: method isPointInStroke
CONSOLE MESSAGE: line 153: method lineTo
CONSOLE MESSAGE: line 153: method moveTo
CONSOLE MESSAGE: line 153: method quadraticCurveTo
CONSOLE MESSAGE: line 153: method rect
CONSOLE MESSAGE: line 153: method resetTransform
CONSOLE MESSAGE: line 153: method restore
CONSOLE MESSAGE: line 153: method rotate
CONSOLE MESSAGE: line 153: method save
CONSOLE MESSAGE: line 153: method scale
CONSOLE MESSAGE: line 153: method setLineDash
CONSOLE MESSAGE: line 153: method setTransform
CONSOLE MESSAGE: line 153: method stroke
CONSOLE MESSAGE: line 153: method strokeRect
CONSOLE MESSAGE: line 153: method transform
CONSOLE MESSAGE: line 153: method translate
CONSOLE MESSAGE: line 153: setter fillStyle
CONSOLE MESSAGE: line 153: setter filter
CONSOLE MESSAGE: line 153: setter globalAlpha
CONSOLE MESSAGE: line 153: setter globalCompositeOperation
CONSOLE MESSAGE: line 153: setter imageSmoothingEnabled
CONSOLE MESSAGE: line 153: setter imageSmoothingQuality
CONSOLE MESSAGE: line 153: setter lineCap
CONSOLE MESSAGE: line 153: setter lineDashOffset
CONSOLE MESSAGE: line 153: setter lineJoin
CONSOLE MESSAGE: line 153: setter lineWidth
CONSOLE MESSAGE: line 153: setter miterLimit
CONSOLE MESSAGE: line 153: setter shadowBlur
CONSOLE MESSAGE: line 153: setter shadowColor
CONSOLE MESSAGE: line 153: setter shadowOffsetX
CONSOLE MESSAGE: line 153: setter shadowOffsetY
CONSOLE MESSAGE: line 153: setter strokeStyle
CONSOLE MESSAGE: line 153: interface PaintSize
CONSOLE MESSAGE: line 153: getter height
CONSOLE MESSAGE: line 153: getter width
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface PaintWorkletGlobalScope : WorkletGlobalScope
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface Path2D
CONSOLE MESSAGE: line 153: method addPath
CONSOLE MESSAGE: line 153: method arc
CONSOLE MESSAGE: line 153: method arcTo
CONSOLE MESSAGE: line 153: method bezierCurveTo
CONSOLE MESSAGE: line 153: method closePath
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: method ellipse
CONSOLE MESSAGE: line 153: method lineTo
CONSOLE MESSAGE: line 153: method moveTo
CONSOLE MESSAGE: line 153: method quadraticCurveTo
CONSOLE MESSAGE: line 153: method rect
CONSOLE MESSAGE: line 153: interface ReadableStream
CONSOLE MESSAGE: line 153: getter locked
CONSOLE MESSAGE: line 153: method cancel
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: method getReader
CONSOLE MESSAGE: line 153: method pipeThrough
CONSOLE MESSAGE: line 153: method pipeTo
CONSOLE MESSAGE: line 153: method tee
CONSOLE MESSAGE: line 153: interface ReadableStreamDefaultReader
CONSOLE MESSAGE: line 153: getter closed
CONSOLE MESSAGE: line 153: method cancel
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: method read
CONSOLE MESSAGE: line 153: method releaseLock
CONSOLE MESSAGE: line 153: interface StylePropertyMapReadOnly
CONSOLE MESSAGE: line 153: getter size
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: method entries
CONSOLE MESSAGE: line 153: method forEach
CONSOLE MESSAGE: line 153: method get
CONSOLE MESSAGE: line 153: method getAll
CONSOLE MESSAGE: line 153: method has
CONSOLE MESSAGE: line 153: method keys
CONSOLE MESSAGE: line 153: method values
CONSOLE MESSAGE: line 153: interface TransformStream
CONSOLE MESSAGE: line 153: getter readable
CONSOLE MESSAGE: line 153: getter writable
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface WorkletGlobalScope
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface WritableStream
CONSOLE MESSAGE: line 153: getter locked
CONSOLE MESSAGE: line 153: method abort
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: method getWriter
CONSOLE MESSAGE: line 153: interface WritableStreamDefaultWriter
CONSOLE MESSAGE: line 153: getter closed
CONSOLE MESSAGE: line 153: getter desiredSize
CONSOLE MESSAGE: line 153: getter ready
CONSOLE MESSAGE: line 153: method abort
CONSOLE MESSAGE: line 153: method close
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: method releaseLock
CONSOLE MESSAGE: line 153: method write
CONSOLE MESSAGE: line 153: global object
CONSOLE MESSAGE: line 153: attribute console
CONSOLE MESSAGE: line 153: attribute globalThis
CONSOLE MESSAGE: line 153: getter devicePixelRatio
CONSOLE MESSAGE: line 153: method gc
CONSOLE MESSAGE: line 153: method registerPaint
CONSOLE MESSAGE: line 153: interface ByteLengthQueuingStrategy
CONSOLE MESSAGE: line 153: getter highWaterMark
CONSOLE MESSAGE: line 153: getter size
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface CSSImageValue : CSSStyleValue
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface CSSKeywordValue : CSSStyleValue
CONSOLE MESSAGE: line 153: getter value
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: setter value
CONSOLE MESSAGE: line 153: interface CSSMathInvert : CSSMathValue
CONSOLE MESSAGE: line 153: getter value
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface CSSMathMax : CSSMathValue
CONSOLE MESSAGE: line 153: getter values
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface CSSMathMin : CSSMathValue
CONSOLE MESSAGE: line 153: getter values
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface CSSMathNegate : CSSMathValue
CONSOLE MESSAGE: line 153: getter value
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface CSSMathProduct : CSSMathValue
CONSOLE MESSAGE: line 153: getter values
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface CSSMathSum : CSSMathValue
CONSOLE MESSAGE: line 153: getter values
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface CSSMathValue : CSSNumericValue
CONSOLE MESSAGE: line 153: getter operator
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface CSSMatrixComponent : CSSTransformComponent
CONSOLE MESSAGE: line 153: getter matrix
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: setter matrix
CONSOLE MESSAGE: line 153: interface CSSNumericArray
CONSOLE MESSAGE: line 153: getter length
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: method entries
CONSOLE MESSAGE: line 153: method forEach
CONSOLE MESSAGE: line 153: method keys
CONSOLE MESSAGE: line 153: method values
CONSOLE MESSAGE: line 153: interface CSSNumericValue : CSSStyleValue
CONSOLE MESSAGE: line 153: method add
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: method div
CONSOLE MESSAGE: line 153: method equals
CONSOLE MESSAGE: line 153: method max
CONSOLE MESSAGE: line 153: method min
CONSOLE MESSAGE: line 153: method mul
CONSOLE MESSAGE: line 153: method sub
CONSOLE MESSAGE: line 153: method to
CONSOLE MESSAGE: line 153: method toSum
CONSOLE MESSAGE: line 153: method type
CONSOLE MESSAGE: line 153: interface CSSPerspective : CSSTransformComponent
CONSOLE MESSAGE: line 153: getter length
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: setter length
CONSOLE MESSAGE: line 153: interface CSSPositionValue : CSSStyleValue
CONSOLE MESSAGE: line 153: getter x
CONSOLE MESSAGE: line 153: getter y
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: setter x
CONSOLE MESSAGE: line 153: setter y
CONSOLE MESSAGE: line 153: interface CSSRotate : CSSTransformComponent
CONSOLE MESSAGE: line 153: getter angle
CONSOLE MESSAGE: line 153: getter x
CONSOLE MESSAGE: line 153: getter y
CONSOLE MESSAGE: line 153: getter z
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: setter angle
CONSOLE MESSAGE: line 153: setter x
CONSOLE MESSAGE: line 153: setter y
CONSOLE MESSAGE: line 153: setter z
CONSOLE MESSAGE: line 153: interface CSSScale : CSSTransformComponent
CONSOLE MESSAGE: line 153: getter x
CONSOLE MESSAGE: line 153: getter y
CONSOLE MESSAGE: line 153: getter z
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: setter x
CONSOLE MESSAGE: line 153: setter y
CONSOLE MESSAGE: line 153: setter z
CONSOLE MESSAGE: line 153: interface CSSSkew : CSSTransformComponent
CONSOLE MESSAGE: line 153: getter ax
CONSOLE MESSAGE: line 153: getter ay
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: setter ax
CONSOLE MESSAGE: line 153: setter ay
CONSOLE MESSAGE: line 153: interface CSSSkewX : CSSTransformComponent
CONSOLE MESSAGE: line 153: getter ax
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: setter ax
CONSOLE MESSAGE: line 153: interface CSSSkewY : CSSTransformComponent
CONSOLE MESSAGE: line 153: getter ay
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: setter ay
CONSOLE MESSAGE: line 153: interface CSSStyleValue
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: method toString
CONSOLE MESSAGE: line 153: interface CSSTransformComponent
CONSOLE MESSAGE: line 153: getter is2D
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: method toMatrix
CONSOLE MESSAGE: line 153: method toString
CONSOLE MESSAGE: line 153: setter is2D
CONSOLE MESSAGE: line 153: interface CSSTransformValue : CSSStyleValue
CONSOLE MESSAGE: line 153: getter is2D
CONSOLE MESSAGE: line 153: getter length
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: method entries
CONSOLE MESSAGE: line 153: method forEach
CONSOLE MESSAGE: line 153: method keys
CONSOLE MESSAGE: line 153: method toMatrix
CONSOLE MESSAGE: line 153: method values
CONSOLE MESSAGE: line 153: interface CSSTranslate : CSSTransformComponent
CONSOLE MESSAGE: line 153: getter x
CONSOLE MESSAGE: line 153: getter y
CONSOLE MESSAGE: line 153: getter z
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: setter x
CONSOLE MESSAGE: line 153: setter y
CONSOLE MESSAGE: line 153: setter z
CONSOLE MESSAGE: line 153: interface CSSUnitValue : CSSNumericValue
CONSOLE MESSAGE: line 153: getter unit
CONSOLE MESSAGE: line 153: getter value
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: setter value
CONSOLE MESSAGE: line 153: interface CSSUnparsedValue : CSSStyleValue
CONSOLE MESSAGE: line 153: getter length
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: method entries
CONSOLE MESSAGE: line 153: method forEach
CONSOLE MESSAGE: line 153: method keys
CONSOLE MESSAGE: line 153: method values
CONSOLE MESSAGE: line 153: interface CSSVariableReferenceValue
CONSOLE MESSAGE: line 153: getter fallback
CONSOLE MESSAGE: line 153: getter variable
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: setter variable
CONSOLE MESSAGE: line 153: interface CountQueuingStrategy
CONSOLE MESSAGE: line 153: getter highWaterMark
CONSOLE MESSAGE: line 153: getter size
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface PaintRenderingContext2D
CONSOLE MESSAGE: line 153: getter fillStyle
CONSOLE MESSAGE: line 153: getter filter
CONSOLE MESSAGE: line 153: getter globalAlpha
CONSOLE MESSAGE: line 153: getter globalCompositeOperation
CONSOLE MESSAGE: line 153: getter imageSmoothingEnabled
CONSOLE MESSAGE: line 153: getter imageSmoothingQuality
CONSOLE MESSAGE: line 153: getter lineCap
CONSOLE MESSAGE: line 153: getter lineDashOffset
CONSOLE MESSAGE: line 153: getter lineJoin
CONSOLE MESSAGE: line 153: getter lineWidth
CONSOLE MESSAGE: line 153: getter miterLimit
CONSOLE MESSAGE: line 153: getter shadowBlur
CONSOLE MESSAGE: line 153: getter shadowColor
CONSOLE MESSAGE: line 153: getter shadowOffsetX
CONSOLE MESSAGE: line 153: getter shadowOffsetY
CONSOLE MESSAGE: line 153: getter strokeStyle
CONSOLE MESSAGE: line 153: method arc
CONSOLE MESSAGE: line 153: method arcTo
CONSOLE MESSAGE: line 153: method beginPath
CONSOLE MESSAGE: line 153: method bezierCurveTo
CONSOLE MESSAGE: line 153: method clearRect
CONSOLE MESSAGE: line 153: method clip
CONSOLE MESSAGE: line 153: method closePath
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: method createLinearGradient
CONSOLE MESSAGE: line 153: method createPattern
CONSOLE MESSAGE: line 153: method createRadialGradient
CONSOLE MESSAGE: line 153: method drawImage
CONSOLE MESSAGE: line 153: method ellipse
CONSOLE MESSAGE: line 153: method fill
CONSOLE MESSAGE: line 153: method fillRect
CONSOLE MESSAGE: line 153: method getLineDash
CONSOLE MESSAGE: line 153: method getTransform
CONSOLE MESSAGE: line 153: method isPointInPath
CONSOLE MESSAGE: line 153: method isPointInStroke
CONSOLE MESSAGE: line 153: method lineTo
CONSOLE MESSAGE: line 153: method moveTo
CONSOLE MESSAGE: line 153: method quadraticCurveTo
CONSOLE MESSAGE: line 153: method rect
CONSOLE MESSAGE: line 153: method resetTransform
CONSOLE MESSAGE: line 153: method restore
CONSOLE MESSAGE: line 153: method rotate
CONSOLE MESSAGE: line 153: method save
CONSOLE MESSAGE: line 153: method scale
CONSOLE MESSAGE: line 153: method setLineDash
CONSOLE MESSAGE: line 153: method setTransform
CONSOLE MESSAGE: line 153: method stroke
CONSOLE MESSAGE: line 153: method strokeRect
CONSOLE MESSAGE: line 153: method transform
CONSOLE MESSAGE: line 153: method translate
CONSOLE MESSAGE: line 153: setter fillStyle
CONSOLE MESSAGE: line 153: setter filter
CONSOLE MESSAGE: line 153: setter globalAlpha
CONSOLE MESSAGE: line 153: setter globalCompositeOperation
CONSOLE MESSAGE: line 153: setter imageSmoothingEnabled
CONSOLE MESSAGE: line 153: setter imageSmoothingQuality
CONSOLE MESSAGE: line 153: setter lineCap
CONSOLE MESSAGE: line 153: setter lineDashOffset
CONSOLE MESSAGE: line 153: setter lineJoin
CONSOLE MESSAGE: line 153: setter lineWidth
CONSOLE MESSAGE: line 153: setter miterLimit
CONSOLE MESSAGE: line 153: setter shadowBlur
CONSOLE MESSAGE: line 153: setter shadowColor
CONSOLE MESSAGE: line 153: setter shadowOffsetX
CONSOLE MESSAGE: line 153: setter shadowOffsetY
CONSOLE MESSAGE: line 153: setter strokeStyle
CONSOLE MESSAGE: line 153: interface PaintSize
CONSOLE MESSAGE: line 153: getter height
CONSOLE MESSAGE: line 153: getter width
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface PaintWorkletGlobalScope : WorkletGlobalScope
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface Path2D
CONSOLE MESSAGE: line 153: method addPath
CONSOLE MESSAGE: line 153: method arc
CONSOLE MESSAGE: line 153: method arcTo
CONSOLE MESSAGE: line 153: method bezierCurveTo
CONSOLE MESSAGE: line 153: method closePath
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: method ellipse
CONSOLE MESSAGE: line 153: method lineTo
CONSOLE MESSAGE: line 153: method moveTo
CONSOLE MESSAGE: line 153: method quadraticCurveTo
CONSOLE MESSAGE: line 153: method rect
CONSOLE MESSAGE: line 153: interface ReadableStream
CONSOLE MESSAGE: line 153: getter locked
CONSOLE MESSAGE: line 153: method cancel
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: method getReader
CONSOLE MESSAGE: line 153: method pipeThrough
CONSOLE MESSAGE: line 153: method pipeTo
CONSOLE MESSAGE: line 153: method tee
CONSOLE MESSAGE: line 153: interface ReadableStreamDefaultReader
CONSOLE MESSAGE: line 153: getter closed
CONSOLE MESSAGE: line 153: method cancel
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: method read
CONSOLE MESSAGE: line 153: method releaseLock
CONSOLE MESSAGE: line 153: interface StylePropertyMapReadOnly
CONSOLE MESSAGE: line 153: getter size
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: method entries
CONSOLE MESSAGE: line 153: method forEach
CONSOLE MESSAGE: line 153: method get
CONSOLE MESSAGE: line 153: method getAll
CONSOLE MESSAGE: line 153: method has
CONSOLE MESSAGE: line 153: method keys
CONSOLE MESSAGE: line 153: method values
CONSOLE MESSAGE: line 153: interface TransformStream
CONSOLE MESSAGE: line 153: getter readable
CONSOLE MESSAGE: line 153: getter writable
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface WorkletGlobalScope
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: interface WritableStream
CONSOLE MESSAGE: line 153: getter locked
CONSOLE MESSAGE: line 153: method abort
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: method getWriter
CONSOLE MESSAGE: line 153: interface WritableStreamDefaultWriter
CONSOLE MESSAGE: line 153: getter closed
CONSOLE MESSAGE: line 153: getter desiredSize
CONSOLE MESSAGE: line 153: getter ready
CONSOLE MESSAGE: line 153: method abort
CONSOLE MESSAGE: line 153: method close
CONSOLE MESSAGE: line 153: method constructor
CONSOLE MESSAGE: line 153: method releaseLock
CONSOLE MESSAGE: line 153: method write
CONSOLE MESSAGE: line 153: global object
CONSOLE MESSAGE: line 153: attribute console
CONSOLE MESSAGE: line 153: attribute globalThis
CONSOLE MESSAGE: line 153: getter devicePixelRatio
CONSOLE MESSAGE: line 153: method gc
CONSOLE MESSAGE: line 153: method registerPaint
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment