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