blob: e19009a63f8028381b8fd175f9cee1ceef71edc4 [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "config.h"
#include "web/PluginPlaceholderImpl.h"
#include "core/dom/shadow/ShadowRoot.h"
#include "core/html/HTMLPlugInElement.h"
#include "core/html/shadow/PluginPlaceholderElement.h"
#include "public/web/WebPluginPlaceholder.h"
namespace blink {
PluginPlaceholderImpl::PluginPlaceholderImpl(PassOwnPtr<WebPluginPlaceholder> webPluginPlaceholder, Document& document)
: m_webPluginPlaceholder(webPluginPlaceholder)
, m_placeholderElement(PluginPlaceholderElement::create(document))
{
ASSERT(m_webPluginPlaceholder);
}
PluginPlaceholderImpl::~PluginPlaceholderImpl()
{
}
DEFINE_TRACE(PluginPlaceholderImpl)
{
visitor->trace(m_placeholderElement);
}
void PluginPlaceholderImpl::loadIntoContainer(ContainerNode& container)
{
m_placeholderElement->remove(ASSERT_NO_EXCEPTION);
update();
container.removeChildren();
container.appendChild(m_placeholderElement);
}
void PluginPlaceholderImpl::update()
{
m_placeholderElement->setMessage(m_webPluginPlaceholder->message());
m_placeholderElement->setIsCloseable(m_webPluginPlaceholder->isCloseable());
}
} // namespace blink