components: Replace base::Optional and friends with absl counterparts

This replaces:
- base::Optional -> absl::optional
- include "base/optional.h"
  ->
  include "third_party/abseil-cpp/absl/types/optional.h"
- base::nullopt -> absl::nullopt
- base::make_optional -> absl::make_optional

Bug: 1202909
Change-Id: If697b7bf69b199c1796f873eedca3359cdb48c64
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2897151
Commit-Queue: Anton Bikineev <[email protected]>
Owners-Override: Anton Bikineev <[email protected]>
Reviewed-by: Peter Kasting <[email protected]>
Cr-Commit-Position: refs/heads/master@{#883296}
diff --git a/components/media_router/common/media_sink.h b/components/media_router/common/media_sink.h
index f9abed14..e50aad9a 100644
--- a/components/media_router/common/media_sink.h
+++ b/components/media_router/common/media_sink.h
@@ -7,8 +7,8 @@
 
 #include <string>
 
-#include "base/optional.h"
 #include "components/media_router/common/media_route_provider_helper.h"
+#include "third_party/abseil-cpp/absl/types/optional.h"
 #include "third_party/icu/source/common/unicode/uversion.h"
 
 namespace U_ICU_NAMESPACE {
@@ -62,12 +62,12 @@
   void set_description(const std::string& description) {
     description_ = description;
   }
-  const base::Optional<std::string>& description() const {
+  const absl::optional<std::string>& description() const {
     return description_;
   }
 
   void set_domain(const std::string& domain) { domain_ = domain; }
-  const base::Optional<std::string>& domain() const { return domain_; }
+  const absl::optional<std::string>& domain() const { return domain_; }
 
   void set_icon_type(SinkIconType icon_type) { icon_type_ = icon_type; }
   SinkIconType icon_type() const { return icon_type_; }
@@ -93,10 +93,10 @@
   std::string name_;
 
   // Optional description of the MediaSink.
-  base::Optional<std::string> description_;
+  absl::optional<std::string> description_;
 
   // Optional domain of the MediaSink.
-  base::Optional<std::string> domain_;
+  absl::optional<std::string> domain_;
 
   // The type of icon that corresponds with the MediaSink.
   SinkIconType icon_type_ = SinkIconType::GENERIC;
diff --git a/components/media_router/common/media_source.cc b/components/media_router/common/media_source.cc
index b3e450e..4d9c56a 100644
--- a/components/media_router/common/media_source.cc
+++ b/components/media_router/common/media_source.cc
@@ -157,7 +157,7 @@
   return tab_id;
 }
 
-base::Optional<std::string> MediaSource::DesktopStreamId() const {
+absl::optional<std::string> MediaSource::DesktopStreamId() const {
   if (base::StartsWith(id_, kDesktopMediaUrnPrefix,
                        base::CompareCase::SENSITIVE)) {
     const auto begin = id_.begin() + kDesktopMediaUrnPrefix.size();
@@ -168,7 +168,7 @@
     }
     return std::string(begin, end);
   }
-  return base::nullopt;
+  return absl::nullopt;
 }
 
 bool MediaSource::IsDesktopSourceWithAudio() const {
diff --git a/components/media_router/common/media_source.h b/components/media_router/common/media_source.h
index 2abc3648..2e264d4 100644
--- a/components/media_router/common/media_source.h
+++ b/components/media_router/common/media_source.h
@@ -132,8 +132,8 @@
 
   // When this source was created by ForDesktop(), returns the stream ID to pass
   // to content::DesktopStreamsRegistry::RequestMediaForStreamId(). Otherwise,
-  // returns base::nullopt.
-  base::Optional<std::string> DesktopStreamId() const;
+  // returns absl::nullopt.
+  absl::optional<std::string> DesktopStreamId() const;
 
   // Returns true if this source represents desktop capture that also provides
   // audio loopback capture. Returns false otherwise.
diff --git a/components/media_router/common/mojom/media_router_mojom_traits.cc b/components/media_router/common/mojom/media_router_mojom_traits.cc
index 0cc9893..b019f19 100644
--- a/components/media_router/common/mojom/media_router_mojom_traits.cc
+++ b/components/media_router/common/mojom/media_router_mojom_traits.cc
@@ -25,7 +25,7 @@
   if (!data.ReadSeverity(&out->severity))
     return false;
 
-  base::Optional<std::string> message;
+  absl::optional<std::string> message;
   if (!data.ReadMessage(&message))
     return false;
 
@@ -81,14 +81,14 @@
 
   out->sink().set_name(name);
 
-  base::Optional<std::string> description;
+  absl::optional<std::string> description;
   if (!data.ReadDescription(&description))
     return false;
 
   if (description)
     out->sink().set_description(*description);
 
-  base::Optional<std::string> domain;
+  absl::optional<std::string> domain;
   if (!data.ReadDomain(&domain))
     return false;
 
@@ -189,7 +189,7 @@
     return false;
   out->set_presentation_id(presentation_id);
 
-  base::Optional<media_router::MediaSource::Id> media_source_id;
+  absl::optional<media_router::MediaSource::Id> media_source_id;
   if (!data.ReadMediaSource(&media_source_id))
     return false;
   if (media_source_id)
diff --git a/components/media_router/common/mojom/media_router_mojom_traits.h b/components/media_router/common/mojom/media_router_mojom_traits.h
index 896349a5..a148f0d 100644
--- a/components/media_router/common/mojom/media_router_mojom_traits.h
+++ b/components/media_router/common/mojom/media_router_mojom_traits.h
@@ -265,12 +265,12 @@
     return sink_internal.sink().name();
   }
 
-  static const base::Optional<std::string>& description(
+  static const absl::optional<std::string>& description(
       const media_router::MediaSinkInternal& sink_internal) {
     return sink_internal.sink().description();
   }
 
-  static const base::Optional<std::string>& domain(
+  static const absl::optional<std::string>& domain(
       const media_router::MediaSinkInternal& sink_internal) {
     return sink_internal.sink().domain();
   }
@@ -344,15 +344,15 @@
     return route.presentation_id();
   }
 
-  static base::Optional<std::string> media_source(
+  static absl::optional<std::string> media_source(
       const media_router::MediaRoute& route) {
     // TODO(imcheng): If we ever convert from C++ to Mojo outside of unit tests,
     // it would be better to make the |media_source_| field on MediaRoute a
-    // base::Optional<MediaSource::Id> instead so it can be returned directly
+    // absl::optional<MediaSource::Id> instead so it can be returned directly
     // here.
     return route.media_source().id().empty()
-               ? base::Optional<std::string>()
-               : base::make_optional(route.media_source().id());
+               ? absl::optional<std::string>()
+               : absl::make_optional(route.media_source().id());
   }
 
   static const std::string& media_sink_id(
diff --git a/components/media_router/common/providers/cast/cast_media_source.cc b/components/media_router/common/providers/cast/cast_media_source.cc
index e0e04d5c..8cbdef6 100644
--- a/components/media_router/common/providers/cast/cast_media_source.cc
+++ b/components/media_router/common/providers/cast/cast_media_source.cc
@@ -91,8 +91,8 @@
 
 namespace {
 
-// A nonmember version of base::Optional::value_or that works on pointers as
-// well as instance of base::Optional.
+// A nonmember version of absl::optional::value_or that works on pointers as
+// well as instance of absl::optional.
 template <typename T>
 inline auto value_or(const T& optional,
                      const std::decay_t<decltype(*optional)>& default_value)
diff --git a/components/media_router/common/providers/cast/cast_media_source.h b/components/media_router/common/providers/cast/cast_media_source.h
index fa4bdd0..b569ab2e 100644
--- a/components/media_router/common/providers/cast/cast_media_source.h
+++ b/components/media_router/common/providers/cast/cast_media_source.h
@@ -12,10 +12,10 @@
 #include <vector>
 
 #include "base/check.h"
-#include "base/optional.h"
 #include "components/cast_channel/cast_message_util.h"
 #include "components/cast_channel/cast_socket.h"
 #include "components/media_router/common/media_source.h"
+#include "third_party/abseil-cpp/absl/types/optional.h"
 
 using cast_channel::ReceiverAppType;
 
@@ -182,7 +182,7 @@
   void set_launch_timeout(base::TimeDelta launch_timeout) {
     launch_timeout_ = launch_timeout;
   }
-  const base::Optional<cast_channel::BroadcastRequest>& broadcast_request()
+  const absl::optional<cast_channel::BroadcastRequest>& broadcast_request()
       const {
     return broadcast_request_;
   }
@@ -193,11 +193,11 @@
   DefaultActionPolicy default_action_policy() const {
     return default_action_policy_;
   }
-  base::Optional<base::TimeDelta> target_playout_delay() const {
+  absl::optional<base::TimeDelta> target_playout_delay() const {
     return target_playout_delay_;
   }
   void set_target_playout_delay(
-      const base::Optional<base::TimeDelta>& target_playout_delay) {
+      const absl::optional<base::TimeDelta>& target_playout_delay) {
     target_playout_delay_ = target_playout_delay;
   }
   // See also: ProvidesStreamingAudioCapture().
@@ -231,8 +231,8 @@
   base::TimeDelta launch_timeout_ = kDefaultLaunchTimeout;
   // Optional parameters.
   std::string client_id_;
-  base::Optional<cast_channel::BroadcastRequest> broadcast_request_;
-  base::Optional<base::TimeDelta> target_playout_delay_;
+  absl::optional<cast_channel::BroadcastRequest> broadcast_request_;
+  absl::optional<base::TimeDelta> target_playout_delay_;
   bool site_requested_audio_capture_ = true;
   std::vector<ReceiverAppType> supported_app_types_ = {ReceiverAppType::kWeb};
   std::string app_params_;
diff --git a/components/media_router/common/providers/cast/cast_media_source_unittest.cc b/components/media_router/common/providers/cast/cast_media_source_unittest.cc
index 87ef561e..2b7a5d9 100644
--- a/components/media_router/common/providers/cast/cast_media_source_unittest.cc
+++ b/components/media_router/common/providers/cast/cast_media_source_unittest.cc
@@ -31,7 +31,7 @@
   EXPECT_EQ(DefaultActionPolicy::kCreateSession,
             source->default_action_policy());
   EXPECT_EQ(ReceiverAppType::kWeb, source->supported_app_types()[0]);
-  EXPECT_EQ(base::nullopt, source->target_playout_delay());
+  EXPECT_EQ(absl::nullopt, source->target_playout_delay());
   EXPECT_EQ(true, source->site_requested_audio_capture());
   EXPECT_EQ(cast_channel::VirtualConnectionType::kStrong,
             source->connection_type());