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 WebCore { 12 13 inline RemoteFrame::RemoteFrame(FrameClient* client, FrameHost* host, FrameOwner* owner) 14 : Frame(client, host, owner) 15 { 16 } 17 18 PassRefPtr<RemoteFrame> RemoteFrame::create(FrameClient* client, FrameHost* host, FrameOwner* owner) 19 { 20 RefPtr<RemoteFrame> frame = adoptRef(new RemoteFrame(client, host, owner)); 21 return frame.release(); 22 } 23 24 RemoteFrame::~RemoteFrame() 25 { 26 setView(nullptr); 27 } 28 29 void RemoteFrame::setView(PassRefPtr<RemoteFrameView> view) 30 { 31 m_view = view; 32 } 33 34 void RemoteFrame::createView() 35 { 36 RefPtr<RemoteFrameView> view = RemoteFrameView::create(this); 37 setView(view); 38 39 if (ownerRenderer()) { 40 HTMLFrameOwnerElement* owner = deprecatedLocalOwner(); 41 ASSERT(owner); 42 owner->setWidget(view); 43 } 44 } 45 46 } // namespace WebCore 47