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

Unified Diff: mojo/edk/system/channel.cc

Issue 1775693002: [mojo-edk] Keep old wire format and semantics on Android. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 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
« no previous file with comments | « mojo/edk/system/channel.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mojo/edk/system/channel.cc
diff --git a/mojo/edk/system/channel.cc b/mojo/edk/system/channel.cc
index 958e10c4413d1d644c2ca7563b3f9f9aef3bdb69..e74b9004758fd7851750ccd004314839ec9d9b3e 100644
--- a/mojo/edk/system/channel.cc
+++ b/mojo/edk/system/channel.cc
@@ -21,9 +21,9 @@ namespace {
static_assert(sizeof(Channel::Message::Header) % kChannelMessageAlignment == 0,
"Invalid Header size.");
-#if defined(OS_CHROMEOS)
+#if defined(OS_CHROMEOS) || defined(OS_ANDROID)
static_assert(sizeof(Channel::Message::Header) == 8,
- "Header must be 8 bytes on ChromeOS");
+ "Header must be 8 bytes on ChromeOS and Android");
#endif
} // namespace
@@ -50,7 +50,7 @@ Channel::Message::Message(size_t payload_size,
(extra_header_size % kChannelMessageAlignment);
}
DCHECK_EQ(0u, extra_header_size % kChannelMessageAlignment);
-#if defined(OS_CHROMEOS)
+#if defined(OS_CHROMEOS) || defined(OS_ANDROID)
DCHECK_EQ(0u, extra_header_size);
#endif
@@ -71,7 +71,7 @@ Channel::Message::Message(size_t payload_size,
DCHECK_LE(sizeof(Header) + extra_header_size,
std::numeric_limits<uint16_t>::max());
header_->message_type = message_type;
-#if defined(OS_CHROMEOS)
+#if defined(OS_CHROMEOS) || defined(OS_ANDROID)
header_->num_handles = static_cast<uint16_t>(max_handles);
#else
header_->num_header_bytes =
@@ -152,7 +152,7 @@ Channel::MessagePtr Channel::Message::Deserialize(const void* data,
}
size_t Channel::Message::payload_size() const {
-#if defined(OS_CHROMEOS)
+#if defined(OS_CHROMEOS) || defined(OS_ANDROID)
return header_->num_bytes - sizeof(Header);
#else
return size_ - header_->num_header_bytes;
@@ -160,8 +160,8 @@ size_t Channel::Message::payload_size() const {
}
PlatformHandle* Channel::Message::handles() {
-#if defined(OS_CHROMEOS)
- // Old semantics for ChromeOS.
+#if defined(OS_CHROMEOS) || defined(OS_ANDROID)
+ // Old semantics for ChromeOS and Android.
if (header_->num_handles == 0)
return nullptr;
CHECK(handle_vector_);
@@ -175,7 +175,7 @@ PlatformHandle* Channel::Message::handles() {
CHECK(handle_vector_);
return handle_vector_->data();
#endif // defined(OS_WIN)
-#endif // defined(OS_CHROMEOS)
+#endif // defined(OS_CHROMEOS) || defined(OS_ANDROID)
}
#if defined(OS_MACOSX) && !defined(OS_IOS)
@@ -192,8 +192,8 @@ bool Channel::Message::has_mach_ports() const {
#endif
void Channel::Message::SetHandles(ScopedPlatformHandleVectorPtr new_handles) {
-#if defined(OS_CHROMEOS)
- // Old semantics for ChromeOS.
+#if defined(OS_CHROMEOS) || defined(OS_ANDROID)
+ // Old semantics for ChromeOS and Android
if (header_->num_handles == 0) {
CHECK(!new_handles || new_handles->size() == 0);
return;
@@ -216,7 +216,7 @@ void Channel::Message::SetHandles(ScopedPlatformHandleVectorPtr new_handles) {
#else
std::swap(handle_vector_, new_handles);
#endif // defined(OS_WIN)
-#endif // defined(OS_CHROMEOS)
+#endif // defined(OS_CHROMEOS) || defined(OS_ANDROID)
}
ScopedPlatformHandleVectorPtr Channel::Message::TakeHandles() {
@@ -402,7 +402,7 @@ bool Channel::OnReadComplete(size_t bytes_read, size_t *next_read_size_hint) {
return true;
}
-#if defined(OS_CHROMEOS)
+#if defined(OS_CHROMEOS) || defined(OS_ANDROID)
size_t extra_header_size = 0;
const void* extra_header = nullptr;
size_t payload_size = header->num_bytes - sizeof(Message::Header);
@@ -418,7 +418,7 @@ bool Channel::OnReadComplete(size_t bytes_read, size_t *next_read_size_hint) {
const_cast<char*>(read_buffer_->occupied_bytes()) +
header->num_header_bytes)
: nullptr;
-#endif
+#endif // defined(OS_CHROMEOS) || defined(OS_ANDROID)
ScopedPlatformHandleVectorPtr handles;
if (header->num_handles > 0) {
« no previous file with comments | « mojo/edk/system/channel.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698