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 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