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