Split FCM sender from SharingMessageSender

To reuse all logic inside SharingMessageSender (metrics, timeouts and
acks) this introduces a SendMessageDelegate which is implemented once
for FCM and will be implemented for WebRTC in a future CL. This allows
us to dynamically choose the send implementation in the SharingService.

Bug: 1041032
Change-Id: Ib8abc2cf0c963a511ced12b71e09acde6fc0fa75
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1995332
Commit-Queue: Richard Knoll <[email protected]>
Reviewed-by: Himanshu Jaju <[email protected]>
Cr-Commit-Position: refs/heads/master@{#731652}
diff --git a/chrome/browser/sharing/ack_message_handler_unittest.cc b/chrome/browser/sharing/ack_message_handler_unittest.cc
index eb955b41..9d937da 100644
--- a/chrome/browser/sharing/ack_message_handler_unittest.cc
+++ b/chrome/browser/sharing/ack_message_handler_unittest.cc
@@ -19,7 +19,9 @@
 class MockSharingMessageSender : public SharingMessageSender {
  public:
   MockSharingMessageSender()
-      : SharingMessageSender(nullptr, nullptr, nullptr) {}
+      : SharingMessageSender(
+            /*sync_prefs=*/nullptr,
+            /*local_device_info_provider=*/nullptr) {}
   ~MockSharingMessageSender() override = default;
 
   MOCK_METHOD3(