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/RemoteFrameView.h"
      7 
      8 #include "core/frame/RemoteFrame.h"
      9 #include "core/rendering/RenderPart.h"
     10 
     11 namespace blink {
     12 
     13 RemoteFrameView::RemoteFrameView(RemoteFrame* remoteFrame)
     14     : m_remoteFrame(remoteFrame)
     15 {
     16     ASSERT(remoteFrame);
     17 }
     18 
     19 RemoteFrameView::~RemoteFrameView()
     20 {
     21 }
     22 
     23 PassRefPtr<RemoteFrameView> RemoteFrameView::create(RemoteFrame* remoteFrame)
     24 {
     25     RefPtr<RemoteFrameView> view = adoptRef(new RemoteFrameView(remoteFrame));
     26     view->show();
     27     return view.release();
     28 }
     29 
     30 void RemoteFrameView::invalidateRect(const IntRect& rect)
     31 {
     32     RenderPart* renderer = m_remoteFrame->ownerRenderer();
     33     if (!renderer)
     34         return;
     35 
     36     IntRect repaintRect = rect;
     37     repaintRect.move(renderer->borderLeft() + renderer->paddingLeft(),
     38         renderer->borderTop() + renderer->paddingTop());
     39     renderer->invalidatePaintRectangle(repaintRect);
     40 }
     41 
     42 void RemoteFrameView::setFrameRect(const IntRect& newRect)
     43 {
     44     IntRect oldRect = frameRect();
     45 
     46     if (newRect == oldRect)
     47         return;
     48 
     49     Widget::setFrameRect(newRect);
     50 
     51     frameRectsChanged();
     52 }
     53 
     54 void RemoteFrameView::frameRectsChanged()
     55 {
     56     // FIXME: Notify embedder via WebLocalFrameClient when that is possible.
     57 }
     58 
     59 } // namespace blink
     60