OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "chrome/browser/extensions/api/tab_capture/tab_capture_registry.h" | 5 #include "chrome/browser/extensions/api/tab_capture/tab_capture_registry.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "content/public/browser/browser_thread.h" | 9 #include "content/public/browser/browser_thread.h" |
10 #include "chrome/browser/extensions/event_names.h" | 10 #include "chrome/browser/extensions/event_names.h" |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
53 return; | 53 return; |
54 | 54 |
55 std::pair<int, int> key = std::make_pair(render_process_id, render_view_id); | 55 std::pair<int, int> key = std::make_pair(render_process_id, render_view_id); |
56 | 56 |
57 DeviceCaptureRequestMap::iterator request_it = requests_.find(key); | 57 DeviceCaptureRequestMap::iterator request_it = requests_.find(key); |
58 if (request_it == requests_.end()) { | 58 if (request_it == requests_.end()) { |
59 LOG(ERROR) << "Receiving updates for invalid tab capture request."; | 59 LOG(ERROR) << "Receiving updates for invalid tab capture request."; |
60 return; | 60 return; |
61 } | 61 } |
62 | 62 |
63 tab_capture::TabCaptureState state = | 63 tab_capture::TabCaptureState state = tab_capture::TAB_CAPTURE_STATE_NONE; |
64 tab_capture::TAB_CAPTURE_TAB_CAPTURE_STATE_NONE; | |
65 switch (new_state) { | 64 switch (new_state) { |
66 case content::MEDIA_REQUEST_STATE_REQUESTED: | 65 case content::MEDIA_REQUEST_STATE_REQUESTED: |
67 state = tab_capture::TAB_CAPTURE_TAB_CAPTURE_STATE_REQUESTED; | 66 state = tab_capture::TAB_CAPTURE_STATE_REQUESTED; |
68 break; | 67 break; |
69 case content::MEDIA_REQUEST_STATE_PENDING_APPROVAL: | 68 case content::MEDIA_REQUEST_STATE_PENDING_APPROVAL: |
70 state = tab_capture::TAB_CAPTURE_TAB_CAPTURE_STATE_PENDING; | 69 state = tab_capture::TAB_CAPTURE_STATE_PENDING; |
71 break; | 70 break; |
72 case content::MEDIA_REQUEST_STATE_DONE: | 71 case content::MEDIA_REQUEST_STATE_DONE: |
73 state = tab_capture::TAB_CAPTURE_TAB_CAPTURE_STATE_ACTIVE; | 72 state = tab_capture::TAB_CAPTURE_STATE_ACTIVE; |
74 break; | 73 break; |
75 case content::MEDIA_REQUEST_STATE_CLOSING: | 74 case content::MEDIA_REQUEST_STATE_CLOSING: |
76 state = tab_capture::TAB_CAPTURE_TAB_CAPTURE_STATE_STOPPED; | 75 state = tab_capture::TAB_CAPTURE_STATE_STOPPED; |
77 break; | 76 break; |
78 case content::MEDIA_REQUEST_STATE_ERROR: | 77 case content::MEDIA_REQUEST_STATE_ERROR: |
79 state = tab_capture::TAB_CAPTURE_TAB_CAPTURE_STATE_ERROR; | 78 state = tab_capture::TAB_CAPTURE_STATE_ERROR; |
80 break; | 79 break; |
81 default: | 80 default: |
82 // TODO(justinlin): Implement muted state notification. | 81 // TODO(justinlin): Implement muted state notification. |
83 break; | 82 break; |
84 } | 83 } |
85 | 84 |
86 if (state == tab_capture::TAB_CAPTURE_TAB_CAPTURE_STATE_NONE) { | 85 if (state == tab_capture::TAB_CAPTURE_STATE_NONE) { |
87 // This is a state we don't handle. | 86 // This is a state we don't handle. |
88 return; | 87 return; |
89 } | 88 } |
90 | 89 |
91 TabCaptureRegistry::TabCaptureRequest* request_info = &request_it->second; | 90 TabCaptureRegistry::TabCaptureRequest* request_info = &request_it->second; |
92 request_info->status = state; | 91 request_info->status = state; |
93 | 92 |
94 scoped_ptr<tab_capture::CaptureInfo> info(new tab_capture::CaptureInfo()); | 93 scoped_ptr<tab_capture::CaptureInfo> info(new tab_capture::CaptureInfo()); |
95 info->tab_id = request_info->tab_id; | 94 info->tab_id = request_info->tab_id; |
96 info->status = request_info->status; | 95 info->status = request_info->status; |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
137 } | 136 } |
138 } | 137 } |
139 } | 138 } |
140 | 139 |
141 bool TabCaptureRegistry::AddRequest(const std::pair<int, int> key, | 140 bool TabCaptureRegistry::AddRequest(const std::pair<int, int> key, |
142 const TabCaptureRequest& request) { | 141 const TabCaptureRequest& request) { |
143 // Currently, we do not allow multiple active captures for same tab. | 142 // Currently, we do not allow multiple active captures for same tab. |
144 DeviceCaptureRequestMap::iterator it = requests_.find(key); | 143 DeviceCaptureRequestMap::iterator it = requests_.find(key); |
145 if (it != requests_.end()) { | 144 if (it != requests_.end()) { |
146 const tab_capture::TabCaptureState state = it->second.status; | 145 const tab_capture::TabCaptureState state = it->second.status; |
147 if (state != tab_capture::TAB_CAPTURE_TAB_CAPTURE_STATE_STOPPED && | 146 if (state != tab_capture::TAB_CAPTURE_STATE_STOPPED && |
148 state != tab_capture::TAB_CAPTURE_TAB_CAPTURE_STATE_ERROR) | 147 state != tab_capture::TAB_CAPTURE_STATE_ERROR) |
149 return false; | 148 return false; |
150 } | 149 } |
151 requests_.insert(std::make_pair(key, request)); | 150 requests_.insert(std::make_pair(key, request)); |
152 return true; | 151 return true; |
153 } | 152 } |
154 | 153 |
155 bool TabCaptureRegistry::VerifyRequest(int render_process_id, | 154 bool TabCaptureRegistry::VerifyRequest(int render_process_id, |
156 int render_view_id) { | 155 int render_view_id) { |
157 return requests_.find(std::make_pair( | 156 return requests_.find(std::make_pair( |
158 render_process_id, render_view_id)) != requests_.end(); | 157 render_process_id, render_view_id)) != requests_.end(); |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
209 const content::MediaStreamDevice& device, | 208 const content::MediaStreamDevice& device, |
210 const content::MediaRequestState new_state) { | 209 const content::MediaRequestState new_state) { |
211 if (handler_) | 210 if (handler_) |
212 handler_->HandleRequestUpdateOnUIThread(render_process_id, | 211 handler_->HandleRequestUpdateOnUIThread(render_process_id, |
213 render_view_id, | 212 render_view_id, |
214 device, | 213 device, |
215 new_state); | 214 new_state); |
216 } | 215 } |
217 | 216 |
218 } // namespace extensions | 217 } // namespace extensions |
OLD | NEW |