[Extensions] Remove ExtensionSyncData::OptionalBoolean

ExtensionSyncData::OptionalBoolean was added before base::Optional<>
existed. Now that we have base::Optional<>, we should just use that.

Bug: None
Change-Id: Ibf19830b6d7154be82f6a45f9b645b3055d2da3b
Reviewed-on: https://chromium-review.googlesource.com/1044646
Reviewed-by: Karan Bhatia <[email protected]>
Commit-Queue: Devlin <[email protected]>
Cr-Commit-Position: refs/heads/master@{#556199}
diff --git a/chrome/browser/extensions/extension_service_sync_unittest.cc b/chrome/browser/extensions/extension_service_sync_unittest.cc
index 1e854e0..9620496e 100644
--- a/chrome/browser/extensions/extension_service_sync_unittest.cc
+++ b/chrome/browser/extensions/extension_service_sync_unittest.cc
@@ -101,8 +101,7 @@
   bool incognito_enabled = false;
   bool remote_install = false;
   bool installed_by_custodian = false;
-  ExtensionSyncData::OptionalBoolean has_all_urls =
-      ExtensionSyncData::BOOLEAN_UNSET;
+  base::Optional<bool> has_all_urls;
   return ExtensionSyncData(extension, enabled, disable_reasons,
                            incognito_enabled, remote_install, has_all_urls,
                            installed_by_custodian);
@@ -113,8 +112,7 @@
   bool incognito_enabled = false;
   bool remote_install = false;
   bool installed_by_custodian = false;
-  ExtensionSyncData::OptionalBoolean has_all_urls =
-      ExtensionSyncData::BOOLEAN_UNSET;
+  base::Optional<bool> has_all_urls;
   return ExtensionSyncData(
       extension, enabled, extensions::disable_reason::DISABLE_NONE,
       incognito_enabled, remote_install, has_all_urls, installed_by_custodian);
@@ -373,7 +371,7 @@
   // Then sync data arrives telling us to disable |good0|.
   ExtensionSyncData disable_good_crx(
       *extension, false, extensions::disable_reason::DISABLE_USER_ACTION, false,
-      false, ExtensionSyncData::BOOLEAN_UNSET, false);
+      false, base::nullopt, false);
   SyncChangeList list(
       1, disable_good_crx.GetSyncChange(SyncChange::ACTION_UPDATE));
   extension_sync_service()->ProcessSyncChanges(FROM_HERE, list);
@@ -567,10 +565,10 @@
   // Now sync data comes in that says to disable good0 and enable good2.
   ExtensionSyncData disable_good0(
       *extension0, false, extensions::disable_reason::DISABLE_USER_ACTION,
-      false, false, ExtensionSyncData::BOOLEAN_UNSET, false);
-  ExtensionSyncData enable_good2(
-      *extension2, true, extensions::disable_reason::DISABLE_NONE, false, false,
-      ExtensionSyncData::BOOLEAN_UNSET, false);
+      false, false, base::nullopt, false);
+  ExtensionSyncData enable_good2(*extension2, true,
+                                 extensions::disable_reason::DISABLE_NONE,
+                                 false, false, base::nullopt, false);
   syncer::SyncDataList sync_data;
   sync_data.push_back(disable_good0.GetSyncData());
   sync_data.push_back(enable_good2.GetSyncData());
@@ -620,9 +618,9 @@
     ASSERT_TRUE(extension);
 
     // Disable the extension.
-    ExtensionSyncData data(
-        *extension, false, extensions::disable_reason::DISABLE_USER_ACTION,
-        false, false, ExtensionSyncData::BOOLEAN_UNSET, false);
+    ExtensionSyncData data(*extension, false,
+                           extensions::disable_reason::DISABLE_USER_ACTION,
+                           false, false, base::nullopt, false);
     SyncChangeList list(1, data.GetSyncChange(SyncChange::ACTION_UPDATE));
 
     extension_sync_service()->ProcessSyncChanges(FROM_HERE, list);
@@ -637,7 +635,7 @@
     // Set incognito enabled to true.
     ExtensionSyncData data(*extension, false,
                            extensions::disable_reason::DISABLE_NONE, true,
-                           false, ExtensionSyncData::BOOLEAN_UNSET, false);
+                           false, base::nullopt, false);
     SyncChangeList list(1, data.GetSyncChange(SyncChange::ACTION_UPDATE));
 
     extension_sync_service()->ProcessSyncChanges(FROM_HERE, list);
@@ -654,7 +652,7 @@
         *extension, false,
         extensions::disable_reason::DISABLE_USER_ACTION |
             extensions::disable_reason::DISABLE_PERMISSIONS_INCREASE,
-        false, false, ExtensionSyncData::BOOLEAN_UNSET, false);
+        false, false, base::nullopt, false);
     SyncChangeList list(1, data.GetSyncChange(SyncChange::ACTION_UPDATE));
 
     extension_sync_service()->ProcessSyncChanges(FROM_HERE, list);
@@ -671,7 +669,7 @@
         *extension, false,
         extensions::disable_reason::DISABLE_USER_ACTION |
             extensions::disable_reason::DISABLE_PERMISSIONS_INCREASE,
-        false, false, ExtensionSyncData::BOOLEAN_UNSET, false);
+        false, false, base::nullopt, false);
     SyncChangeList list(1, data.GetSyncChange(SyncChange::ACTION_DELETE));
 
     extension_sync_service()->ProcessSyncChanges(FROM_HERE, list);
@@ -702,7 +700,7 @@
   EXPECT_EQ(service()->IsExtensionEnabled(good_crx), data->enabled());
   EXPECT_EQ(extensions::util::IsIncognitoEnabled(good_crx, profile()),
             data->incognito_enabled());
-  EXPECT_EQ(ExtensionSyncData::BOOLEAN_UNSET, data->all_urls_enabled());
+  EXPECT_EQ(base::nullopt, data->all_urls_enabled());
   EXPECT_EQ(data->version(), extension->version());
   EXPECT_EQ(extensions::ManifestURL::GetUpdateURL(extension),
             data->update_url());
@@ -810,7 +808,7 @@
   EXPECT_EQ(service()->IsExtensionEnabled(good_crx), data->enabled());
   EXPECT_EQ(extensions::util::IsIncognitoEnabled(good_crx, profile()),
             data->incognito_enabled());
-  EXPECT_EQ(ExtensionSyncData::BOOLEAN_UNSET, data->all_urls_enabled());
+  EXPECT_EQ(base::nullopt, data->all_urls_enabled());
   EXPECT_EQ(data->version(), extension->version());
   EXPECT_EQ(extensions::ManifestURL::GetUpdateURL(extension),
             data->update_url());
@@ -853,7 +851,7 @@
     ASSERT_TRUE(data.get());
     EXPECT_TRUE(data->enabled());
     EXPECT_FALSE(data->incognito_enabled());
-    EXPECT_EQ(ExtensionSyncData::BOOLEAN_UNSET, data->all_urls_enabled());
+    EXPECT_EQ(base::nullopt, data->all_urls_enabled());
   }
 
   service()->DisableExtension(good_crx,
@@ -867,7 +865,7 @@
     ASSERT_TRUE(data.get());
     EXPECT_FALSE(data->enabled());
     EXPECT_FALSE(data->incognito_enabled());
-    EXPECT_EQ(ExtensionSyncData::BOOLEAN_UNSET, data->all_urls_enabled());
+    EXPECT_EQ(base::nullopt, data->all_urls_enabled());
   }
 
   extensions::util::SetIsIncognitoEnabled(good_crx, profile(), true);
@@ -884,7 +882,7 @@
     ASSERT_TRUE(data.get());
     EXPECT_FALSE(data->enabled());
     EXPECT_TRUE(data->incognito_enabled());
-    EXPECT_EQ(ExtensionSyncData::BOOLEAN_FALSE, data->all_urls_enabled());
+    EXPECT_EQ(base::Optional<bool>(false), data->all_urls_enabled());
   }
 
   service()->EnableExtension(good_crx);
@@ -898,7 +896,7 @@
     ASSERT_TRUE(data.get());
     EXPECT_TRUE(data->enabled());
     EXPECT_TRUE(data->incognito_enabled());
-    EXPECT_EQ(ExtensionSyncData::BOOLEAN_TRUE, data->all_urls_enabled());
+    EXPECT_EQ(base::Optional<bool>(true), data->all_urls_enabled());
   }
 }
 
diff --git a/chrome/browser/extensions/extension_sync_data.cc b/chrome/browser/extensions/extension_sync_data.cc
index 7a1b924d..f6b4ed0 100644
--- a/chrome/browser/extensions/extension_sync_data.cc
+++ b/chrome/browser/extensions/extension_sync_data.cc
@@ -79,7 +79,6 @@
       disable_reasons_(disable_reason::DISABLE_NONE),
       incognito_enabled_(false),
       remote_install_(false),
-      all_urls_enabled_(BOOLEAN_UNSET),
       installed_by_custodian_(false),
       launch_type_(LAUNCH_TYPE_INVALID) {}
 
@@ -88,20 +87,25 @@
                                      int disable_reasons,
                                      bool incognito_enabled,
                                      bool remote_install,
-                                     OptionalBoolean all_urls_enabled,
+                                     base::Optional<bool> all_urls_enabled,
                                      bool installed_by_custodian)
-    : ExtensionSyncData(extension, enabled, disable_reasons, incognito_enabled,
-                        remote_install, all_urls_enabled,
-                        installed_by_custodian, StringOrdinal(),
-                        StringOrdinal(), LAUNCH_TYPE_INVALID) {
-}
+    : ExtensionSyncData(extension,
+                        enabled,
+                        disable_reasons,
+                        incognito_enabled,
+                        remote_install,
+                        all_urls_enabled,
+                        installed_by_custodian,
+                        StringOrdinal(),
+                        StringOrdinal(),
+                        LAUNCH_TYPE_INVALID) {}
 
 ExtensionSyncData::ExtensionSyncData(const Extension& extension,
                                      bool enabled,
                                      int disable_reasons,
                                      bool incognito_enabled,
                                      bool remote_install,
-                                     OptionalBoolean all_urls_enabled,
+                                     base::Optional<bool> all_urls_enabled,
                                      bool installed_by_custodian,
                                      const StringOrdinal& app_launch_ordinal,
                                      const StringOrdinal& page_ordinal,
@@ -192,8 +196,8 @@
     specifics->set_disable_reasons(disable_reasons_);
   specifics->set_incognito_enabled(incognito_enabled_);
   specifics->set_remote_install(remote_install_);
-  if (all_urls_enabled_ != BOOLEAN_UNSET)
-    specifics->set_all_urls_enabled(all_urls_enabled_ == BOOLEAN_TRUE);
+  if (all_urls_enabled_.has_value())
+    specifics->set_all_urls_enabled(*all_urls_enabled_);
   specifics->set_installed_by_custodian(installed_by_custodian_);
   specifics->set_name(name_);
 }
@@ -275,12 +279,11 @@
   disable_reasons_ = specifics.disable_reasons();
   incognito_enabled_ = specifics.incognito_enabled();
   if (specifics.has_all_urls_enabled()) {
-    all_urls_enabled_ =
-        specifics.all_urls_enabled() ? BOOLEAN_TRUE : BOOLEAN_FALSE;
+    all_urls_enabled_ = specifics.all_urls_enabled();
   } else {
     // Set this explicitly (even though it's the default) on the offchance
     // that someone is re-using an ExtensionSyncData object.
-    all_urls_enabled_ = BOOLEAN_UNSET;
+    all_urls_enabled_ = base::nullopt;
   }
   remote_install_ = specifics.remote_install();
   installed_by_custodian_ = specifics.installed_by_custodian();
diff --git a/chrome/browser/extensions/extension_sync_data.h b/chrome/browser/extensions/extension_sync_data.h
index 4c22da4..9a17b64 100644
--- a/chrome/browser/extensions/extension_sync_data.h
+++ b/chrome/browser/extensions/extension_sync_data.h
@@ -35,12 +35,6 @@
 // AppSpecifics itself includes an ExtensionSpecifics).
 class ExtensionSyncData {
  public:
-  enum OptionalBoolean {
-    BOOLEAN_UNSET,
-    BOOLEAN_TRUE,
-    BOOLEAN_FALSE
-  };
-
   struct LinkedAppIconInfo {
     LinkedAppIconInfo();
     ~LinkedAppIconInfo();
@@ -55,7 +49,7 @@
                     int disable_reasons,
                     bool incognito_enabled,
                     bool remote_install,
-                    OptionalBoolean all_urls_enabled,
+                    base::Optional<bool> all_urls_enabled,
                     bool installed_by_custodian);
   // App constructor.
   ExtensionSyncData(const Extension& extension,
@@ -63,7 +57,7 @@
                     int disable_reasons,
                     bool incognito_enabled,
                     bool remote_install,
-                    OptionalBoolean all_urls_enabled,
+                    base::Optional<bool> all_urls_enabled,
                     bool installed_by_custodian,
                     const syncer::StringOrdinal& app_launch_ordinal,
                     const syncer::StringOrdinal& page_ordinal,
@@ -96,7 +90,7 @@
   int disable_reasons() const { return disable_reasons_; }
   bool incognito_enabled() const { return incognito_enabled_; }
   bool remote_install() const { return remote_install_; }
-  OptionalBoolean all_urls_enabled() const { return all_urls_enabled_; }
+  base::Optional<bool> all_urls_enabled() const { return all_urls_enabled_; }
   bool installed_by_custodian() const { return installed_by_custodian_; }
 
   // Version-dependent properties (i.e., should be used only when the
@@ -162,7 +156,7 @@
   int disable_reasons_;
   bool incognito_enabled_;
   bool remote_install_;
-  OptionalBoolean all_urls_enabled_;
+  base::Optional<bool> all_urls_enabled_;
   bool installed_by_custodian_;
   base::Version version_;
   GURL update_url_;
diff --git a/chrome/browser/extensions/extension_sync_data_unittest.cc b/chrome/browser/extensions/extension_sync_data_unittest.cc
index 89065a3..a823bddc 100644
--- a/chrome/browser/extensions/extension_sync_data_unittest.cc
+++ b/chrome/browser/extensions/extension_sync_data_unittest.cc
@@ -117,8 +117,7 @@
   EXPECT_FALSE(extension_sync_data.enabled());
   EXPECT_EQ(true, extension_sync_data.incognito_enabled());
   EXPECT_FALSE(extension_sync_data.remote_install());
-  EXPECT_EQ(ExtensionSyncData::BOOLEAN_TRUE,
-            extension_sync_data.all_urls_enabled());
+  EXPECT_EQ(base::Optional<bool>(true), extension_sync_data.all_urls_enabled());
   EXPECT_EQ(base::Version(kVersion), extension_sync_data.version());
   EXPECT_EQ(std::string(kName), extension_sync_data.name());
 
@@ -133,7 +132,7 @@
   ProtobufToSyncDataEqual(entity);
 
   extension_sync_data.PopulateFromExtensionSpecifics(*extension_specifics);
-  EXPECT_EQ(ExtensionSyncData::BOOLEAN_FALSE,
+  EXPECT_EQ(base::Optional<bool>(false),
             extension_sync_data.all_urls_enabled());
   EXPECT_FALSE(extension_sync_data.incognito_enabled());
 
@@ -144,8 +143,7 @@
 
   extension_sync_data.PopulateFromExtensionSpecifics(*extension_specifics);
   EXPECT_FALSE(extension_specifics->has_all_urls_enabled());
-  EXPECT_EQ(ExtensionSyncData::BOOLEAN_UNSET,
-            extension_sync_data.all_urls_enabled());
+  EXPECT_FALSE(extension_sync_data.all_urls_enabled().has_value());
 
   SyncDataToProtobufEqual(extension_sync_data);
 }
diff --git a/chrome/browser/extensions/extension_sync_service.cc b/chrome/browser/extensions/extension_sync_service.cc
index 5b011f1..9784710 100644
--- a/chrome/browser/extensions/extension_sync_service.cc
+++ b/chrome/browser/extensions/extension_sync_service.cc
@@ -52,7 +52,7 @@
 namespace {
 
 // Returns the pref value for "all urls enabled" for the given extension id.
-ExtensionSyncData::OptionalBoolean GetAllowedOnAllUrlsOptionalBoolean(
+base::Optional<bool> GetAllowedOnAllUrlsValue(
     const Extension& extension,
     content::BrowserContext* context) {
   extensions::ScriptingPermissionsModifier permissions_modifier(context,
@@ -61,14 +61,14 @@
   // If the extension is not allowed on all urls (which is not the default),
   // then we have to sync the preference.
   if (!allowed_on_all_urls)
-    return ExtensionSyncData::BOOLEAN_FALSE;
+    return false;
 
   // If the user has explicitly set a value, then we sync it.
   if (permissions_modifier.HasSetAllowedOnAllUrls())
-    return ExtensionSyncData::BOOLEAN_TRUE;
+    return true;
 
   // Otherwise, unset.
-  return ExtensionSyncData::BOOLEAN_UNSET;
+  return base::nullopt;
 }
 
 // Returns true if the sync type of |extension| matches |type|.
@@ -271,8 +271,8 @@
   bool incognito_enabled = extensions::util::IsIncognitoEnabled(id, profile_);
   bool remote_install = extension_prefs->HasDisableReason(
       id, extensions::disable_reason::DISABLE_REMOTE_INSTALL);
-  ExtensionSyncData::OptionalBoolean allowed_on_all_url =
-      GetAllowedOnAllUrlsOptionalBoolean(extension, profile_);
+  base::Optional<bool> allowed_on_all_url =
+      GetAllowedOnAllUrlsValue(extension, profile_);
   bool installed_by_custodian =
       extensions::util::WasInstalledByCustodian(id, profile_);
   AppSorting* app_sorting = ExtensionSystem::Get(profile_)->app_sorting();
@@ -482,10 +482,8 @@
   extension = nullptr;  // No longer safe to use.
 
   // Update the all urls flag.
-  if (extension_sync_data.all_urls_enabled() !=
-          ExtensionSyncData::BOOLEAN_UNSET) {
-    bool allowed = extension_sync_data.all_urls_enabled() ==
-                   ExtensionSyncData::BOOLEAN_TRUE;
+  if (extension_sync_data.all_urls_enabled().has_value()) {
+    bool allowed = *extension_sync_data.all_urls_enabled();
     extensions::ScriptingPermissionsModifier::SetAllowedOnAllUrlsForSync(
         allowed, profile_, id);
   }