OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/public/renderer/render_view_observer.h" | 5 #include "content/public/renderer/render_view_observer.h" |
6 | 6 |
7 #include "content/renderer/render_view_impl.h" | 7 #include "content/renderer/render_view_impl.h" |
8 | 8 |
9 namespace content { | 9 namespace content { |
10 | 10 |
11 RenderViewObserver::RenderViewObserver(RenderView* render_view) | 11 RenderViewObserver::RenderViewObserver(RenderView* render_view) |
12 : render_view_(static_cast<RenderViewImpl*>(render_view)), | 12 : render_view_(static_cast<RenderViewImpl*>(render_view)) { |
13 routing_id_(MSG_ROUTING_NONE) { | |
14 // |render_view_| can be null on unit testing or if Observe() is used. | 13 // |render_view_| can be null on unit testing or if Observe() is used. |
15 if (render_view_) { | 14 if (render_view_) { |
16 routing_id_ = render_view_->GetRoutingID(); | |
17 // TODO(jam): bring this back DCHECK_NE(routing_id_, MSG_ROUTING_NONE); | |
18 render_view_->AddObserver(this); | 15 render_view_->AddObserver(this); |
19 } | 16 } |
20 } | 17 } |
21 | 18 |
22 RenderViewObserver::~RenderViewObserver() { | 19 RenderViewObserver::~RenderViewObserver() { |
23 if (render_view_) | 20 if (render_view_) |
24 render_view_->RemoveObserver(this); | 21 render_view_->RemoveObserver(this); |
25 } | 22 } |
26 | 23 |
27 void RenderViewObserver::OnDestruct() { | 24 void RenderViewObserver::OnDestruct() { |
28 delete this; | 25 delete this; |
29 } | 26 } |
30 | 27 |
31 bool RenderViewObserver::OnMessageReceived(const IPC::Message& message) { | 28 bool RenderViewObserver::OnMessageReceived(const IPC::Message& message) { |
32 return false; | 29 return false; |
33 } | 30 } |
34 | 31 |
35 bool RenderViewObserver::Send(IPC::Message* message) { | 32 bool RenderViewObserver::Send(IPC::Message* message) { |
36 if (render_view_) | 33 if (render_view_) |
37 return render_view_->Send(message); | 34 return render_view_->Send(message); |
38 | 35 |
39 delete message; | 36 delete message; |
40 return false; | 37 return false; |
41 } | 38 } |
42 | 39 |
43 RenderView* RenderViewObserver::render_view() const { | 40 RenderView* RenderViewObserver::render_view() const { |
44 return render_view_; | 41 return render_view_; |
45 } | 42 } |
46 | 43 |
| 44 int RenderViewObserver::routing_id() const { |
| 45 return render_view_ ? render_view_->routing_id() : MSG_ROUTING_NONE; |
| 46 } |
| 47 |
47 void RenderViewObserver::RenderViewGone() { | 48 void RenderViewObserver::RenderViewGone() { |
48 render_view_ = nullptr; | 49 render_view_ = nullptr; |
49 } | 50 } |
50 | 51 |
51 void RenderViewObserver::Observe(RenderView* render_view) { | 52 void RenderViewObserver::Observe(RenderView* render_view) { |
52 if (render_view_) { | 53 if (render_view_) { |
53 render_view_->RemoveObserver(this); | 54 render_view_->RemoveObserver(this); |
54 routing_id_ = 0; | |
55 } | 55 } |
56 | 56 |
57 render_view_ = static_cast<RenderViewImpl*>(render_view); | 57 render_view_ = static_cast<RenderViewImpl*>(render_view); |
58 if (render_view_) { | 58 if (render_view_) { |
59 routing_id_ = render_view_->GetRoutingID(); | |
60 render_view_->AddObserver(this); | 59 render_view_->AddObserver(this); |
61 } | 60 } |
62 } | 61 } |
63 | 62 |
64 } // namespace content | 63 } // namespace content |
OLD | NEW |