Home | History | Annotate | Download | only in frame
      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