blob: fcab18d82a2f7398a61a7c2aaf523835acc3d3df [file] [log] [blame]
// Copyright 2015 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 "web/RemoteFrameOwner.h"
#include "core/frame/LocalFrame.h"
#include "public/web/WebFrameClient.h"
#include "web/WebLocalFrameImpl.h"
namespace blink {
RemoteFrameOwner::RemoteFrameOwner(SandboxFlags flags, const WebFrameOwnerProperties& frameOwnerProperties)
: m_sandboxFlags(flags)
, m_scrolling(static_cast<ScrollbarMode>(frameOwnerProperties.scrollingMode))
, m_marginWidth(frameOwnerProperties.marginWidth)
, m_marginHeight(frameOwnerProperties.marginHeight)
, m_allowFullscreen(frameOwnerProperties.allowFullscreen)
{
}
DEFINE_TRACE(RemoteFrameOwner)
{
visitor->trace(m_frame);
FrameOwner::trace(visitor);
}
void RemoteFrameOwner::setScrollingMode(WebFrameOwnerProperties::ScrollingMode mode)
{
m_scrolling = static_cast<ScrollbarMode>(mode);
}
void RemoteFrameOwner::setContentFrame(Frame& frame)
{
m_frame = &frame;
}
void RemoteFrameOwner::clearContentFrame()
{
DCHECK_EQ(m_frame->owner(), this);
m_frame = nullptr;
}
void RemoteFrameOwner::dispatchLoad()
{
WebLocalFrameImpl* webFrame = WebLocalFrameImpl::fromFrame(toLocalFrame(*m_frame));
webFrame->client()->dispatchLoad();
}
} // namespace blink