[CrOS Cellular] Make url.mojom-lite.js a shared resource.

This CL shares url.mojom-lite.js from chrome://resources and updates
relevant clients to refer to the shared resource instead of packaging
the resource individually for each page.

This is in preparation for utilizing url.mojom-lite.js in the cellular
activation dialog.

Bug: 953400
Change-Id: Ifd18cf7598d426fbe3deba87760d5d4f80008ccb
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1570253
Reviewed-by: Nasko Oskov <[email protected]>
Reviewed-by: calamity <[email protected]>
Commit-Queue: Kyle Horimoto <[email protected]>
Auto-Submit: Kyle Horimoto <[email protected]>
Cr-Commit-Position: refs/heads/master@{#653032}
diff --git a/chrome/browser/resources/engagement/site_engagement.html b/chrome/browser/resources/engagement/site_engagement.html
index 987a38b..1b890ccb 100644
--- a/chrome/browser/resources/engagement/site_engagement.html
+++ b/chrome/browser/resources/engagement/site_engagement.html
@@ -4,8 +4,8 @@
   <meta charset="utf-8">
   <link rel="stylesheet" href="chrome://resources/css/text_defaults.css">
   <script src="chrome://resources/js/mojo_bindings_lite.js"></script>
+  <script src="chrome://resources/js/url.mojom-lite.js"></script>
   <script src="chrome://resources/js/util.js"></script>
-  <script src="url/mojom/url.mojom-lite.js"></script>
   <script src="chrome/browser/engagement/site_engagement_details.mojom-lite.js">
   </script>
   <script src="chrome://site-engagement/site_engagement.js"></script>
diff --git a/chrome/browser/resources/feed_internals/feed_internals.html b/chrome/browser/resources/feed_internals/feed_internals.html
index 78054e8..0c385da 100644
--- a/chrome/browser/resources/feed_internals/feed_internals.html
+++ b/chrome/browser/resources/feed_internals/feed_internals.html
@@ -16,8 +16,8 @@
   <link rel="stylesheet" href="feed_internals.css">
 
   <script src="chrome://resources/js/mojo_bindings_lite.js"></script>
+  <script src="chrome://resources/js/url.mojom-lite.js"></script>
   <script src="chrome://resources/js/util.js"></script>
-  <script src="url/mojom/url.mojom-lite.js"></script>
   <script src="feed_internals.mojom-lite.js"></script>
 
   <script src="feed_internals.js"></script>
diff --git a/chrome/browser/resources/interventions_internals/index.html b/chrome/browser/resources/interventions_internals/index.html
index 614054d..21885f2 100644
--- a/chrome/browser/resources/interventions_internals/index.html
+++ b/chrome/browser/resources/interventions_internals/index.html
@@ -6,8 +6,8 @@
     <title>Interventions-Internals</title>
     <script src="chrome://resources/js/cr.js"></script>
     <script src="chrome://resources/js/mojo_bindings_lite.js"></script>
+    <script src="chrome://resources/js/url.mojom-lite.js"></script>
     <script src="chrome://resources/js/util.js"></script>
-    <script src="url/mojom/url.mojom-lite.js"></script>
     <script src="chrome/browser/ui/webui/interventions_internals/interventions_internals.mojom-lite.js">
     </script>
     <script src="index.js"></script>
diff --git a/chrome/browser/resources/media/media_engagement.html b/chrome/browser/resources/media/media_engagement.html
index 01a66286..3197c79 100644
--- a/chrome/browser/resources/media/media_engagement.html
+++ b/chrome/browser/resources/media/media_engagement.html
@@ -6,9 +6,9 @@
   <link rel="stylesheet" href="chrome://resources/css/text_defaults.css">
   <script src="chrome://resources/js/mojo_bindings_lite.js"></script>
   <script src="chrome://resources/js/promise_resolver.js"></script>
+  <script src="chrome://resources/js/url.mojom-lite.js"></script>
   <script src="chrome://resources/js/util.js"></script>
 
-  <script src="url/mojom/url.mojom-lite.js"></script>
   <script src="chrome/browser/media/media_engagement_score_details.mojom-lite.js">
   </script>
 
diff --git a/chrome/browser/resources/usb_internals/usb_internals.html b/chrome/browser/resources/usb_internals/usb_internals.html
index e809c6a2..ddc0fdb 100644
--- a/chrome/browser/resources/usb_internals/usb_internals.html
+++ b/chrome/browser/resources/usb_internals/usb_internals.html
@@ -21,8 +21,8 @@
   <script src="chrome://resources/js/big_buffer.mojom-lite.js"></script>
   <script src="chrome://resources/js/file.mojom-lite.js"></script>
   <script src="chrome://resources/js/string16.mojom-lite.js"></script>
+  <script src="chrome://resources/js/url.mojom-lite.js"></script>
 
-  <script src="url.mojom-lite.js"></script>
   <script src="device.mojom-lite.js"></script>
   <script src="device_manager_client.mojom-lite.js"></script>
   <script src="device_enumeration_options.mojom-lite.js"></script>
diff --git a/chrome/browser/ui/webui/engagement/site_engagement_ui.cc b/chrome/browser/ui/webui/engagement/site_engagement_ui.cc
index 9f75a1c..be6315e 100644
--- a/chrome/browser/ui/webui/engagement/site_engagement_ui.cc
+++ b/chrome/browser/ui/webui/engagement/site_engagement_ui.cc
@@ -86,7 +86,6 @@
   source->AddResourcePath(
       "chrome/browser/engagement/site_engagement_details.mojom-lite.js",
       IDR_SITE_ENGAGEMENT_DETAILS_MOJOM_LITE_JS);
-  source->AddResourcePath("url/mojom/url.mojom-lite.js", IDR_URL_MOJOM_LITE_JS);
   source->SetDefaultResource(IDR_SITE_ENGAGEMENT_HTML);
   source->UseGzip();
   content::WebUIDataSource::Add(Profile::FromWebUI(web_ui), source.release());
diff --git a/chrome/browser/ui/webui/feed_internals/feed_internals_ui.cc b/chrome/browser/ui/webui/feed_internals/feed_internals_ui.cc
index ab18f72b..32658cd 100644
--- a/chrome/browser/ui/webui/feed_internals/feed_internals_ui.cc
+++ b/chrome/browser/ui/webui/feed_internals/feed_internals_ui.cc
@@ -22,7 +22,6 @@
   source->AddResourcePath("feed_internals.js", IDR_FEED_INTERNALS_JS);
   source->AddResourcePath("feed_internals.mojom-lite.js",
                           IDR_FEED_INTERNALS_MOJO_JS);
-  source->AddResourcePath("url/mojom/url.mojom-lite.js", IDR_URL_MOJOM_LITE_JS);
   source->AddResourcePath("feed_internals.css", IDR_FEED_INTERNALS_CSS);
   source->SetDefaultResource(IDR_FEED_INTERNALS_HTML);
   source->UseGzip();
diff --git a/chrome/browser/ui/webui/interventions_internals/interventions_internals_ui.cc b/chrome/browser/ui/webui/interventions_internals/interventions_internals_ui.cc
index 3a141d96..08dad31 100644
--- a/chrome/browser/ui/webui/interventions_internals/interventions_internals_ui.cc
+++ b/chrome/browser/ui/webui/interventions_internals/interventions_internals_ui.cc
@@ -27,7 +27,6 @@
       "chrome/browser/ui/webui/interventions_internals/"
       "interventions_internals.mojom-lite.js",
       IDR_INTERVENTIONS_INTERNALS_MOJOM_LITE_JS);
-  source->AddResourcePath("url/mojom/url.mojom-lite.js", IDR_URL_MOJOM_LITE_JS);
   source->SetDefaultResource(IDR_INTERVENTIONS_INTERNALS_INDEX_HTML);
   source->UseGzip();
   return source;
diff --git a/chrome/browser/ui/webui/media/media_engagement_ui.cc b/chrome/browser/ui/webui/media/media_engagement_ui.cc
index 63baadb..500264f 100644
--- a/chrome/browser/ui/webui/media/media_engagement_ui.cc
+++ b/chrome/browser/ui/webui/media/media_engagement_ui.cc
@@ -145,7 +145,6 @@
   source->AddResourcePath(
       "chrome/browser/media/media_engagement_score_details.mojom-lite.js",
       IDR_MEDIA_ENGAGEMENT_SCORE_DETAILS_MOJOM_LITE_JS);
-  source->AddResourcePath("url/mojom/url.mojom-lite.js", IDR_URL_MOJOM_LITE_JS);
   source->SetDefaultResource(IDR_MEDIA_ENGAGEMENT_HTML);
   source->UseGzip();
   content::WebUIDataSource::Add(Profile::FromWebUI(web_ui), source.release());
diff --git a/chrome/browser/ui/webui/usb_internals/usb_internals_ui.cc b/chrome/browser/ui/webui/usb_internals/usb_internals_ui.cc
index 5f4916c..ec99018 100644
--- a/chrome/browser/ui/webui/usb_internals/usb_internals_ui.cc
+++ b/chrome/browser/ui/webui/usb_internals/usb_internals_ui.cc
@@ -33,7 +33,6 @@
                           IDR_USB_DEVICE_MANAGER_CLIENT_MOJOM_LITE_JS);
   source->AddResourcePath("device_manager_test.mojom-lite.js",
                           IDR_USB_DEVICE_MANAGER_TEST_MOJOM_LITE_JS);
-  source->AddResourcePath("url.mojom-lite.js", IDR_URL_MOJOM_LITE_JS);
 
   source->SetDefaultResource(IDR_USB_INTERNALS_HTML);
   source->UseGzip();
diff --git a/content/BUILD.gn b/content/BUILD.gn
index 594b6d4..170eb3e 100644
--- a/content/BUILD.gn
+++ b/content/BUILD.gn
@@ -116,6 +116,8 @@
 
   outputs = [
     "grit/content_resources.h",
+    "grit/content_resources_map.cc",
+    "grit/content_resources_map.h",
     "content_resources.pak",
   ]
   grit_flags = [
diff --git a/content/browser/process_internals/process_internals_ui.cc b/content/browser/process_internals/process_internals_ui.cc
index 762b9f1..18fbb8d 100644
--- a/content/browser/process_internals/process_internals_ui.cc
+++ b/content/browser/process_internals/process_internals_ui.cc
@@ -35,7 +35,6 @@
   WebUIDataSource* source =
       WebUIDataSource::Create(kChromeUIProcessInternalsHost);
 
-  source->AddResourcePath("url.mojom-lite.js", IDR_URL_MOJO_JS);
   source->AddResourcePath("process_internals.js", IDR_PROCESS_INTERNALS_JS);
   source->AddResourcePath("process_internals.css", IDR_PROCESS_INTERNALS_CSS);
   source->AddResourcePath("process_internals.mojom-lite.js",
diff --git a/content/browser/resources/process/process_internals.html b/content/browser/resources/process/process_internals.html
index d5afec1..01ac075 100644
--- a/content/browser/resources/process/process_internals.html
+++ b/content/browser/resources/process/process_internals.html
@@ -9,13 +9,13 @@
   <script src="chrome://resources/js/util.js"></script>
   <script src="chrome://resources/js/cr.js"></script>
   <script src="chrome://resources/js/mojo_bindings_lite.js"></script>
+  <script src="chrome://resources/js/url.mojom-lite.js"></script>
 
   <link rel="stylesheet" href="chrome://resources/css/tree.css">
   <script src="chrome://resources/js/cr/ui.js"></script>
   <script src="chrome://resources/js/cr/ui/tree.js"></script>
 
   <link rel="stylesheet" href="process_internals.css">
-  <script src="url.mojom-lite.js"></script>
   <script src="process_internals.mojom-lite.js"></script>
   <script src='process_internals.js'></script>
   <title>Process Model Internals</title>
diff --git a/content/browser/webui/shared_resources_data_source.cc b/content/browser/webui/shared_resources_data_source.cc
index 4d99ada9..5982744 100644
--- a/content/browser/webui/shared_resources_data_source.cc
+++ b/content/browser/webui/shared_resources_data_source.cc
@@ -15,6 +15,8 @@
 #include "base/strings/string_util.h"
 #include "base/task/post_task.h"
 #include "build/build_config.h"
+#include "content/grit/content_resources.h"
+#include "content/grit/content_resources_map.h"
 #include "content/public/browser/browser_task_traits.h"
 #include "content/public/browser/browser_thread.h"
 #include "content/public/browser/web_contents.h"
@@ -95,6 +97,12 @@
   return aliases;
 }
 
+const std::map<int, std::string> CreateContentResourceIdToAliasMap() {
+  return std::map<int, std::string>{
+      {IDR_URL_MOJO_JS, "js/url.mojom-lite.js"},
+  };
+}
+
 const std::map<int, std::string> CreateMojoResourceIdToAliasMap() {
   return std::map<int, std::string> {
     {IDR_MOJO_MOJO_BINDINGS_LITE_JS, "js/mojo_bindings_lite.js"},
@@ -213,6 +221,8 @@
 const ResourcesMap* CreateResourcesMap() {
   ResourcesMap* result = new ResourcesMap();
   AddResourcesToMap(result);
+  AddAliasedResourcesToMap(CreateContentResourceIdToAliasMap(),
+                           kContentResources, kContentResourcesSize, result);
   AddAliasedResourcesToMap(CreateMojoResourceIdToAliasMap(),
                            kMojoBindingsResources, kMojoBindingsResourcesSize,
                            result);
diff --git a/content/content_resources.grd b/content/content_resources.grd
index 1a7f095..632e4fd 100644
--- a/content/content_resources.grd
+++ b/content/content_resources.grd
@@ -5,6 +5,10 @@
     <output filename="grit/content_resources.h" type="rc_header">
       <emit emit_type='prepend'></emit>
     </output>
+    <output filename="grit/content_resources_map.h"
+        type="gzipped_resource_map_header" />
+    <output filename="grit/content_resources_map.cc"
+        type="gzipped_resource_map_source" />
     <output filename="content_resources.pak" type="data_package" />
   </outputs>
   <translations />
@@ -26,7 +30,7 @@
       <include name="IDR_INDEXED_DB_INTERNALS_CSS" file="browser/resources/indexed_db/indexeddb_internals.css" flattenhtml="true" compress="gzip" type="BINDATA" />
       <include name="IDR_MEDIA_INTERNALS_HTML" file="browser/resources/media/media_internals.html" flattenhtml="true" allowexternalscript="true" compress="gzip" type="BINDATA" />
       <include name="IDR_MEDIA_INTERNALS_JS" file="browser/resources/media/media_internals.js" flattenhtml="true" compress="gzip" type="BINDATA" />
-      <include name="IDR_NETWORK_ERROR_LISTING_HTML" file="browser/resources/net/network_errors_listing.html" flattenhtml="true" allowexternalscript="true" type="BINDATA" />
+      <include name="IDR_NETWORK_ERROR_LISTING_HTML" file="browser/resources/net/network_errors_listing.html" flattenhtml="true" allowexternalscript="true" compress="gzip" type="BINDATA" />
       <include name="IDR_NETWORK_ERROR_LISTING_JS" file="browser/resources/net/network_errors_listing.js" flattenhtml="true" type="BINDATA" />
       <include name="IDR_NETWORK_ERROR_LISTING_CSS" file="browser/resources/net/network_errors_listing.css" flattenhtml="true" type="BINDATA" />
       <include name="IDR_PROCESS_INTERNALS_HTML" file="browser/resources/process/process_internals.html" flattenhtml="true" allowexternalscript="true" compress="gzip" type="BINDATA" />