[iOS] Move the terms helper to the util folder

This CL moves the terms helper to the util folder as it only contains
one method.

Bug: 944008
Change-Id: I901a34bdd995b0fa02295455286786135faf7216
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1551781
Auto-Submit: Gauthier Ambard <[email protected]>
Reviewed-by: Mark Cogan <[email protected]>
Commit-Queue: Gauthier Ambard <[email protected]>
Cr-Commit-Position: refs/heads/master@{#647669}
diff --git a/ios/chrome/browser/ui/BUILD.gn b/ios/chrome/browser/ui/BUILD.gn
index 2b4f38a..6a4f18c 100644
--- a/ios/chrome/browser/ui/BUILD.gn
+++ b/ios/chrome/browser/ui/BUILD.gn
@@ -8,8 +8,6 @@
   sources = [
     "chrome_load_params.h",
     "chrome_load_params.mm",
-    "file_locations.h",
-    "file_locations.mm",
     "native_content_controller.h",
     "native_content_controller.mm",
     "prerender_final_status.h",
@@ -21,7 +19,6 @@
     "//ios/chrome/common/ui_util",
   ]
   deps = [
-    ":resources",
     "//base",
     "//base:i18n",
     "//components/sessions",
@@ -59,7 +56,6 @@
   configs += [ "//build/config/compiler:enable_arc" ]
   testonly = true
   sources = [
-    "file_locations_unittest.mm",
     "native_content_controller_unittest.mm",
     "network_activity_indicator_manager_unittest.mm",
   ]
@@ -125,69 +121,6 @@
   source = "native_content_controller_test.xib"
 }
 
-bundle_data("resources") {
-  sources = [
-    # On iOS, the terms of service file need to be loaded from the application
-    # bundle, not from a datapack. As GetTermsOfServicePath() returns path to
-    # those files, they are added to //ios/chrome/browser/ui:resources.
-    "//components/resources/terms/terms_am.html",
-    "//components/resources/terms/terms_ar.html",
-    "//components/resources/terms/terms_bg.html",
-    "//components/resources/terms/terms_bn.html",
-    "//components/resources/terms/terms_ca.html",
-    "//components/resources/terms/terms_cs.html",
-    "//components/resources/terms/terms_da.html",
-    "//components/resources/terms/terms_de.html",
-    "//components/resources/terms/terms_el.html",
-    "//components/resources/terms/terms_en-GB.html",
-    "//components/resources/terms/terms_en.html",
-    "//components/resources/terms/terms_es-419.html",
-    "//components/resources/terms/terms_es.html",
-    "//components/resources/terms/terms_et.html",
-    "//components/resources/terms/terms_fa.html",
-    "//components/resources/terms/terms_fi.html",
-    "//components/resources/terms/terms_fil.html",
-    "//components/resources/terms/terms_fr.html",
-    "//components/resources/terms/terms_gu.html",
-    "//components/resources/terms/terms_he.html",
-    "//components/resources/terms/terms_hi.html",
-    "//components/resources/terms/terms_hr.html",
-    "//components/resources/terms/terms_hu.html",
-    "//components/resources/terms/terms_id.html",
-    "//components/resources/terms/terms_it.html",
-    "//components/resources/terms/terms_ja.html",
-    "//components/resources/terms/terms_kn.html",
-    "//components/resources/terms/terms_ko.html",
-    "//components/resources/terms/terms_lt.html",
-    "//components/resources/terms/terms_lv.html",
-    "//components/resources/terms/terms_ml.html",
-    "//components/resources/terms/terms_mr.html",
-    "//components/resources/terms/terms_nb.html",
-    "//components/resources/terms/terms_nl.html",
-    "//components/resources/terms/terms_pl.html",
-    "//components/resources/terms/terms_pt-BR.html",
-    "//components/resources/terms/terms_pt-PT.html",
-    "//components/resources/terms/terms_ro.html",
-    "//components/resources/terms/terms_ru.html",
-    "//components/resources/terms/terms_sk.html",
-    "//components/resources/terms/terms_sl.html",
-    "//components/resources/terms/terms_sr.html",
-    "//components/resources/terms/terms_sv.html",
-    "//components/resources/terms/terms_sw.html",
-    "//components/resources/terms/terms_ta.html",
-    "//components/resources/terms/terms_te.html",
-    "//components/resources/terms/terms_th.html",
-    "//components/resources/terms/terms_tr.html",
-    "//components/resources/terms/terms_uk.html",
-    "//components/resources/terms/terms_vi.html",
-    "//components/resources/terms/terms_zh-CN.html",
-    "//components/resources/terms/terms_zh-TW.html",
-  ]
-  outputs = [
-    "{{bundle_resources_dir}}/{{source_file_part}}",
-  ]
-}
-
 bundle_data("resources_unit_tests") {
   visibility = [ ":unit_tests" ]
   testonly = true
diff --git a/ios/chrome/browser/ui/first_run/BUILD.gn b/ios/chrome/browser/ui/first_run/BUILD.gn
index 3748052..ea141d7 100644
--- a/ios/chrome/browser/ui/first_run/BUILD.gn
+++ b/ios/chrome/browser/ui/first_run/BUILD.gn
@@ -45,6 +45,7 @@
     "//ios/chrome/browser/ui/settings/sync/utils",
     "//ios/chrome/browser/ui/settings/utils",
     "//ios/chrome/browser/ui/util",
+    "//ios/chrome/browser/ui/util:terms_util",
     "//ios/chrome/common",
     "//ios/public/provider/chrome/browser",
     "//ios/public/provider/chrome/browser/signin",
diff --git a/ios/chrome/browser/ui/first_run/welcome_to_chrome_view_controller.mm b/ios/chrome/browser/ui/first_run/welcome_to_chrome_view_controller.mm
index 92177bcb..c0ee239 100644
--- a/ios/chrome/browser/ui/first_run/welcome_to_chrome_view_controller.mm
+++ b/ios/chrome/browser/ui/first_run/welcome_to_chrome_view_controller.mm
@@ -20,11 +20,11 @@
 #include "ios/chrome/browser/first_run/first_run_configuration.h"
 #include "ios/chrome/browser/tabs/tab_model.h"
 #include "ios/chrome/browser/ui/fancy_ui/primary_action_button.h"
-#include "ios/chrome/browser/ui/file_locations.h"
 #import "ios/chrome/browser/ui/first_run/first_run_chrome_signin_view_controller.h"
 #include "ios/chrome/browser/ui/first_run/first_run_util.h"
 #include "ios/chrome/browser/ui/first_run/static_file_view_controller.h"
 #import "ios/chrome/browser/ui/first_run/welcome_to_chrome_view.h"
+#include "ios/chrome/browser/ui/util/terms_util.h"
 #include "ios/chrome/browser/ui/util/ui_util.h"
 #import "ios/chrome/browser/ui/util/uikit_ui_util.h"
 #include "ios/chrome/common/string_util.h"
diff --git a/ios/chrome/browser/ui/util/BUILD.gn b/ios/chrome/browser/ui/util/BUILD.gn
index 98a3656c..a50e7bb 100644
--- a/ios/chrome/browser/ui/util/BUILD.gn
+++ b/ios/chrome/browser/ui/util/BUILD.gn
@@ -81,6 +81,19 @@
   ]
 }
 
+source_set("terms_util") {
+  configs += [ "//build/config/compiler:enable_arc" ]
+  sources = [
+    "terms_util.h",
+    "terms_util.mm",
+  ]
+  deps = [
+    ":terms_resources",
+    "//base",
+    "//ios/chrome/browser",
+  ]
+}
+
 source_set("unit_tests") {
   configs += [ "//build/config/compiler:enable_arc" ]
   testonly = true
@@ -94,11 +107,13 @@
     "manual_text_framer_unittest.mm",
     "named_guide_unittest.mm",
     "optional_property_animator_unittest.mm",
+    "terms_util_unittest.mm",
     "text_region_mapper_unittest.mm",
     "ui_util_unittest.mm",
     "uikit_ui_util_unittest.mm",
   ]
   deps = [
+    ":terms_util",
     ":util",
     "//base",
     "//ios/third_party/material_components_ios",
@@ -108,3 +123,66 @@
     "//url",
   ]
 }
+
+bundle_data("terms_resources") {
+  sources = [
+    # On iOS, the terms of service file need to be loaded from the application
+    # bundle, not from a datapack. As GetTermsOfServicePath() returns path to
+    # those files, they are added to //ios/chrome/browser/ui/util:terms_resources.
+    "//components/resources/terms/terms_am.html",
+    "//components/resources/terms/terms_ar.html",
+    "//components/resources/terms/terms_bg.html",
+    "//components/resources/terms/terms_bn.html",
+    "//components/resources/terms/terms_ca.html",
+    "//components/resources/terms/terms_cs.html",
+    "//components/resources/terms/terms_da.html",
+    "//components/resources/terms/terms_de.html",
+    "//components/resources/terms/terms_el.html",
+    "//components/resources/terms/terms_en-GB.html",
+    "//components/resources/terms/terms_en.html",
+    "//components/resources/terms/terms_es-419.html",
+    "//components/resources/terms/terms_es.html",
+    "//components/resources/terms/terms_et.html",
+    "//components/resources/terms/terms_fa.html",
+    "//components/resources/terms/terms_fi.html",
+    "//components/resources/terms/terms_fil.html",
+    "//components/resources/terms/terms_fr.html",
+    "//components/resources/terms/terms_gu.html",
+    "//components/resources/terms/terms_he.html",
+    "//components/resources/terms/terms_hi.html",
+    "//components/resources/terms/terms_hr.html",
+    "//components/resources/terms/terms_hu.html",
+    "//components/resources/terms/terms_id.html",
+    "//components/resources/terms/terms_it.html",
+    "//components/resources/terms/terms_ja.html",
+    "//components/resources/terms/terms_kn.html",
+    "//components/resources/terms/terms_ko.html",
+    "//components/resources/terms/terms_lt.html",
+    "//components/resources/terms/terms_lv.html",
+    "//components/resources/terms/terms_ml.html",
+    "//components/resources/terms/terms_mr.html",
+    "//components/resources/terms/terms_nb.html",
+    "//components/resources/terms/terms_nl.html",
+    "//components/resources/terms/terms_pl.html",
+    "//components/resources/terms/terms_pt-BR.html",
+    "//components/resources/terms/terms_pt-PT.html",
+    "//components/resources/terms/terms_ro.html",
+    "//components/resources/terms/terms_ru.html",
+    "//components/resources/terms/terms_sk.html",
+    "//components/resources/terms/terms_sl.html",
+    "//components/resources/terms/terms_sr.html",
+    "//components/resources/terms/terms_sv.html",
+    "//components/resources/terms/terms_sw.html",
+    "//components/resources/terms/terms_ta.html",
+    "//components/resources/terms/terms_te.html",
+    "//components/resources/terms/terms_th.html",
+    "//components/resources/terms/terms_tr.html",
+    "//components/resources/terms/terms_uk.html",
+    "//components/resources/terms/terms_vi.html",
+    "//components/resources/terms/terms_zh-CN.html",
+    "//components/resources/terms/terms_zh-TW.html",
+  ]
+  outputs = [
+    "{{bundle_resources_dir}}/{{source_file_part}}",
+  ]
+}
diff --git a/ios/chrome/browser/ui/file_locations.h b/ios/chrome/browser/ui/util/terms_util.h
similarity index 67%
rename from ios/chrome/browser/ui/file_locations.h
rename to ios/chrome/browser/ui/util/terms_util.h
index ddba28e..25fd69db 100644
--- a/ios/chrome/browser/ui/file_locations.h
+++ b/ios/chrome/browser/ui/util/terms_util.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef IOS_CHROME_BROWSER_UI_FILE_LOCATIONS_H_
-#define IOS_CHROME_BROWSER_UI_FILE_LOCATIONS_H_
+#ifndef IOS_CHROME_BROWSER_UI_UTIL_TERMS_UTIL_H_
+#define IOS_CHROME_BROWSER_UI_UTIL_TERMS_UTIL_H_
 
 #include <string>
 
@@ -11,4 +11,4 @@
 // locale.
 std::string GetTermsOfServicePath();
 
-#endif  // IOS_CHROME_BROWSER_UI_FILE_LOCATIONS_H_
+#endif  // IOS_CHROME_BROWSER_UI_UTIL_TERMS_UTIL_H_
diff --git a/ios/chrome/browser/ui/file_locations.mm b/ios/chrome/browser/ui/util/terms_util.mm
similarity index 97%
rename from ios/chrome/browser/ui/file_locations.mm
rename to ios/chrome/browser/ui/util/terms_util.mm
index 21e87e37..7233897 100644
--- a/ios/chrome/browser/ui/file_locations.mm
+++ b/ios/chrome/browser/ui/util/terms_util.mm
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "ios/chrome/browser/ui/file_locations.h"
+#include "ios/chrome/browser/ui/util/terms_util.h"
 
 #include "base/mac/bundle_locations.h"
 #include "base/mac/foundation_util.h"
diff --git a/ios/chrome/browser/ui/file_locations_unittest.mm b/ios/chrome/browser/ui/util/terms_util_unittest.mm
similarity index 98%
rename from ios/chrome/browser/ui/file_locations_unittest.mm
rename to ios/chrome/browser/ui/util/terms_util_unittest.mm
index d983f60..4cd2e15 100644
--- a/ios/chrome/browser/ui/file_locations_unittest.mm
+++ b/ios/chrome/browser/ui/util/terms_util_unittest.mm
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "ios/chrome/browser/ui/file_locations.h"
+#include "ios/chrome/browser/ui/util/terms_util.h"
 
 #include "base/mac/foundation_util.h"
 #include "base/strings/sys_string_conversions.h"
diff --git a/ios/chrome/browser/ui/webui/BUILD.gn b/ios/chrome/browser/ui/webui/BUILD.gn
index 8ab4e77..02a25b712 100644
--- a/ios/chrome/browser/ui/webui/BUILD.gn
+++ b/ios/chrome/browser/ui/webui/BUILD.gn
@@ -64,6 +64,7 @@
     "//ios/chrome/browser/suggestions",
     "//ios/chrome/browser/tabs",
     "//ios/chrome/browser/ui",
+    "//ios/chrome/browser/ui/util:terms_util",
     "//ios/chrome/browser/web:java_script_console",
     "//ios/chrome/browser/web_state_list",
     "//ios/chrome/common",
diff --git a/ios/chrome/browser/ui/webui/terms_ui.mm b/ios/chrome/browser/ui/webui/terms_ui.mm
index 819189ae..b19c0aa 100644
--- a/ios/chrome/browser/ui/webui/terms_ui.mm
+++ b/ios/chrome/browser/ui/webui/terms_ui.mm
@@ -10,7 +10,7 @@
 #include "base/memory/ref_counted_memory.h"
 #import "base/strings/sys_string_conversions.h"
 #include "ios/chrome/browser/browser_state/chrome_browser_state.h"
-#include "ios/chrome/browser/ui/file_locations.h"
+#include "ios/chrome/browser/ui/util/terms_util.h"
 #include "ios/web/public/url_data_source_ios.h"
 #include "ios/web/public/webui/web_ui_ios.h"