1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "config.h"
6 #include "core/frame/RemoteFrame.h"
7
8 #include "core/frame/RemoteFrameView.h"
9 #include "core/html/HTMLFrameOwnerElement.h"
10
11 namespace blink {
12
RemoteFrame(FrameClient * client,FrameHost * host,FrameOwner * owner)13 inline RemoteFrame::RemoteFrame(FrameClient* client, FrameHost* host, FrameOwner* owner)
14 : Frame(client, host, owner)
15 {
16 }
17
create(FrameClient * client,FrameHost * host,FrameOwner * owner)18 PassRefPtrWillBeRawPtr<RemoteFrame> RemoteFrame::create(FrameClient* client, FrameHost* host, FrameOwner* owner)
19 {
20 return adoptRefWillBeNoop(new RemoteFrame(client, host, owner));
21 }
22
~RemoteFrame()23 RemoteFrame::~RemoteFrame()
24 {
25 setView(nullptr);
26 }
27
detach()28 void RemoteFrame::detach()
29 {
30 detachChildren();
31 m_host = nullptr;
32 }
33
setView(PassRefPtr<RemoteFrameView> view)34 void RemoteFrame::setView(PassRefPtr<RemoteFrameView> view)
35 {
36 m_view = view;
37 }
38
createView()39 void RemoteFrame::createView()
40 {
41 RefPtr<RemoteFrameView> view = RemoteFrameView::create(this);
42 setView(view);
43
44 if (ownerRenderer()) {
45 HTMLFrameOwnerElement* owner = deprecatedLocalOwner();
46 ASSERT(owner);
47 owner->setWidget(view);
48 }
49 }
50
51 } // namespace blink
52