Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(323)

Side by Side Diff: content/renderer/presentation/presentation_dispatcher.cc

Issue 2552343009: [Presentation API] Adds DOMString[] constructor to PresentationRequest. (Closed)
Patch Set: resolve code review comments from Anton Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/renderer/presentation/presentation_dispatcher.h" 5 #include "content/renderer/presentation/presentation_dispatcher.h"
6 6
7 #include <utility> 7 #include <utility>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after
236 } 236 }
237 237
238 void PresentationDispatcher::terminateSession( 238 void PresentationDispatcher::terminateSession(
239 const blink::WebURL& presentationUrl, 239 const blink::WebURL& presentationUrl,
240 const blink::WebString& presentationId) { 240 const blink::WebString& presentationId) {
241 ConnectToPresentationServiceIfNeeded(); 241 ConnectToPresentationServiceIfNeeded();
242 presentation_service_->Terminate(presentationUrl, presentationId.utf8()); 242 presentation_service_->Terminate(presentationUrl, presentationId.utf8());
243 } 243 }
244 244
245 void PresentationDispatcher::getAvailability( 245 void PresentationDispatcher::getAvailability(
246 const blink::WebURL& availabilityUrl, 246 const blink::WebVector<blink::WebURL>& availabilityUrls,
247 std::unique_ptr<blink::WebPresentationAvailabilityCallbacks> callbacks) { 247 std::unique_ptr<blink::WebPresentationAvailabilityCallbacks> callbacks) {
248 // TODO((mfoltz): Pass all URLs to PresentationService. See crbug.com/627655.
mark a. foltz 2016/12/14 06:47:10 Nit: Extra (
zhaobin 2016/12/15 00:49:21 Done.
249 const blink::WebURL& availabilityUrl = availabilityUrls[0];
248 AvailabilityStatus* status = nullptr; 250 AvailabilityStatus* status = nullptr;
249 auto status_it = availability_status_.find(availabilityUrl); 251 auto status_it = availability_status_.find(availabilityUrl);
250 if (status_it == availability_status_.end()) { 252 if (status_it == availability_status_.end()) {
251 status = new AvailabilityStatus(availabilityUrl); 253 status = new AvailabilityStatus(availabilityUrl);
252 availability_status_[availabilityUrl] = base::WrapUnique(status); 254 availability_status_[availabilityUrl] = base::WrapUnique(status);
253 } else { 255 } else {
254 status = status_it->second.get(); 256 status = status_it->second.get();
255 } 257 }
256 DCHECK(status); 258 DCHECK(status);
257 259
258 if (status->listening_state == ListeningState::ACTIVE) { 260 if (status->listening_state == ListeningState::ACTIVE) {
259 base::ThreadTaskRunnerHandle::Get()->PostTask( 261 base::ThreadTaskRunnerHandle::Get()->PostTask(
260 FROM_HERE, 262 FROM_HERE,
261 base::Bind(&blink::WebPresentationAvailabilityCallbacks::onSuccess, 263 base::Bind(&blink::WebPresentationAvailabilityCallbacks::onSuccess,
262 base::Passed(&callbacks), status->last_known_availability)); 264 base::Passed(&callbacks), status->last_known_availability));
263 return; 265 return;
264 } 266 }
265 267
266 status->availability_callbacks.Add(std::move(callbacks)); 268 status->availability_callbacks.Add(std::move(callbacks));
267 UpdateListeningState(status); 269 UpdateListeningState(status);
268 } 270 }
269 271
270 void PresentationDispatcher::startListening( 272 void PresentationDispatcher::startListening(
271 blink::WebPresentationAvailabilityObserver* observer) { 273 blink::WebPresentationAvailabilityObserver* observer) {
272 auto status_it = availability_status_.find(observer->url()); 274 // TODO(mfoltz): Pass all URLs to PresentationService. See crbug.com/627655.
275 const blink::WebURL& availabilityUrl = observer->urls()[0];
276 auto status_it = availability_status_.find(availabilityUrl);
273 if (status_it == availability_status_.end()) { 277 if (status_it == availability_status_.end()) {
274 DLOG(WARNING) << "Start listening for availability for unknown URL " 278 DLOG(WARNING) << "Start listening for availability for unknown URL "
275 << GURL(observer->url()); 279 << GURL(availabilityUrl);
276 return; 280 return;
277 } 281 }
278 status_it->second->availability_observers.insert(observer); 282 status_it->second->availability_observers.insert(observer);
279 UpdateListeningState(status_it->second.get()); 283 UpdateListeningState(status_it->second.get());
280 } 284 }
281 285
282 void PresentationDispatcher::stopListening( 286 void PresentationDispatcher::stopListening(
283 blink::WebPresentationAvailabilityObserver* observer) { 287 blink::WebPresentationAvailabilityObserver* observer) {
284 auto status_it = availability_status_.find(observer->url()); 288 // TODO(mfoltz): Pass all URLs to PresentationService. See crbug.com/627655.
289 const blink::WebURL& availabilityUrl = observer->urls()[0];
290 auto status_it = availability_status_.find(availabilityUrl);
285 if (status_it == availability_status_.end()) { 291 if (status_it == availability_status_.end()) {
286 DLOG(WARNING) << "Stop listening for availability for unknown URL " 292 DLOG(WARNING) << "Stop listening for availability for unknown URL "
287 << GURL(observer->url()); 293 << GURL(availabilityUrl);
288 return; 294 return;
289 } 295 }
290 status_it->second->availability_observers.erase(observer); 296 status_it->second->availability_observers.erase(observer);
291 UpdateListeningState(status_it->second.get()); 297 UpdateListeningState(status_it->second.get());
292 } 298 }
293 299
294 void PresentationDispatcher::setDefaultPresentationUrls( 300 void PresentationDispatcher::setDefaultPresentationUrls(
295 const blink::WebVector<blink::WebURL>& presentationUrls) { 301 const blink::WebVector<blink::WebURL>& presentationUrls) {
296 ConnectToPresentationServiceIfNeeded(); 302 ConnectToPresentationServiceIfNeeded();
297 303
(...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after
546 PresentationDispatcher::AvailabilityStatus::AvailabilityStatus( 552 PresentationDispatcher::AvailabilityStatus::AvailabilityStatus(
547 const GURL& availability_url) 553 const GURL& availability_url)
548 : url(availability_url), 554 : url(availability_url),
549 last_known_availability(false), 555 last_known_availability(false),
550 listening_state(ListeningState::INACTIVE) {} 556 listening_state(ListeningState::INACTIVE) {}
551 557
552 PresentationDispatcher::AvailabilityStatus::~AvailabilityStatus() { 558 PresentationDispatcher::AvailabilityStatus::~AvailabilityStatus() {
553 } 559 }
554 560
555 } // namespace content 561 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698