Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / core / frame / RemoteFrameView.cpp
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