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

Unified Diff: content/renderer/media/user_media_client_impl.cc

Issue 524363003: Changed name of MediaStreamImpl to UserMediaClientImpl. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: content/renderer/media/user_media_client_impl.cc
diff --git a/content/renderer/media/media_stream_impl.cc b/content/renderer/media/user_media_client_impl.cc
similarity index 88%
rename from content/renderer/media/media_stream_impl.cc
rename to content/renderer/media/user_media_client_impl.cc
index 820f16e00e7ae0d92a4abbf074760c8a5d012306..4ed7bd6340178b5f1143f8248c539f591124854c 100644
--- a/content/renderer/media/media_stream_impl.cc
+++ b/content/renderer/media/user_media_client_impl.cc
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "content/renderer/media/media_stream_impl.h"
+#include "content/renderer/media/user_media_client_impl.h"
#include <utility>
@@ -57,7 +57,7 @@ static int g_next_request_id = 0;
} // namespace
-struct MediaStreamImpl::MediaDevicesRequestInfo {
+struct UserMediaClientImpl::MediaDevicesRequestInfo {
MediaDevicesRequestInfo(const blink::WebMediaDevicesRequest& request,
int audio_input_request_id,
int video_input_request_id,
@@ -82,7 +82,7 @@ struct MediaStreamImpl::MediaDevicesRequestInfo {
StreamDeviceInfoArray audio_output_devices;
};
-MediaStreamImpl::MediaStreamImpl(
+UserMediaClientImpl::UserMediaClientImpl(
RenderFrame* render_frame,
PeerConnectionDependencyFactory* dependency_factory,
scoped_ptr<MediaStreamDispatcher> media_stream_dispatcher)
@@ -94,14 +94,14 @@ MediaStreamImpl::MediaStreamImpl(
DCHECK(media_stream_dispatcher_.get());
}
-MediaStreamImpl::~MediaStreamImpl() {
+UserMediaClientImpl::~UserMediaClientImpl() {
// Force-close all outstanding user media requests and local sources here,
// before the outstanding WeakPtrs are invalidated, to ensure a clean
// shutdown.
FrameWillClose();
}
-void MediaStreamImpl::requestUserMedia(
+void UserMediaClientImpl::requestUserMedia(
const blink::WebUserMediaRequest& user_media_request) {
// Save histogram data so we can see how much GetUserMedia is used.
// The histogram counts the number of calls to the JS API
@@ -154,7 +154,7 @@ void MediaStreamImpl::requestUserMedia(
user_media_request.ownerDocument().frame()));
}
- DVLOG(1) << "MediaStreamImpl::requestUserMedia(" << request_id << ", [ "
+ DVLOG(1) << "UserMediaClientImpl::requestUserMedia(" << request_id << ", [ "
<< "audio=" << (options.audio_requested)
<< " select associated sink: "
<< enable_automatic_output_device_selection
@@ -191,7 +191,7 @@ void MediaStreamImpl::requestUserMedia(
security_origin);
}
-void MediaStreamImpl::cancelUserMediaRequest(
+void UserMediaClientImpl::cancelUserMediaRequest(
const blink::WebUserMediaRequest& user_media_request) {
DCHECK(CalledOnValidThread());
UserMediaRequestInfo* request = FindUserMediaRequestInfo(user_media_request);
@@ -204,7 +204,7 @@ void MediaStreamImpl::cancelUserMediaRequest(
}
}
-void MediaStreamImpl::requestMediaDevices(
+void UserMediaClientImpl::requestMediaDevices(
const blink::WebMediaDevicesRequest& media_devices_request) {
UpdateWebRTCMethodCount(WEBKIT_GET_MEDIA_DEVICES);
DCHECK(CalledOnValidThread());
@@ -220,7 +220,8 @@ void MediaStreamImpl::requestMediaDevices(
if (!media_devices_request.isNull())
security_origin = GURL(media_devices_request.securityOrigin().toString());
- DVLOG(1) << "MediaStreamImpl::requestMediaDevices(" << audio_input_request_id
+ DVLOG(1) << "UserMediaClientImpl::requestMediaDevices("
+ << audio_input_request_id
<< ", " << video_input_request_id << ", " << audio_output_request_id
<< ", " << security_origin.spec() << ")";
@@ -249,7 +250,7 @@ void MediaStreamImpl::requestMediaDevices(
security_origin);
}
-void MediaStreamImpl::cancelMediaDevicesRequest(
+void UserMediaClientImpl::cancelMediaDevicesRequest(
const blink::WebMediaDevicesRequest& media_devices_request) {
DCHECK(CalledOnValidThread());
MediaDevicesRequestInfo* request =
@@ -261,13 +262,13 @@ void MediaStreamImpl::cancelMediaDevicesRequest(
// Callback from MediaStreamDispatcher.
// The requested stream have been generated by the MediaStreamDispatcher.
-void MediaStreamImpl::OnStreamGenerated(
+void UserMediaClientImpl::OnStreamGenerated(
int request_id,
const std::string& label,
const StreamDeviceInfoArray& audio_array,
const StreamDeviceInfoArray& video_array) {
DCHECK(CalledOnValidThread());
- DVLOG(1) << "MediaStreamImpl::OnStreamGenerated stream:" << label;
+ DVLOG(1) << "UserMediaClientImpl::OnStreamGenerated stream:" << label;
UserMediaRequestInfo* request_info = FindUserMediaRequestInfo(request_id);
if (!request_info) {
@@ -314,11 +315,11 @@ void MediaStreamImpl::OnStreamGenerated(
// Wait for the tracks to be started successfully or to fail.
request_info->CallbackOnTracksStarted(
- base::Bind(&MediaStreamImpl::OnCreateNativeTracksCompleted,
+ base::Bind(&UserMediaClientImpl::OnCreateNativeTracksCompleted,
weak_factory_.GetWeakPtr()));
}
-void MediaStreamImpl::OnStreamGeneratedForCancelledRequest(
+void UserMediaClientImpl::OnStreamGeneratedForCancelledRequest(
const StreamDeviceInfoArray& audio_array,
const StreamDeviceInfoArray& video_array) {
// Only stop the device if the device is not used in another MediaStream.
@@ -337,11 +338,11 @@ void MediaStreamImpl::OnStreamGeneratedForCancelledRequest(
// Callback from MediaStreamDispatcher.
// The requested stream failed to be generated.
-void MediaStreamImpl::OnStreamGenerationFailed(
+void UserMediaClientImpl::OnStreamGenerationFailed(
int request_id,
MediaStreamRequestResult result) {
DCHECK(CalledOnValidThread());
- DVLOG(1) << "MediaStreamImpl::OnStreamGenerationFailed("
+ DVLOG(1) << "UserMediaClientImpl::OnStreamGenerationFailed("
<< request_id << ")";
UserMediaRequestInfo* request_info = FindUserMediaRequestInfo(request_id);
if (!request_info) {
@@ -357,11 +358,11 @@ void MediaStreamImpl::OnStreamGenerationFailed(
// Callback from MediaStreamDispatcher.
// The browser process has stopped a device used by a MediaStream.
-void MediaStreamImpl::OnDeviceStopped(
+void UserMediaClientImpl::OnDeviceStopped(
const std::string& label,
const StreamDeviceInfo& device_info) {
DCHECK(CalledOnValidThread());
- DVLOG(1) << "MediaStreamImpl::OnDeviceStopped("
+ DVLOG(1) << "UserMediaClientImpl::OnDeviceStopped("
<< "{device_id = " << device_info.device.id << "})";
const blink::WebMediaStreamSource* source_ptr = FindLocalSource(device_info);
@@ -385,7 +386,7 @@ void MediaStreamImpl::OnDeviceStopped(
}
}
-void MediaStreamImpl::InitializeSourceObject(
+void UserMediaClientImpl::InitializeSourceObject(
const StreamDeviceInfo& device,
blink::WebMediaStreamSource::Type type,
const blink::WebMediaConstraints& constraints,
@@ -412,7 +413,7 @@ void MediaStreamImpl::InitializeSourceObject(
webkit_source->setExtraData(
CreateVideoSource(
device,
- base::Bind(&MediaStreamImpl::OnLocalSourceStopped,
+ base::Bind(&UserMediaClientImpl::OnLocalSourceStopped,
weak_factory_.GetWeakPtr())));
} else {
DCHECK_EQ(blink::WebMediaStreamSource::TypeAudio, type);
@@ -420,7 +421,7 @@ void MediaStreamImpl::InitializeSourceObject(
new MediaStreamAudioSource(
RenderFrameObserver::routing_id(),
device,
- base::Bind(&MediaStreamImpl::OnLocalSourceStopped,
+ base::Bind(&UserMediaClientImpl::OnLocalSourceStopped,
weak_factory_.GetWeakPtr()),
dependency_factory_));
webkit_source->setExtraData(audio_source);
@@ -428,7 +429,7 @@ void MediaStreamImpl::InitializeSourceObject(
local_sources_.push_back(*webkit_source);
}
-MediaStreamVideoSource* MediaStreamImpl::CreateVideoSource(
+MediaStreamVideoSource* UserMediaClientImpl::CreateVideoSource(
const StreamDeviceInfo& device,
const MediaStreamSource::SourceStoppedCallback& stop_callback) {
return new content::MediaStreamVideoCapturerSource(
@@ -437,7 +438,7 @@ MediaStreamVideoSource* MediaStreamImpl::CreateVideoSource(
new VideoCapturerDelegate(device));
}
-void MediaStreamImpl::CreateVideoTracks(
+void UserMediaClientImpl::CreateVideoTracks(
const StreamDeviceInfoArray& devices,
const blink::WebMediaConstraints& constraints,
blink::WebVector<blink::WebMediaStreamTrack>* webkit_tracks,
@@ -455,7 +456,7 @@ void MediaStreamImpl::CreateVideoTracks(
}
}
-void MediaStreamImpl::CreateAudioTracks(
+void UserMediaClientImpl::CreateAudioTracks(
const StreamDeviceInfoArray& devices,
const blink::WebMediaConstraints& constraints,
blink::WebVector<blink::WebMediaStreamTrack>* webkit_tracks,
@@ -495,11 +496,11 @@ void MediaStreamImpl::CreateAudioTracks(
}
}
-void MediaStreamImpl::OnCreateNativeTracksCompleted(
+void UserMediaClientImpl::OnCreateNativeTracksCompleted(
UserMediaRequestInfo* request,
MediaStreamRequestResult result,
const blink::WebString& result_name) {
- DVLOG(1) << "MediaStreamImpl::OnCreateNativeTracksComplete("
+ DVLOG(1) << "UserMediaClientImpl::OnCreateNativeTracksComplete("
<< "{request_id = " << request->request_id << "} "
<< "{result = " << result << "})";
if (result == content::MEDIA_DEVICE_OK)
@@ -512,10 +513,10 @@ void MediaStreamImpl::OnCreateNativeTracksCompleted(
DeleteUserMediaRequestInfo(request);
}
-void MediaStreamImpl::OnDevicesEnumerated(
+void UserMediaClientImpl::OnDevicesEnumerated(
int request_id,
const StreamDeviceInfoArray& device_array) {
- DVLOG(1) << "MediaStreamImpl::OnDevicesEnumerated(" << request_id << ")";
+ DVLOG(1) << "UserMediaClientImpl::OnDevicesEnumerated(" << request_id << ")";
MediaDevicesRequestInfo* request = FindMediaDevicesRequestInfo(request_id);
DCHECK(request);
@@ -588,30 +589,30 @@ void MediaStreamImpl::OnDevicesEnumerated(
CancelAndDeleteMediaDevicesRequest(request);
}
-void MediaStreamImpl::OnDeviceOpened(
+void UserMediaClientImpl::OnDeviceOpened(
int request_id,
const std::string& label,
const StreamDeviceInfo& video_device) {
- DVLOG(1) << "MediaStreamImpl::OnDeviceOpened("
+ DVLOG(1) << "UserMediaClientImpl::OnDeviceOpened("
<< request_id << ", " << label << ")";
NOTIMPLEMENTED();
}
-void MediaStreamImpl::OnDeviceOpenFailed(int request_id) {
- DVLOG(1) << "MediaStreamImpl::VideoDeviceOpenFailed("
+void UserMediaClientImpl::OnDeviceOpenFailed(int request_id) {
+ DVLOG(1) << "UserMediaClientImpl::VideoDeviceOpenFailed("
<< request_id << ")";
NOTIMPLEMENTED();
}
-void MediaStreamImpl::GetUserMediaRequestSucceeded(
+void UserMediaClientImpl::GetUserMediaRequestSucceeded(
const blink::WebMediaStream& stream,
blink::WebUserMediaRequest* request_info) {
- DVLOG(1) << "MediaStreamImpl::GetUserMediaRequestSucceeded";
+ DVLOG(1) << "UserMediaClientImpl::GetUserMediaRequestSucceeded";
LogUserMediaRequestResult(MEDIA_DEVICE_OK);
request_info->requestSucceeded(stream);
}
-void MediaStreamImpl::GetUserMediaRequestFailed(
+void UserMediaClientImpl::GetUserMediaRequestFailed(
blink::WebUserMediaRequest* request_info,
MediaStreamRequestResult result) {
LogUserMediaRequestResult(result);
@@ -650,7 +651,7 @@ void MediaStreamImpl::GetUserMediaRequestFailed(
}
}
-void MediaStreamImpl::GetUserMediaRequestTrackStartedFailed(
+void UserMediaClientImpl::GetUserMediaRequestTrackStartedFailed(
blink::WebUserMediaRequest* request_info,
MediaStreamRequestResult result,
const blink::WebString& result_name) {
@@ -668,13 +669,13 @@ void MediaStreamImpl::GetUserMediaRequestTrackStartedFailed(
}
}
-void MediaStreamImpl::EnumerateDevicesSucceded(
+void UserMediaClientImpl::EnumerateDevicesSucceded(
blink::WebMediaDevicesRequest* request,
blink::WebVector<blink::WebMediaDeviceInfo>& devices) {
request->requestSucceeded(devices);
}
-const blink::WebMediaStreamSource* MediaStreamImpl::FindLocalSource(
+const blink::WebMediaStreamSource* UserMediaClientImpl::FindLocalSource(
const StreamDeviceInfo& device) const {
for (LocalStreamSources::const_iterator it = local_sources_.begin();
it != local_sources_.end(); ++it) {
@@ -690,8 +691,8 @@ const blink::WebMediaStreamSource* MediaStreamImpl::FindLocalSource(
return NULL;
}
-MediaStreamImpl::UserMediaRequestInfo*
-MediaStreamImpl::FindUserMediaRequestInfo(int request_id) {
+UserMediaClientImpl::UserMediaRequestInfo*
+UserMediaClientImpl::FindUserMediaRequestInfo(int request_id) {
UserMediaRequests::iterator it = user_media_requests_.begin();
for (; it != user_media_requests_.end(); ++it) {
if ((*it)->request_id == request_id)
@@ -700,8 +701,8 @@ MediaStreamImpl::FindUserMediaRequestInfo(int request_id) {
return NULL;
}
-MediaStreamImpl::UserMediaRequestInfo*
-MediaStreamImpl::FindUserMediaRequestInfo(
+UserMediaClientImpl::UserMediaRequestInfo*
+UserMediaClientImpl::FindUserMediaRequestInfo(
const blink::WebUserMediaRequest& request) {
UserMediaRequests::iterator it = user_media_requests_.begin();
for (; it != user_media_requests_.end(); ++it) {
@@ -711,7 +712,7 @@ MediaStreamImpl::FindUserMediaRequestInfo(
return NULL;
}
-void MediaStreamImpl::DeleteUserMediaRequestInfo(
+void UserMediaClientImpl::DeleteUserMediaRequestInfo(
UserMediaRequestInfo* request) {
UserMediaRequests::iterator it = user_media_requests_.begin();
for (; it != user_media_requests_.end(); ++it) {
@@ -723,10 +724,11 @@ void MediaStreamImpl::DeleteUserMediaRequestInfo(
NOTREACHED();
}
-void MediaStreamImpl::DeleteAllUserMediaRequests() {
+void UserMediaClientImpl::DeleteAllUserMediaRequests() {
UserMediaRequests::iterator request_it = user_media_requests_.begin();
while (request_it != user_media_requests_.end()) {
- DVLOG(1) << "MediaStreamImpl@" << this << "::DeleteAllUserMediaRequests: "
+ DVLOG(1) << "UserMediaClientImpl@" << this
+ << "::DeleteAllUserMediaRequests: "
<< "Cancel user media request " << (*request_it)->request_id;
// If the request is not generated, it means that a request
// has been sent to the MediaStreamDispatcher to generate a stream
@@ -746,8 +748,8 @@ void MediaStreamImpl::DeleteAllUserMediaRequests() {
}
}
-MediaStreamImpl::MediaDevicesRequestInfo*
-MediaStreamImpl::FindMediaDevicesRequestInfo(
+UserMediaClientImpl::MediaDevicesRequestInfo*
+UserMediaClientImpl::FindMediaDevicesRequestInfo(
int request_id) {
MediaDevicesRequests::iterator it = media_devices_requests_.begin();
for (; it != media_devices_requests_.end(); ++it) {
@@ -760,8 +762,8 @@ MediaStreamImpl::FindMediaDevicesRequestInfo(
return NULL;
}
-MediaStreamImpl::MediaDevicesRequestInfo*
-MediaStreamImpl::FindMediaDevicesRequestInfo(
+UserMediaClientImpl::MediaDevicesRequestInfo*
+UserMediaClientImpl::FindMediaDevicesRequestInfo(
const blink::WebMediaDevicesRequest& request) {
MediaDevicesRequests::iterator it = media_devices_requests_.begin();
for (; it != media_devices_requests_.end(); ++it) {
@@ -771,7 +773,7 @@ MediaStreamImpl::FindMediaDevicesRequestInfo(
return NULL;
}
-void MediaStreamImpl::CancelAndDeleteMediaDevicesRequest(
+void UserMediaClientImpl::CancelAndDeleteMediaDevicesRequest(
MediaDevicesRequestInfo* request) {
MediaDevicesRequests::iterator it = media_devices_requests_.begin();
for (; it != media_devices_requests_.end(); ++it) {
@@ -791,7 +793,7 @@ void MediaStreamImpl::CancelAndDeleteMediaDevicesRequest(
NOTREACHED();
}
-void MediaStreamImpl::FrameWillClose() {
+void UserMediaClientImpl::FrameWillClose() {
// Cancel all outstanding UserMediaRequests.
DeleteAllUserMediaRequests();
@@ -803,10 +805,10 @@ void MediaStreamImpl::FrameWillClose() {
}
}
-void MediaStreamImpl::OnLocalSourceStopped(
+void UserMediaClientImpl::OnLocalSourceStopped(
const blink::WebMediaStreamSource& source) {
DCHECK(CalledOnValidThread());
- DVLOG(1) << "MediaStreamImpl::OnLocalSourceStopped";
+ DVLOG(1) << "UserMediaClientImpl::OnLocalSourceStopped";
bool device_found = false;
for (LocalStreamSources::iterator device_it = local_sources_.begin();
@@ -824,12 +826,12 @@ void MediaStreamImpl::OnLocalSourceStopped(
media_stream_dispatcher_->StopStreamDevice(source_impl->device_info());
}
-void MediaStreamImpl::StopLocalSource(
+void UserMediaClientImpl::StopLocalSource(
const blink::WebMediaStreamSource& source,
bool notify_dispatcher) {
MediaStreamSource* source_impl =
static_cast<MediaStreamSource*>(source.extraData());
- DVLOG(1) << "MediaStreamImpl::StopLocalSource("
+ DVLOG(1) << "UserMediaClientImpl::StopLocalSource("
<< "{device_id = " << source_impl->device_info().device.id << "})";
if (notify_dispatcher)
@@ -839,7 +841,7 @@ void MediaStreamImpl::StopLocalSource(
source_impl->StopSource();
}
-MediaStreamImpl::UserMediaRequestInfo::UserMediaRequestInfo(
+UserMediaClientImpl::UserMediaRequestInfo::UserMediaRequestInfo(
int request_id,
const blink::WebUserMediaRequest& request,
bool enable_automatic_output_device_selection)
@@ -852,11 +854,11 @@ MediaStreamImpl::UserMediaRequestInfo::UserMediaRequestInfo(
request_result_name_("") {
}
-MediaStreamImpl::UserMediaRequestInfo::~UserMediaRequestInfo() {
+UserMediaClientImpl::UserMediaRequestInfo::~UserMediaRequestInfo() {
DVLOG(1) << "~UserMediaRequestInfo";
}
-void MediaStreamImpl::UserMediaRequestInfo::StartAudioTrack(
+void UserMediaClientImpl::UserMediaRequestInfo::StartAudioTrack(
const blink::WebMediaStreamTrack& track,
const blink::WebMediaConstraints& constraints) {
DCHECK(track.source().type() == blink::WebMediaStreamSource::TypeAudio);
@@ -868,12 +870,12 @@ void MediaStreamImpl::UserMediaRequestInfo::StartAudioTrack(
sources_waiting_for_callback_.push_back(native_source);
native_source->AddTrack(
track, constraints, base::Bind(
- &MediaStreamImpl::UserMediaRequestInfo::OnTrackStarted,
+ &UserMediaClientImpl::UserMediaRequestInfo::OnTrackStarted,
AsWeakPtr()));
}
blink::WebMediaStreamTrack
-MediaStreamImpl::UserMediaRequestInfo::CreateAndStartVideoTrack(
+UserMediaClientImpl::UserMediaRequestInfo::CreateAndStartVideoTrack(
const blink::WebMediaStreamSource& source,
const blink::WebMediaConstraints& constraints) {
DCHECK(source.type() == blink::WebMediaStreamSource::TypeVideo);
@@ -884,19 +886,19 @@ MediaStreamImpl::UserMediaRequestInfo::CreateAndStartVideoTrack(
sources_waiting_for_callback_.push_back(native_source);
return MediaStreamVideoTrack::CreateVideoTrack(
native_source, constraints, base::Bind(
- &MediaStreamImpl::UserMediaRequestInfo::OnTrackStarted,
+ &UserMediaClientImpl::UserMediaRequestInfo::OnTrackStarted,
AsWeakPtr()),
true);
}
-void MediaStreamImpl::UserMediaRequestInfo::CallbackOnTracksStarted(
+void UserMediaClientImpl::UserMediaRequestInfo::CallbackOnTracksStarted(
const ResourcesReady& callback) {
DCHECK(ready_callback_.is_null());
ready_callback_ = callback;
CheckAllTracksStarted();
}
-void MediaStreamImpl::UserMediaRequestInfo::OnTrackStarted(
+void UserMediaClientImpl::UserMediaRequestInfo::OnTrackStarted(
MediaStreamSource* source,
MediaStreamRequestResult result,
const blink::WebString& result_name) {
@@ -917,13 +919,13 @@ void MediaStreamImpl::UserMediaRequestInfo::OnTrackStarted(
CheckAllTracksStarted();
}
-void MediaStreamImpl::UserMediaRequestInfo::CheckAllTracksStarted() {
+void UserMediaClientImpl::UserMediaRequestInfo::CheckAllTracksStarted() {
if (!ready_callback_.is_null() && sources_waiting_for_callback_.empty()) {
ready_callback_.Run(this, request_result_, request_result_name_);
}
}
-bool MediaStreamImpl::UserMediaRequestInfo::IsSourceUsed(
+bool UserMediaClientImpl::UserMediaRequestInfo::IsSourceUsed(
const blink::WebMediaStreamSource& source) const {
for (std::vector<blink::WebMediaStreamSource>::const_iterator source_it =
sources_.begin();
@@ -934,7 +936,7 @@ bool MediaStreamImpl::UserMediaRequestInfo::IsSourceUsed(
return false;
}
-void MediaStreamImpl::UserMediaRequestInfo::RemoveSource(
+void UserMediaClientImpl::UserMediaRequestInfo::RemoveSource(
const blink::WebMediaStreamSource& source) {
for (std::vector<blink::WebMediaStreamSource>::iterator it =
sources_.begin();
@@ -946,7 +948,7 @@ void MediaStreamImpl::UserMediaRequestInfo::RemoveSource(
}
}
-bool MediaStreamImpl::UserMediaRequestInfo::HasPendingSources() const {
+bool UserMediaClientImpl::UserMediaRequestInfo::HasPendingSources() const {
return !sources_waiting_for_callback_.empty();
}

Powered by Google App Engine
This is Rietveld 408576698