Include absl's optional.h in first-party headers.

Many first-party headers reference absl::optional but does not include
the header. Fix this mechanically using the file list generated as
follows:

git ls-files | grep '\.h$' | grep -v third_party | \
    xargs grep -l absl::optional | \
    xargs grep -L '//.*absl::optional' | \
    xargs grep -L override | \
    xargs grep -L '^#include "third_party/abseil-cpp/absl/types/optional\.h"'

Change-Id: I7693f707a416d3088f7cde22cd07b1458c4c5405
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2911952
Reviewed-by: Peter Kasting <[email protected]>
Commit-Queue: Peter Kasting <[email protected]>
Owners-Override: Peter Kasting <[email protected]>
Cr-Commit-Position: refs/heads/master@{#885381}
diff --git a/chromeos/components/drivefs/drivefs_auth.h b/chromeos/components/drivefs/drivefs_auth.h
index da9117e..840f601 100644
--- a/chromeos/components/drivefs/drivefs_auth.h
+++ b/chromeos/components/drivefs/drivefs_auth.h
@@ -14,6 +14,7 @@
 #include "base/time/clock.h"
 #include "base/timer/timer.h"
 #include "chromeos/components/drivefs/mojom/drivefs.mojom.h"
+#include "third_party/abseil-cpp/absl/types/optional.h"
 
 class AccountId;
 class GoogleServiceAuthError;
diff --git a/chromeos/components/drivefs/drivefs_search.h b/chromeos/components/drivefs/drivefs_search.h
index 6e487d6..533298e 100644
--- a/chromeos/components/drivefs/drivefs_search.h
+++ b/chromeos/components/drivefs/drivefs_search.h
@@ -15,6 +15,7 @@
 #include "base/time/clock.h"
 #include "chromeos/components/drivefs/mojom/drivefs.mojom.h"
 #include "mojo/public/cpp/bindings/remote.h"
+#include "third_party/abseil-cpp/absl/types/optional.h"
 
 namespace network {
 class NetworkConnectionTracker;
diff --git a/chromeos/components/phonehub/browser_tabs_metadata_fetcher.h b/chromeos/components/phonehub/browser_tabs_metadata_fetcher.h
index 1a015ee..6d2b4f5 100644
--- a/chromeos/components/phonehub/browser_tabs_metadata_fetcher.h
+++ b/chromeos/components/phonehub/browser_tabs_metadata_fetcher.h
@@ -8,6 +8,7 @@
 #include <vector>
 #include "base/callback.h"
 #include "chromeos/components/phonehub/browser_tabs_model.h"
+#include "third_party/abseil-cpp/absl/types/optional.h"
 
 namespace sync_sessions {
 struct SyncedSession;
diff --git a/chromeos/components/quick_answers/understanding/intent_generator.h b/chromeos/components/quick_answers/understanding/intent_generator.h
index aaf584a..3f63f36 100644
--- a/chromeos/components/quick_answers/understanding/intent_generator.h
+++ b/chromeos/components/quick_answers/understanding/intent_generator.h
@@ -13,6 +13,7 @@
 #include "chromeos/services/machine_learning/public/mojom/machine_learning_service.mojom.h"
 #include "chromeos/services/machine_learning/public/mojom/text_classifier.mojom.h"
 #include "mojo/public/cpp/bindings/remote.h"
+#include "third_party/abseil-cpp/absl/types/optional.h"
 
 namespace chromeos {
 namespace quick_answers {
diff --git a/chromeos/components/quick_answers/utils/quick_answers_utils.h b/chromeos/components/quick_answers/utils/quick_answers_utils.h
index 7993f03..d3e4555d 100644
--- a/chromeos/components/quick_answers/utils/quick_answers_utils.h
+++ b/chromeos/components/quick_answers/utils/quick_answers_utils.h
@@ -6,6 +6,7 @@
 #define CHROMEOS_COMPONENTS_QUICK_ANSWERS_UTILS_QUICK_ANSWERS_UTILS_H_
 
 #include "chromeos/components/quick_answers/quick_answers_model.h"
+#include "third_party/abseil-cpp/absl/types/optional.h"
 
 namespace chromeos {
 namespace quick_answers {
diff --git a/chromeos/components/telemetry_extension_ui/diagnostics_service_converters.h b/chromeos/components/telemetry_extension_ui/diagnostics_service_converters.h
index 8a7a0d84..40eacf0 100644
--- a/chromeos/components/telemetry_extension_ui/diagnostics_service_converters.h
+++ b/chromeos/components/telemetry_extension_ui/diagnostics_service_converters.h
@@ -16,6 +16,7 @@
 #include "chromeos/components/telemetry_extension_ui/mojom/diagnostics_service.mojom-forward.h"
 #include "chromeos/services/cros_healthd/public/mojom/cros_healthd_diagnostics.mojom.h"
 #include "mojo/public/cpp/system/handle.h"
+#include "third_party/abseil-cpp/absl/types/optional.h"
 
 namespace chromeos {
 namespace converters {
diff --git a/chromeos/crosapi/mojom/app_service_types_mojom_traits.h b/chromeos/crosapi/mojom/app_service_types_mojom_traits.h
index eb6bfd174..3f388457 100644
--- a/chromeos/crosapi/mojom/app_service_types_mojom_traits.h
+++ b/chromeos/crosapi/mojom/app_service_types_mojom_traits.h
@@ -9,6 +9,7 @@
 
 #include "chromeos/crosapi/mojom/app_service_types.mojom.h"
 #include "components/services/app_service/public/mojom/types.mojom.h"
+#include "third_party/abseil-cpp/absl/types/optional.h"
 
 namespace mojo {
 
diff --git a/chromeos/dbus/session_manager/session_manager_client.h b/chromeos/dbus/session_manager/session_manager_client.h
index 067eecb..2393a4e 100644
--- a/chromeos/dbus/session_manager/session_manager_client.h
+++ b/chromeos/dbus/session_manager/session_manager_client.h
@@ -15,6 +15,7 @@
 #include "base/observer_list.h"
 #include "base/time/time.h"
 #include "chromeos/dbus/dbus_method_call_status.h"
+#include "third_party/abseil-cpp/absl/types/optional.h"
 #include "third_party/cros_system_api/dbus/login_manager/dbus-constants.h"
 
 namespace cryptohome {
diff --git a/chromeos/dbus/shill/shill_device_client.h b/chromeos/dbus/shill/shill_device_client.h
index 2b730e8..d9d52eb 100644
--- a/chromeos/dbus/shill/shill_device_client.h
+++ b/chromeos/dbus/shill/shill_device_client.h
@@ -12,6 +12,7 @@
 #include "base/component_export.h"
 #include "base/macros.h"
 #include "chromeos/dbus/shill/shill_client_helper.h"
+#include "third_party/abseil-cpp/absl/types/optional.h"
 
 namespace base {
 class Value;
diff --git a/chromeos/dbus/userdataauth/cryptohome_misc_client.h b/chromeos/dbus/userdataauth/cryptohome_misc_client.h
index 0448a95..a6eac5a7 100644
--- a/chromeos/dbus/userdataauth/cryptohome_misc_client.h
+++ b/chromeos/dbus/userdataauth/cryptohome_misc_client.h
@@ -11,6 +11,7 @@
 #include "chromeos/dbus/cryptohome/UserDataAuth.pb.h"
 #include "chromeos/dbus/cryptohome/rpc.pb.h"
 #include "chromeos/dbus/dbus_method_call_status.h"
+#include "third_party/abseil-cpp/absl/types/optional.h"
 
 namespace dbus {
 class Bus;
diff --git a/chromeos/dbus/userdataauth/install_attributes_client.h b/chromeos/dbus/userdataauth/install_attributes_client.h
index dfc613fe..81c4a04 100644
--- a/chromeos/dbus/userdataauth/install_attributes_client.h
+++ b/chromeos/dbus/userdataauth/install_attributes_client.h
@@ -11,6 +11,7 @@
 #include "chromeos/dbus/cryptohome/UserDataAuth.pb.h"
 #include "chromeos/dbus/cryptohome/rpc.pb.h"
 #include "chromeos/dbus/dbus_method_call_status.h"
+#include "third_party/abseil-cpp/absl/types/optional.h"
 
 namespace dbus {
 class Bus;
diff --git a/chromeos/services/multidevice_setup/host_status_provider.h b/chromeos/services/multidevice_setup/host_status_provider.h
index 47a2852..b8c77715 100644
--- a/chromeos/services/multidevice_setup/host_status_provider.h
+++ b/chromeos/services/multidevice_setup/host_status_provider.h
@@ -9,6 +9,7 @@
 #include "base/observer_list.h"
 #include "chromeos/components/multidevice/remote_device_ref.h"
 #include "chromeos/services/multidevice_setup/public/mojom/multidevice_setup.mojom.h"
+#include "third_party/abseil-cpp/absl/types/optional.h"
 
 namespace chromeos {