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 11namespace blink { 12 13RemoteFrameView::RemoteFrameView(RemoteFrame* remoteFrame) 14 : m_remoteFrame(remoteFrame) 15{ 16 ASSERT(remoteFrame); 17} 18 19RemoteFrameView::~RemoteFrameView() 20{ 21} 22 23PassRefPtr<RemoteFrameView> RemoteFrameView::create(RemoteFrame* remoteFrame) 24{ 25 RefPtr<RemoteFrameView> view = adoptRef(new RemoteFrameView(remoteFrame)); 26 view->show(); 27 return view.release(); 28} 29 30void 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 42void 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 54void RemoteFrameView::frameRectsChanged() 55{ 56 // FIXME: Notify embedder via WebLocalFrameClient when that is possible. 57} 58 59} // namespace blink 60