diagnostics: Fix diagnostics build for libchrome uprev.

BUG=chromium:907528
TEST=Build locally.
CQ-DEPEND=CL:1347529

Change-Id: I8ad15ac5a5d25e5558ea1e5785ef9302a4213509
Reviewed-on: https://chromium-review.googlesource.com/1347549
Commit-Ready: Maksim Ivanov <emaxx@chromium.org>
Tested-by: Maksim Ivanov <emaxx@chromium.org>
Reviewed-by: Maksim Ivanov <emaxx@chromium.org>
diff --git a/diagnostics/diagnosticsd/diagnosticsd_grpc_service_test.cc b/diagnostics/diagnosticsd/diagnosticsd_grpc_service_test.cc
index 0097ca6..226beca 100644
--- a/diagnostics/diagnosticsd/diagnosticsd_grpc_service_test.cc
+++ b/diagnostics/diagnosticsd/diagnosticsd_grpc_service_test.cc
@@ -138,6 +138,10 @@
   }
 };
 
+// Need external definition.
+constexpr char
+    SingleProcFileDiagnosticsdGrpcServiceTest::kFakeFileContentsChars[];
+
 }  // namespace
 
 // Test that GetProcData() returns a single item with the requested file data
diff --git a/diagnostics/diagnosticsd/diagnosticsd_mojo_service.cc b/diagnostics/diagnosticsd/diagnosticsd_mojo_service.cc
index c9ba34c..582139a 100644
--- a/diagnostics/diagnosticsd/diagnosticsd_mojo_service.cc
+++ b/diagnostics/diagnosticsd/diagnosticsd_mojo_service.cc
@@ -38,13 +38,10 @@
     mojo::ScopedSharedBufferHandle json_message,
     int64_t json_message_size,
     const SendUiMessageToDiagnosticsProcessorWithSizeCallback& callback) {
-  void* json_message_data = nullptr;
-
-  auto mojo_result =
-      mojo::MapBuffer(json_message.get(), 0, json_message_size,
-                      &json_message_data, MOJO_MAP_BUFFER_FLAG_NONE);
-  if (mojo_result != MOJO_RESULT_OK) {
-    LOG(ERROR) << "mojo::MapBuffer error: " << mojo_result;
+  mojo::ScopedSharedBufferMapping json_message_data =
+      json_message->Map(json_message_size);
+  if (!json_message_data) {
+    LOG(ERROR) << "Mojo Map failed.";
     callback.Run();
     return;
   }
@@ -53,13 +50,13 @@
   int json_error_line, json_error_column;
   std::string json_error_message;
   base::JSONReader::ReadAndReturnError(
-      base::StringPiece(static_cast<const char*>(json_message_data),
+      base::StringPiece(static_cast<const char*>(json_message_data.get()),
                         json_message_size),
       base::JSONParserOptions::JSON_ALLOW_TRAILING_COMMAS, &json_error_code,
       &json_error_message, &json_error_line, &json_error_column);
   if (json_error_code == base::JSONReader::JSON_NO_ERROR) {
-    base::StringPiece json_message(static_cast<const char*>(json_message_data),
-                                   json_message_size);
+    base::StringPiece json_message(
+        static_cast<const char*>(json_message_data.get()), json_message_size);
     delegate_->SendGrpcUiMessageToDiagnosticsProcessor(json_message);
   } else {
     LOG(ERROR) << "Invalid JSON at line " << json_error_line << " and column "
@@ -68,10 +65,6 @@
                << ". Error code: " << json_error_code;
   }
 
-  mojo_result = mojo::UnmapBuffer(json_message_data);
-  if (mojo_result != MOJO_RESULT_OK) {
-    LOG(ERROR) << "mojo::UnmapBuffer error: " << mojo_result;
-  }
   callback.Run();
 }
 
diff --git a/diagnostics/diagnosticsd/diagnosticsd_mojo_service_test.cc b/diagnostics/diagnosticsd/diagnosticsd_mojo_service_test.cc
index 5aabe38..07b0a28 100644
--- a/diagnostics/diagnosticsd/diagnosticsd_mojo_service_test.cc
+++ b/diagnostics/diagnosticsd/diagnosticsd_mojo_service_test.cc
@@ -67,7 +67,7 @@
     ASSERT_TRUE(shared_buffer);
     service_->SendUiMessageToDiagnosticsProcessorWithSize(
         std::move(*shared_buffer.get()), json_message.length(),
-        mojo::Callback<void()>());
+        base::Bind(&base::DoNothing));
   }
 
  private:
diff --git a/diagnostics/diagnosticsd/fake_browser.cc b/diagnostics/diagnosticsd/fake_browser.cc
index 16db00c..54ad571 100644
--- a/diagnostics/diagnosticsd/fake_browser.cc
+++ b/diagnostics/diagnosticsd/fake_browser.cc
@@ -12,7 +12,6 @@
 #include <brillo/bind_lambda.h>
 #include <dbus/message.h>
 #include <dbus/diagnosticsd/dbus-constants.h>
-#include <mojo/public/cpp/bindings/callback.h>
 #include <mojo/public/cpp/bindings/interface_request.h>
 #include <mojo/public/cpp/system/buffer.h>
 
@@ -50,7 +49,7 @@
   }
   diagnosticsd_service_ptr_->SendUiMessageToDiagnosticsProcessorWithSize(
       std::move(*shared_buffer.get()), json_message.length(),
-      mojo::Callback<void()>());
+      base::Bind(&base::DoNothing));
   return true;
 }
 
@@ -95,8 +94,7 @@
       mojo::MakeRequest(&diagnosticsd_client_proxy));
   (*diagnosticsd_service_factory_ptr_)
       ->GetService(mojo::MakeRequest(&diagnosticsd_service_ptr_),
-                   std::move(diagnosticsd_client_proxy),
-                   mojo::Callback<void()>());
+                   std::move(diagnosticsd_client_proxy), base::Closure());
 }
 
 }  // namespace diagnostics
diff --git a/diagnostics/diagnosticsd/mojo_test_utils.cc b/diagnostics/diagnosticsd/mojo_test_utils.cc
index 6102a10..ad29bb9 100644
--- a/diagnostics/diagnosticsd/mojo_test_utils.cc
+++ b/diagnostics/diagnosticsd/mojo_test_utils.cc
@@ -79,34 +79,20 @@
 namespace helper {
 std::unique_ptr<mojo::ScopedSharedBufferHandle> WriteToSharedBuffer(
     const std::string& content) {
-  auto options = MojoCreateSharedBufferOptions{
-      sizeof(MojoCreateSharedBufferOptions),
-      MOJO_CREATE_SHARED_BUFFER_OPTIONS_FLAG_NONE};
-
   std::unique_ptr<mojo::ScopedSharedBufferHandle> buffer =
       std::make_unique<mojo::ScopedSharedBufferHandle>();
-
-  MojoResult mojo_result =
-      mojo::CreateSharedBuffer(&options, content.length(), buffer.get());
-  if (mojo_result != MOJO_RESULT_OK) {
+  *buffer = mojo::SharedBufferHandle::Create(content.length());
+  if (!(*buffer)->is_valid()) {
     return nullptr;
   }
 
-  void* ptr = nullptr;
-
-  mojo_result = mojo::MapBuffer(buffer->get(), 0, content.length(), &ptr,
-                                MOJO_MAP_BUFFER_FLAG_NONE);
-  if (mojo_result != MOJO_RESULT_OK) {
-    mojo::UnmapBuffer(ptr);
+  mojo::ScopedSharedBufferMapping mapping = (*buffer)->Map(content.length());
+  if (!mapping) {
     return nullptr;
   }
 
-  memcpy(ptr, static_cast<const void*>(content.c_str()), content.length());
-
-  mojo_result = mojo::UnmapBuffer(ptr);
-  if (mojo_result != MOJO_RESULT_OK) {
-    return nullptr;
-  }
+  memcpy(mapping.get(), static_cast<const void*>(content.c_str()),
+         content.length());
   return buffer;
 }
 
diff --git a/diagnostics/dpsl/internal/dpsl_requester_impl.cc b/diagnostics/dpsl/internal/dpsl_requester_impl.cc
index 95290cd..32dc4ca 100644
--- a/diagnostics/dpsl/internal/dpsl_requester_impl.cc
+++ b/diagnostics/dpsl/internal/dpsl_requester_impl.cc
@@ -34,7 +34,8 @@
     case DpslRequester::GrpcClientUri::kLocalDomainSocket:
       return kDiagnosticsdLocalDomainSocketGrpcUri;
   }
-  NOTREACHED() << "Unexpected GrpcClientUri: " << grpc_client_uri;
+  NOTREACHED() << "Unexpected GrpcClientUri: "
+               << static_cast<int>(grpc_client_uri);
   return "";
 }
 
@@ -99,12 +100,20 @@
     GrpcStubMethod grpc_stub_method,
     std::unique_ptr<RequestType> request,
     std::function<void(std::unique_ptr<ResponseType>)> response_callback) {
-  message_loop_->PostTask(
-      location, base::Bind(&DpslRequesterImpl::CallGrpcClientMethod<
-                               GrpcStubMethod, RequestType, ResponseType>,
-                           weak_ptr_factory_.GetWeakPtr(), grpc_stub_method,
-                           base::Passed(std::move(request)),
-                           base::Bind(std::move(response_callback))));
+  message_loop_->task_runner()->PostTask(
+      location,
+      base::Bind(
+          &DpslRequesterImpl::CallGrpcClientMethod<GrpcStubMethod, RequestType,
+                                                   ResponseType>,
+          weak_ptr_factory_.GetWeakPtr(), grpc_stub_method,
+          base::Passed(std::move(request)),
+          base::Bind(
+              [](std::function<void(std::unique_ptr<ResponseType>)>
+                     response_callback,
+                 std::unique_ptr<ResponseType> response) {
+                std::move(response_callback)(std::move(response));
+              },
+              base::Passed(&response_callback))));
 }
 
 template <typename GrpcStubMethod, typename RequestType, typename ResponseType>
diff --git a/diagnostics/dpsl/internal/dpsl_rpc_server_impl.cc b/diagnostics/dpsl/internal/dpsl_rpc_server_impl.cc
index 644fef8..67ef684 100644
--- a/diagnostics/dpsl/internal/dpsl_rpc_server_impl.cc
+++ b/diagnostics/dpsl/internal/dpsl_rpc_server_impl.cc
@@ -33,7 +33,8 @@
     case DpslRpcServer::GrpcServerUri::kLocalDomainSocket:
       return kDiagnosticsProcessorLocalDomainSocketGrpcUri;
   }
-  NOTREACHED() << "Unexpected GrpcServerUri: " << grpc_server_uri;
+  NOTREACHED() << "Unexpected GrpcServerUri: "
+               << static_cast<int>(grpc_server_uri);
   return "";
 }
 
diff --git a/diagnostics/dpsl/internal/dpsl_thread_context_impl.cc b/diagnostics/dpsl/internal/dpsl_thread_context_impl.cc
index 518b064..fc72a9d 100644
--- a/diagnostics/dpsl/internal/dpsl_thread_context_impl.cc
+++ b/diagnostics/dpsl/internal/dpsl_thread_context_impl.cc
@@ -62,14 +62,19 @@
 }
 
 void DpslThreadContextImpl::PostTask(std::function<void()> task) {
-  message_loop_->PostTask(FROM_HERE, base::Bind(std::move(task)));
+  message_loop_->task_runner()->PostTask(
+      FROM_HERE,
+      base::Bind([](std::function<void()> task) { std::move(task)(); },
+                 base::Passed(&task)));
 }
 
 void DpslThreadContextImpl::PostDelayedTask(std::function<void()> task,
                                             int64_t delay_milliseconds) {
   CHECK_GE(delay_milliseconds, 0);
-  message_loop_->PostDelayedTask(
-      FROM_HERE, base::Bind(std::move(task)),
+  message_loop_->task_runner()->PostDelayedTask(
+      FROM_HERE,
+      base::Bind([](std::function<void()> task) { std::move(task)(); },
+                 base::Passed(&task)),
       base::TimeDelta::FromMilliseconds(delay_milliseconds));
 }
 
diff --git a/diagnostics/telem/telem_connection.cc b/diagnostics/telem/telem_connection.cc
index 0454131..4df7851 100644
--- a/diagnostics/telem/telem_connection.cc
+++ b/diagnostics/telem/telem_connection.cc
@@ -53,7 +53,7 @@
       GetProcMessage(grpc_api::GetProcDataRequest::DIRECTORY_ACPI_BUTTON);
       break;
     default:
-      LOG(ERROR) << "Undefined telemetry item: " << item;
+      LOG(ERROR) << "Undefined telemetry item: " << static_cast<int>(item);
   }
 }