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

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 foolip Created 3 years, 11 months 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 <string> 7 #include <string>
8 #include <utility> 8 #include <utility>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after
254 } 254 }
255 255
256 void PresentationDispatcher::terminateSession( 256 void PresentationDispatcher::terminateSession(
257 const blink::WebURL& presentationUrl, 257 const blink::WebURL& presentationUrl,
258 const blink::WebString& presentationId) { 258 const blink::WebString& presentationId) {
259 ConnectToPresentationServiceIfNeeded(); 259 ConnectToPresentationServiceIfNeeded();
260 presentation_service_->Terminate(presentationUrl, presentationId.utf8()); 260 presentation_service_->Terminate(presentationUrl, presentationId.utf8());
261 } 261 }
262 262
263 void PresentationDispatcher::getAvailability( 263 void PresentationDispatcher::getAvailability(
264 const blink::WebURL& availabilityUrl, 264 const blink::WebVector<blink::WebURL>& availabilityUrls,
265 std::unique_ptr<blink::WebPresentationAvailabilityCallbacks> callbacks) { 265 std::unique_ptr<blink::WebPresentationAvailabilityCallbacks> callbacks) {
266 // TODO(mfoltz): Pass all URLs to PresentationService. See crbug.com/627655.
267 const blink::WebURL& availabilityUrl = availabilityUrls[0];
266 AvailabilityStatus* status = nullptr; 268 AvailabilityStatus* status = nullptr;
267 auto status_it = availability_status_.find(availabilityUrl); 269 auto status_it = availability_status_.find(availabilityUrl);
268 if (status_it == availability_status_.end()) { 270 if (status_it == availability_status_.end()) {
269 status = new AvailabilityStatus(availabilityUrl); 271 status = new AvailabilityStatus(availabilityUrl);
270 availability_status_[availabilityUrl] = base::WrapUnique(status); 272 availability_status_[availabilityUrl] = base::WrapUnique(status);
271 } else { 273 } else {
272 status = status_it->second.get(); 274 status = status_it->second.get();
273 } 275 }
274 DCHECK(status); 276 DCHECK(status);
275 277
276 if (status->listening_state == ListeningState::ACTIVE) { 278 if (status->listening_state == ListeningState::ACTIVE) {
277 base::ThreadTaskRunnerHandle::Get()->PostTask( 279 base::ThreadTaskRunnerHandle::Get()->PostTask(
278 FROM_HERE, 280 FROM_HERE,
279 base::Bind(&blink::WebPresentationAvailabilityCallbacks::onSuccess, 281 base::Bind(&blink::WebPresentationAvailabilityCallbacks::onSuccess,
280 base::Passed(&callbacks), status->last_known_availability)); 282 base::Passed(&callbacks), status->last_known_availability));
281 return; 283 return;
282 } 284 }
283 285
284 status->availability_callbacks.Add(std::move(callbacks)); 286 status->availability_callbacks.Add(std::move(callbacks));
285 UpdateListeningState(status); 287 UpdateListeningState(status);
286 } 288 }
287 289
288 void PresentationDispatcher::startListening( 290 void PresentationDispatcher::startListening(
289 blink::WebPresentationAvailabilityObserver* observer) { 291 blink::WebPresentationAvailabilityObserver* observer) {
290 auto status_it = availability_status_.find(observer->url()); 292 // TODO(mfoltz): Pass all URLs to PresentationService. See crbug.com/627655.
293 const blink::WebURL& availabilityUrl = observer->urls()[0];
294 auto status_it = availability_status_.find(availabilityUrl);
291 if (status_it == availability_status_.end()) { 295 if (status_it == availability_status_.end()) {
292 DLOG(WARNING) << "Start listening for availability for unknown URL " 296 DLOG(WARNING) << "Start listening for availability for unknown URL "
293 << GURL(observer->url()); 297 << GURL(availabilityUrl);
294 return; 298 return;
295 } 299 }
296 status_it->second->availability_observers.insert(observer); 300 status_it->second->availability_observers.insert(observer);
297 UpdateListeningState(status_it->second.get()); 301 UpdateListeningState(status_it->second.get());
298 } 302 }
299 303
300 void PresentationDispatcher::stopListening( 304 void PresentationDispatcher::stopListening(
301 blink::WebPresentationAvailabilityObserver* observer) { 305 blink::WebPresentationAvailabilityObserver* observer) {
302 auto status_it = availability_status_.find(observer->url()); 306 // TODO(mfoltz): Pass all URLs to PresentationService. See crbug.com/627655.
307 const blink::WebURL& availabilityUrl = observer->urls()[0];
308 auto status_it = availability_status_.find(availabilityUrl);
303 if (status_it == availability_status_.end()) { 309 if (status_it == availability_status_.end()) {
304 DLOG(WARNING) << "Stop listening for availability for unknown URL " 310 DLOG(WARNING) << "Stop listening for availability for unknown URL "
305 << GURL(observer->url()); 311 << GURL(availabilityUrl);
306 return; 312 return;
307 } 313 }
308 status_it->second->availability_observers.erase(observer); 314 status_it->second->availability_observers.erase(observer);
309 UpdateListeningState(status_it->second.get()); 315 UpdateListeningState(status_it->second.get());
310 } 316 }
311 317
312 void PresentationDispatcher::setDefaultPresentationUrls( 318 void PresentationDispatcher::setDefaultPresentationUrls(
313 const blink::WebVector<blink::WebURL>& presentationUrls) { 319 const blink::WebVector<blink::WebURL>& presentationUrls) {
314 ConnectToPresentationServiceIfNeeded(); 320 ConnectToPresentationServiceIfNeeded();
315 321
(...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after
561 PresentationDispatcher::AvailabilityStatus::AvailabilityStatus( 567 PresentationDispatcher::AvailabilityStatus::AvailabilityStatus(
562 const GURL& availability_url) 568 const GURL& availability_url)
563 : url(availability_url), 569 : url(availability_url),
564 last_known_availability(false), 570 last_known_availability(false),
565 listening_state(ListeningState::INACTIVE) {} 571 listening_state(ListeningState::INACTIVE) {}
566 572
567 PresentationDispatcher::AvailabilityStatus::~AvailabilityStatus() { 573 PresentationDispatcher::AvailabilityStatus::~AvailabilityStatus() {
568 } 574 }
569 575
570 } // namespace content 576 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698