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

Unified Diff: content/browser/presentation/presentation_service_impl.cc

Issue 2181163003: [Presentation API] Convert presentation.mojom to new wrapper types. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix comments Created 4 years, 5 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/browser/presentation/presentation_service_impl.cc
diff --git a/content/browser/presentation/presentation_service_impl.cc b/content/browser/presentation/presentation_service_impl.cc
index 17ec835b5f3017cb2bf09d6e292e9a2c3798a26b..46aafdf76f93c47f7a8c8ae947e7be0810855c95 100644
--- a/content/browser/presentation/presentation_service_impl.cc
+++ b/content/browser/presentation/presentation_service_impl.cc
@@ -49,15 +49,15 @@ blink::mojom::SessionMessagePtr ToMojoSessionMessage(
DCHECK(input->data);
output->type = blink::mojom::PresentationMessageType::ARRAY_BUFFER;
if (pass_ownership) {
- output->data.Swap(input->data.get());
+ output->data = std::vector<uint8_t>(std::move(*(input->data)));
} else {
- output->data = mojo::Array<uint8_t>::From(*input->data);
+ output->data = std::vector<uint8_t>(*(input->data));
}
} else {
// string message
output->type = blink::mojom::PresentationMessageType::TEXT;
if (pass_ownership) {
- output->message.Swap(&input->message);
+ output->message = std::move(input->message);
} else {
output->message = input->message;
}
@@ -71,39 +71,42 @@ std::unique_ptr<PresentationSessionMessage> GetPresentationSessionMessage(
std::unique_ptr<content::PresentationSessionMessage> output;
switch (input->type) {
case blink::mojom::PresentationMessageType::TEXT: {
- DCHECK(!input->message.is_null());
- DCHECK(input->data.is_null());
+ // TODO(mfoltz): Should these be CHECKs?
+ DCHECK(!input->data);
+ DCHECK(input->message);
// Return null PresentationSessionMessage if size exceeds.
- if (input->message.size() > content::kMaxPresentationSessionMessageSize)
+ if (input->message->size() > content::kMaxPresentationSessionMessageSize)
return output;
output.reset(
new PresentationSessionMessage(PresentationMessageType::TEXT));
- input->message.Swap(&output->message);
+ input->message->swap(output->message);
return output;
}
case blink::mojom::PresentationMessageType::ARRAY_BUFFER: {
- DCHECK(!input->data.is_null());
- DCHECK(input->message.is_null());
- if (input->data.size() > content::kMaxPresentationSessionMessageSize)
+ // TODO(mfoltz): Should these be CHECKs?
+ DCHECK(input->data);
+ DCHECK(!input->message);
+ if (input->data->size() > content::kMaxPresentationSessionMessageSize)
return output;
output.reset(new PresentationSessionMessage(
PresentationMessageType::ARRAY_BUFFER));
output->data.reset(new std::vector<uint8_t>);
- input->data.Swap(output->data.get());
+ input->data->swap(*(output->data));
return output;
}
case blink::mojom::PresentationMessageType::BLOB: {
- DCHECK(!input->data.is_null());
- DCHECK(input->message.is_null());
- if (input->data.size() > content::kMaxPresentationSessionMessageSize)
+ // TODO(mfoltz): Should these be CHECKs?
+ DCHECK(input->data);
+ DCHECK(!input->message);
+ if (input->data->size() > content::kMaxPresentationSessionMessageSize)
return output;
output.reset(
new PresentationSessionMessage(PresentationMessageType::BLOB));
output->data.reset(new std::vector<uint8_t>);
- input->data.Swap(output->data.get());
+ input->data->swap(*(output->data));
return output;
}
}
@@ -179,37 +182,35 @@ void PresentationServiceImpl::SetClient(
}
void PresentationServiceImpl::ListenForScreenAvailability(
- const mojo::String& url) {
+ const std::string& url) {
DVLOG(2) << "ListenForScreenAvailability " << url;
if (!delegate_) {
client_->OnScreenAvailabilityUpdated(url, false);
return;
}
- const std::string& availability_url = url.get();
- if (screen_availability_listeners_.count(availability_url))
+ if (screen_availability_listeners_.count(url))
return;
std::unique_ptr<ScreenAvailabilityListenerImpl> listener(
- new ScreenAvailabilityListenerImpl(availability_url, this));
+ new ScreenAvailabilityListenerImpl(url, this));
if (delegate_->AddScreenAvailabilityListener(
render_process_id_,
render_frame_id_,
listener.get())) {
- screen_availability_listeners_[availability_url] = std::move(listener);
+ screen_availability_listeners_[url] = std::move(listener);
} else {
DVLOG(1) << "AddScreenAvailabilityListener failed. Ignoring request.";
}
}
void PresentationServiceImpl::StopListeningForScreenAvailability(
- const mojo::String& url) {
+ const std::string& url) {
DVLOG(2) << "StopListeningForScreenAvailability " << url;
if (!delegate_)
return;
- const std::string& availability_url = url.get();
- auto listener_it = screen_availability_listeners_.find(availability_url);
+ auto listener_it = screen_availability_listeners_.find(url);
if (listener_it == screen_availability_listeners_.end())
return;
@@ -218,7 +219,7 @@ void PresentationServiceImpl::StopListeningForScreenAvailability(
screen_availability_listeners_.erase(listener_it);
}
-void PresentationServiceImpl::StartSession(const mojo::String& presentation_url,
+void PresentationServiceImpl::StartSession(const std::string& presentation_url,
const NewSessionCallback& callback) {
DVLOG(2) << "StartSession";
if (!delegate_) {
@@ -247,8 +248,8 @@ void PresentationServiceImpl::StartSession(const mojo::String& presentation_url,
}
void PresentationServiceImpl::JoinSession(
- const mojo::String& presentation_url,
- const mojo::String& presentation_id,
+ const std::string& presentation_url,
+ const base::Optional<std::string>& presentation_id,
const NewSessionCallback& callback) {
DVLOG(2) << "JoinSession";
if (!delegate_) {
@@ -265,10 +266,8 @@ void PresentationServiceImpl::JoinSession(
return;
}
delegate_->JoinSession(
- render_process_id_,
- render_frame_id_,
- presentation_url,
- presentation_id,
+ render_process_id_, render_frame_id_, presentation_url,
+ presentation_id.value_or(std::string()),
base::Bind(&PresentationServiceImpl::OnJoinSessionSucceeded,
weak_factory_.GetWeakPtr(), request_session_id),
base::Bind(&PresentationServiceImpl::OnJoinSessionError,
@@ -358,18 +357,17 @@ bool PresentationServiceImpl::RunAndEraseJoinSessionMojoCallback(
}
void PresentationServiceImpl::SetDefaultPresentationURL(
- const mojo::String& url) {
+ const std::string& url) {
DVLOG(2) << "SetDefaultPresentationURL";
if (!delegate_)
return;
- const std::string& new_default_url = url.get();
- if (default_presentation_url_ == new_default_url)
+ if (default_presentation_url_ == url)
return;
- default_presentation_url_ = new_default_url;
+ default_presentation_url_ = url;
delegate_->SetDefaultPresentationUrl(
- render_process_id_, render_frame_id_, new_default_url,
+ render_process_id_, render_frame_id_, url,
base::Bind(&PresentationServiceImpl::OnDefaultPresentationStarted,
weak_factory_.GetWeakPtr()));
}
@@ -406,16 +404,16 @@ void PresentationServiceImpl::OnSendMessageCallback(bool sent) {
}
void PresentationServiceImpl::CloseConnection(
- const mojo::String& presentation_url,
- const mojo::String& presentation_id) {
+ const std::string& presentation_url,
+ const std::string& presentation_id) {
DVLOG(2) << "CloseConnection " << presentation_id;
if (delegate_)
delegate_->CloseConnection(render_process_id_, render_frame_id_,
presentation_id);
}
-void PresentationServiceImpl::Terminate(const mojo::String& presentation_url,
- const mojo::String& presentation_id) {
+void PresentationServiceImpl::Terminate(const std::string& presentation_url,
+ const std::string& presentation_id) {
DVLOG(2) << "Terminate " << presentation_id;
if (delegate_)
delegate_->Terminate(render_process_id_, render_frame_id_, presentation_id);
@@ -466,9 +464,11 @@ void PresentationServiceImpl::OnSessionMessages(
DCHECK(client_);
DVLOG(2) << "OnSessionMessages";
- mojo::Array<blink::mojom::SessionMessagePtr> mojoMessages(messages.size());
- for (size_t i = 0; i < messages.size(); ++i)
- mojoMessages[i] = ToMojoSessionMessage(messages[i], pass_ownership);
+ std::vector<blink::mojom::SessionMessagePtr> mojoMessages(messages.size());
+ std::transform(messages.begin(), messages.end(), mojoMessages.begin(),
+ [pass_ownership](PresentationSessionMessage* message) {
+ return ToMojoSessionMessage(message, pass_ownership);
+ });
client_->OnSessionMessagesReceived(
blink::mojom::PresentationSessionInfo::From(session),

Powered by Google App Engine
This is Rietveld 408576698