176c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
276c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
376c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles)// found in the LICENSE file.
476c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles)
576c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles)#include "config.h"
676c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles)#include "core/dom/custom/CustomElementMicrotaskQueueBase.h"
776c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles)
876c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles)#include "core/dom/custom/CustomElementCallbackDispatcher.h"
976c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles)
1076c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles)namespace WebCore {
1176c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles)
1276c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles)void CustomElementMicrotaskQueueBase::dispatch()
1376c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles){
1476c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles)    ASSERT(!m_inDispatch);
1576c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles)    m_inDispatch = true;
1676c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles)    doDispatch();
1776c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles)    m_inDispatch = false;
1876c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles)}
1976c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles)
2076c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles)void CustomElementMicrotaskQueueBase::trace(Visitor* visitor)
2176c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles){
2276c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles)    visitor->trace(m_queue);
2376c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles)}
2476c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles)
2576c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles)#if !defined(NDEBUG)
2676c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles)void CustomElementMicrotaskQueueBase::show(unsigned indent)
2776c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles){
2876c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles)    for (unsigned q = 0; q < m_queue.size(); ++q) {
2976c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles)        if (m_queue[q])
3076c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles)            m_queue[q]->show(indent);
3176c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles)        else
3276c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles)            fprintf(stderr, "%*snull\n", indent, "");
3376c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles)    }
3476c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles)}
3576c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles)#endif
3676c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles)
3776c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles)} // namespace WebCore
38