| OLD | NEW |
| 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 237 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 248 auto status_it = availability_status_.find(availabilityUrl); | 248 auto status_it = availability_status_.find(availabilityUrl); |
| 249 if (status_it == availability_status_.end()) { | 249 if (status_it == availability_status_.end()) { |
| 250 status = new AvailabilityStatus(availabilityUrl); | 250 status = new AvailabilityStatus(availabilityUrl); |
| 251 availability_status_[availabilityUrl] = base::WrapUnique(status); | 251 availability_status_[availabilityUrl] = base::WrapUnique(status); |
| 252 } else { | 252 } else { |
| 253 status = status_it->second.get(); | 253 status = status_it->second.get(); |
| 254 } | 254 } |
| 255 DCHECK(status); | 255 DCHECK(status); |
| 256 | 256 |
| 257 if (status->listening_state == ListeningState::ACTIVE) { | 257 if (status->listening_state == ListeningState::ACTIVE) { |
| 258 callbacks->onSuccess(status->last_known_availability); | 258 base::ThreadTaskRunnerHandle::Get()->PostTask( |
| 259 delete callbacks; | 259 FROM_HERE, |
| 260 base::Bind(&blink::WebPresentationAvailabilityCallbacks::onSuccess, |
| 261 base::Owned(callbacks), |
| 262 status->last_known_availability)); |
| 260 return; | 263 return; |
| 261 } | 264 } |
| 262 | 265 |
| 263 status->availability_callbacks.Add(callbacks); | 266 status->availability_callbacks.Add(callbacks); |
| 264 UpdateListeningState(status); | 267 UpdateListeningState(status); |
| 265 } | 268 } |
| 266 | 269 |
| 267 void PresentationDispatcher::startListening( | 270 void PresentationDispatcher::startListening( |
| 268 blink::WebPresentationAvailabilityObserver* observer) { | 271 blink::WebPresentationAvailabilityObserver* observer) { |
| 269 auto status_it = availability_status_.find(observer->url()); | 272 auto status_it = availability_status_.find(observer->url()); |
| (...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 543 PresentationDispatcher::AvailabilityStatus::AvailabilityStatus( | 546 PresentationDispatcher::AvailabilityStatus::AvailabilityStatus( |
| 544 const GURL& availability_url) | 547 const GURL& availability_url) |
| 545 : url(availability_url), | 548 : url(availability_url), |
| 546 last_known_availability(false), | 549 last_known_availability(false), |
| 547 listening_state(ListeningState::INACTIVE) {} | 550 listening_state(ListeningState::INACTIVE) {} |
| 548 | 551 |
| 549 PresentationDispatcher::AvailabilityStatus::~AvailabilityStatus() { | 552 PresentationDispatcher::AvailabilityStatus::~AvailabilityStatus() { |
| 550 } | 553 } |
| 551 | 554 |
| 552 } // namespace content | 555 } // namespace content |
| OLD | NEW |