Chromium Code Reviews| 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 |
|
haraken
2014/05/27 01:08:45
Ditto. I'd prefer DEFINE_STATIC_LOCAL(OwnPtrWillBe
|
| } |
| -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 |