| Index: third_party/WebKit/Source/modules/csspaint/PaintWorkletGlobalScope.cpp
|
| diff --git a/third_party/WebKit/Source/modules/csspaint/PaintWorkletGlobalScope.cpp b/third_party/WebKit/Source/modules/csspaint/PaintWorkletGlobalScope.cpp
|
| index 20c8688b9b8949bd3a2610b857ddb814d70c7b69..64318718a9bdbd9aafbd056c9828f4704ac82d35 100644
|
| --- a/third_party/WebKit/Source/modules/csspaint/PaintWorkletGlobalScope.cpp
|
| +++ b/third_party/WebKit/Source/modules/csspaint/PaintWorkletGlobalScope.cpp
|
| @@ -45,7 +45,8 @@ PaintWorkletGlobalScope::PaintWorkletGlobalScope(
|
| url,
|
| user_agent,
|
| std::move(security_origin),
|
| - isolate) {}
|
| + isolate),
|
| + pending_generator_registry_(new PaintWorkletPendingGeneratorRegistry) {}
|
|
|
| PaintWorkletGlobalScope::~PaintWorkletGlobalScope() {}
|
|
|
| @@ -193,17 +194,7 @@ void PaintWorkletGlobalScope::registerPaint(const String& name,
|
| native_invalidation_properties, custom_invalidation_properties,
|
| input_argument_types, has_alpha);
|
| paint_definitions_.Set(name, definition);
|
| -
|
| - // Set the definition on any pending generators.
|
| - GeneratorHashSet* set = pending_generators_.at(name);
|
| - if (set) {
|
| - for (const auto& generator : *set) {
|
| - if (generator) {
|
| - generator->SetDefinition(definition);
|
| - }
|
| - }
|
| - }
|
| - pending_generators_.erase(name);
|
| + pending_generator_registry_->SetDefinition(name, definition);
|
| }
|
|
|
| CSSPaintDefinition* PaintWorkletGlobalScope::FindDefinition(
|
| @@ -214,16 +205,12 @@ CSSPaintDefinition* PaintWorkletGlobalScope::FindDefinition(
|
| void PaintWorkletGlobalScope::AddPendingGenerator(
|
| const String& name,
|
| CSSPaintImageGeneratorImpl* generator) {
|
| - Member<GeneratorHashSet>& set =
|
| - pending_generators_.insert(name, nullptr).stored_value->value;
|
| - if (!set)
|
| - set = new GeneratorHashSet;
|
| - set->insert(generator);
|
| + pending_generator_registry_->AddPendingGenerator(name, generator);
|
| }
|
|
|
| DEFINE_TRACE(PaintWorkletGlobalScope) {
|
| visitor->Trace(paint_definitions_);
|
| - visitor->Trace(pending_generators_);
|
| + visitor->Trace(pending_generator_registry_);
|
| MainThreadWorkletGlobalScope::Trace(visitor);
|
| }
|
|
|
|
|