OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 // Given a starting render_process_id and main_render_frame_id, the | 5 // Given a starting render_process_id and main_render_frame_id, the |
6 // WebContentsTracker tracks changes to the active RenderFrameHost tree during | 6 // WebContentsTracker tracks changes to the active RenderFrameHost tree during |
7 // the lifetime of a WebContents instance. This is used when mirroring tab | 7 // the lifetime of a WebContents instance. This is used when mirroring tab |
8 // video and audio so that user navigations, crashes, iframes, etc., during a | 8 // video and audio so that user navigations, crashes, iframes, etc., during a |
9 // tab's lifetime allow the capturing code to remain active on the | 9 // tab's lifetime allow the capturing code to remain active on the |
10 // current/latest render frame tree. | 10 // current/latest render frame tree. |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
75 void MaybeDoCallback(RenderWidgetHost* rwh); | 75 void MaybeDoCallback(RenderWidgetHost* rwh); |
76 | 76 |
77 // Look-up the current WebContents instance associated with the given | 77 // Look-up the current WebContents instance associated with the given |
78 // |render_process_id| and |main_render_frame_id| and begin observing it. | 78 // |render_process_id| and |main_render_frame_id| and begin observing it. |
79 void StartObservingWebContents(int render_process_id, | 79 void StartObservingWebContents(int render_process_id, |
80 int main_render_frame_id); | 80 int main_render_frame_id); |
81 | 81 |
82 // WebContentsObserver overrides: According to web_contents_observer.h, these | 82 // WebContentsObserver overrides: According to web_contents_observer.h, these |
83 // two method overrides are all that is necessary to track the set of active | 83 // two method overrides are all that is necessary to track the set of active |
84 // RenderFrameHosts. | 84 // RenderFrameHosts. |
85 virtual void RenderFrameDeleted(RenderFrameHost* render_frame_host) OVERRIDE; | 85 virtual void RenderFrameDeleted(RenderFrameHost* render_frame_host) override; |
86 virtual void RenderFrameHostChanged(RenderFrameHost* old_host, | 86 virtual void RenderFrameHostChanged(RenderFrameHost* old_host, |
87 RenderFrameHost* new_host) OVERRIDE; | 87 RenderFrameHost* new_host) override; |
88 | 88 |
89 // WebContentsObserver override to notify the client that the capture target | 89 // WebContentsObserver override to notify the client that the capture target |
90 // has been permanently lost. | 90 // has been permanently lost. |
91 virtual void WebContentsDestroyed() OVERRIDE; | 91 virtual void WebContentsDestroyed() override; |
92 | 92 |
93 // WebContentsObserver overrides to notify the client that the capture target | 93 // WebContentsObserver overrides to notify the client that the capture target |
94 // may have changed due to a separate fullscreen widget shown/destroyed. | 94 // may have changed due to a separate fullscreen widget shown/destroyed. |
95 virtual void DidShowFullscreenWidget(int routing_id) OVERRIDE; | 95 virtual void DidShowFullscreenWidget(int routing_id) override; |
96 virtual void DidDestroyFullscreenWidget(int routing_id) OVERRIDE; | 96 virtual void DidDestroyFullscreenWidget(int routing_id) override; |
97 | 97 |
98 // If true, the client is interested in the showing/destruction of fullscreen | 98 // If true, the client is interested in the showing/destruction of fullscreen |
99 // RenderWidgetHosts. | 99 // RenderWidgetHosts. |
100 const bool track_fullscreen_rwh_; | 100 const bool track_fullscreen_rwh_; |
101 | 101 |
102 // MessageLoop corresponding to the thread that called Start(). | 102 // MessageLoop corresponding to the thread that called Start(). |
103 scoped_refptr<base::MessageLoopProxy> message_loop_; | 103 scoped_refptr<base::MessageLoopProxy> message_loop_; |
104 | 104 |
105 // Callback to run when the target RenderWidgetHost has changed. | 105 // Callback to run when the target RenderWidgetHost has changed. |
106 ChangeCallback callback_; | 106 ChangeCallback callback_; |
107 | 107 |
108 // Pointer to the RenderWidgetHost provided in the last run of |callback_|. | 108 // Pointer to the RenderWidgetHost provided in the last run of |callback_|. |
109 // This is used to eliminate duplicate callback runs. | 109 // This is used to eliminate duplicate callback runs. |
110 RenderWidgetHost* last_target_; | 110 RenderWidgetHost* last_target_; |
111 | 111 |
112 DISALLOW_COPY_AND_ASSIGN(WebContentsTracker); | 112 DISALLOW_COPY_AND_ASSIGN(WebContentsTracker); |
113 }; | 113 }; |
114 | 114 |
115 } // namespace content | 115 } // namespace content |
116 | 116 |
117 #endif // CONTENT_BROWSER_MEDIA_CAPTURE_WEB_CONTENTS_TRACKER_H_ | 117 #endif // CONTENT_BROWSER_MEDIA_CAPTURE_WEB_CONTENTS_TRACKER_H_ |
OLD | NEW |