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 13 inline RemoteFrame::RemoteFrame(FrameClient* client, FrameHost* host, FrameOwner* owner) 14 : Frame(client, host, owner) 15 { 16 } 17 18 PassRefPtrWillBeRawPtr<RemoteFrame> RemoteFrame::create(FrameClient* client, FrameHost* host, FrameOwner* owner) 19 { 20 return adoptRefWillBeNoop(new RemoteFrame(client, host, owner)); 21 } 22 23 RemoteFrame::~RemoteFrame() 24 { 25 setView(nullptr); 26 } 27 28 void RemoteFrame::detach() 29 { 30 detachChildren(); 31 m_host = nullptr; 32 } 33 34 void RemoteFrame::setView(PassRefPtr<RemoteFrameView> view) 35 { 36 m_view = view; 37 } 38 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