Index: Source/core/dom/custom/CustomElementScheduler.cpp |
diff --git a/Source/core/dom/custom/CustomElementScheduler.cpp b/Source/core/dom/custom/CustomElementScheduler.cpp |
index 1980496aa6322749dc9bc9e54466e5413e502078..852455e28a37bbe0de5d7300c6bef31812a820c6 100644 |
--- a/Source/core/dom/custom/CustomElementScheduler.cpp |
+++ b/Source/core/dom/custom/CustomElementScheduler.cpp |
@@ -47,7 +47,7 @@ namespace WebCore { |
class HTMLImport; |
-void CustomElementScheduler::scheduleCallback(PassRefPtr<CustomElementLifecycleCallbacks> callbacks, PassRefPtr<Element> element, CustomElementLifecycleCallbacks::CallbackType type) |
+void CustomElementScheduler::scheduleCallback(PassRefPtr<CustomElementLifecycleCallbacks> callbacks, PassRefPtrWillBeRawPtr<Element> element, CustomElementLifecycleCallbacks::CallbackType type) |
{ |
ASSERT(type != CustomElementLifecycleCallbacks::AttributeChanged); |
@@ -58,7 +58,7 @@ void CustomElementScheduler::scheduleCallback(PassRefPtr<CustomElementLifecycleC |
queue.append(CustomElementCallbackInvocation::createInvocation(callbacks, type)); |
} |
-void CustomElementScheduler::scheduleAttributeChangedCallback(PassRefPtr<CustomElementLifecycleCallbacks> callbacks, PassRefPtr<Element> element, const AtomicString& name, const AtomicString& oldValue, const AtomicString& newValue) |
+void CustomElementScheduler::scheduleAttributeChangedCallback(PassRefPtr<CustomElementLifecycleCallbacks> callbacks, PassRefPtrWillBeRawPtr<Element> element, const AtomicString& name, const AtomicString& oldValue, const AtomicString& newValue) |
{ |
if (!callbacks->hasCallback(CustomElementLifecycleCallbacks::AttributeChanged)) |
return; |
@@ -67,7 +67,7 @@ void CustomElementScheduler::scheduleAttributeChangedCallback(PassRefPtr<CustomE |
queue.append(CustomElementCallbackInvocation::createAttributeChangedInvocation(callbacks, name, oldValue, newValue)); |
} |
-void CustomElementScheduler::resolveOrScheduleResolution(PassRefPtr<CustomElementRegistrationContext> context, PassRefPtr<Element> element, const CustomElementDescriptor& descriptor) |
+void CustomElementScheduler::resolveOrScheduleResolution(PassRefPtrWillBeRawPtr<CustomElementRegistrationContext> context, PassRefPtrWillBeRawPtr<Element> element, const CustomElementDescriptor& descriptor) |
{ |
if (CustomElementCallbackDispatcher::inCallbackDeliveryScope()) { |
context->resolve(element.get(), descriptor); |
@@ -75,7 +75,7 @@ void CustomElementScheduler::resolveOrScheduleResolution(PassRefPtr<CustomElemen |
} |
HTMLImportLoader* loader = element->document().importLoader(); |
- OwnPtr<CustomElementMicrotaskResolutionStep> step = CustomElementMicrotaskResolutionStep::create(context, element, descriptor); |
+ OwnPtrWillBeRawPtr<CustomElementMicrotaskResolutionStep> step = CustomElementMicrotaskResolutionStep::create(context, element, descriptor); |
CustomElementMicrotaskDispatcher::instance().enqueue(loader, step.release()); |
} |
@@ -84,7 +84,7 @@ CustomElementMicrotaskImportStep* CustomElementScheduler::scheduleImport(HTMLImp |
ASSERT(!import->isDone()); |
ASSERT(import->parent()); |
- OwnPtr<CustomElementMicrotaskImportStep> step = CustomElementMicrotaskImportStep::create(import); |
+ OwnPtrWillBeRawPtr<CustomElementMicrotaskImportStep> step = CustomElementMicrotaskImportStep::create(import); |
CustomElementMicrotaskImportStep* rawStep = step.get(); |
// Ownership of the new step is transferred to the parent |
@@ -96,11 +96,16 @@ CustomElementMicrotaskImportStep* CustomElementScheduler::scheduleImport(HTMLImp |
CustomElementScheduler& CustomElementScheduler::instance() |
{ |
+#if ENABLE(OILPAN) |
+ DEFINE_STATIC_LOCAL(Persistent<CustomElementScheduler>, instance, (new CustomElementScheduler())); |
+ return *instance; |
+#else |
DEFINE_STATIC_LOCAL(CustomElementScheduler, instance, ()); |
return instance; |
+#endif |
} |
-CustomElementCallbackQueue& CustomElementScheduler::ensureCallbackQueue(PassRefPtr<Element> element) |
+CustomElementCallbackQueue& CustomElementScheduler::ensureCallbackQueue(PassRefPtrWillBeRawPtr<Element> element) |
{ |
ElementCallbackQueueMap::ValueType* it = m_elementCallbackQueueMap.add(element.get(), nullptr).storedValue; |
if (!it->value) |
@@ -127,9 +132,9 @@ void CustomElementScheduler::clearElementCallbackQueueMap() |
} |
// Finds or creates the callback queue for element. |
-CustomElementCallbackQueue& CustomElementScheduler::schedule(PassRefPtr<Element> passElement) |
+CustomElementCallbackQueue& CustomElementScheduler::schedule(PassRefPtrWillBeRawPtr<Element> passElement) |
{ |
- RefPtr<Element> element(passElement); |
+ RefPtrWillBeRawPtr<Element> element(passElement); |
CustomElementCallbackQueue& callbackQueue = ensureCallbackQueue(element); |
if (callbackQueue.inCreatedCallback()) { |
@@ -150,4 +155,9 @@ CustomElementCallbackQueue& CustomElementScheduler::schedule(PassRefPtr<Element> |
return callbackQueue; |
} |
+void CustomElementScheduler::trace(Visitor* visitor) |
+{ |
+ visitor->trace(m_elementCallbackQueueMap); |
+} |
+ |
} // namespace WebCore |