Gzip WebUI resources for many pages

The resource pack is not compressed in the Chrome APK and so any WebUI
resources we can serve gzipped will have a direct impact on the size of
the binary. This change does not gzip all the resources but does so for
a good number of them, resulting in at least 143 kB of savings. I have
manually tested that the affected pages appear unaffected by this
change.

Bug: None
Cq-Include-Trybots: master.tryserver.chromium.linux:closure_compilation
Change-Id: Ic1c7d878644539ca887a9fb393c1fd0cdacea866
Reviewed-on: https://chromium-review.googlesource.com/745302
Reviewed-by: Bernhard Bauer <[email protected]>
Reviewed-by: Mike Pinkerton <[email protected]>
Commit-Queue: Reilly Grant <[email protected]>
Cr-Commit-Position: refs/heads/master@{#514699}
diff --git a/chrome/browser/ui/webui/components_ui.cc b/chrome/browser/ui/webui/components_ui.cc
index 03550e1..e58f4c5 100644
--- a/chrome/browser/ui/webui/components_ui.cc
+++ b/chrome/browser/ui/webui/components_ui.cc
@@ -63,6 +63,7 @@
   source->SetJsonPath("strings.js");
   source->AddResourcePath("components.js", IDR_COMPONENTS_JS);
   source->SetDefaultResource(IDR_COMPONENTS_HTML);
+  source->UseGzip();
   return source;
 }
 
diff --git a/chrome/browser/ui/webui/crashes_ui.cc b/chrome/browser/ui/webui/crashes_ui.cc
index 5c5a6ba2..eb0ec00 100644
--- a/chrome/browser/ui/webui/crashes_ui.cc
+++ b/chrome/browser/ui/webui/crashes_ui.cc
@@ -56,6 +56,7 @@
   source->SetJsonPath("strings.js");
   source->AddResourcePath(crash::kCrashesUICrashesJS, IDR_CRASH_CRASHES_JS);
   source->SetDefaultResource(IDR_CRASH_CRASHES_HTML);
+  source->UseGzip();
   return source;
 }
 
diff --git a/chrome/browser/ui/webui/device_log_ui.cc b/chrome/browser/ui/webui/device_log_ui.cc
index 68a260d..dff2baa 100644
--- a/chrome/browser/ui/webui/device_log_ui.cc
+++ b/chrome/browser/ui/webui/device_log_ui.cc
@@ -82,6 +82,7 @@
   html->AddResourcePath("device_log_ui.css", IDR_DEVICE_LOG_UI_CSS);
   html->AddResourcePath("device_log_ui.js", IDR_DEVICE_LOG_UI_JS);
   html->SetDefaultResource(IDR_DEVICE_LOG_UI_HTML);
+  html->UseGzip();
 
   content::WebUIDataSource::Add(web_ui->GetWebContents()->GetBrowserContext(),
                                 html);
diff --git a/chrome/browser/ui/webui/flags_ui.cc b/chrome/browser/ui/webui/flags_ui.cc
index 43d1559..f6d30fe 100644
--- a/chrome/browser/ui/webui/flags_ui.cc
+++ b/chrome/browser/ui/webui/flags_ui.cc
@@ -107,6 +107,7 @@
 
   source->AddResourcePath(flags_ui::kFlagsJS, IDR_FLAGS_UI_FLAGS_JS);
   source->SetDefaultResource(IDR_FLAGS_UI_FLAGS_HTML);
+  source->UseGzip();
   return source;
 }
 
diff --git a/chrome/browser/ui/webui/instant_ui.cc b/chrome/browser/ui/webui/instant_ui.cc
index 26f84ba..e5a2615 100644
--- a/chrome/browser/ui/webui/instant_ui.cc
+++ b/chrome/browser/ui/webui/instant_ui.cc
@@ -34,6 +34,7 @@
   source->AddResourcePath("instant.js", IDR_INSTANT_JS);
   source->AddResourcePath("instant.css", IDR_INSTANT_CSS);
   source->SetDefaultResource(IDR_INSTANT_HTML);
+  source->UseGzip();
   return source;
 }
 
diff --git a/chrome/browser/ui/webui/local_state/local_state_ui.cc b/chrome/browser/ui/webui/local_state/local_state_ui.cc
index 1676ea7..83b1e0e 100644
--- a/chrome/browser/ui/webui/local_state/local_state_ui.cc
+++ b/chrome/browser/ui/webui/local_state/local_state_ui.cc
@@ -117,6 +117,7 @@
       content::WebUIDataSource::Create(chrome::kChromeUILocalStateHost);
   html_source->SetDefaultResource(IDR_LOCAL_STATE_HTML);
   html_source->AddResourcePath("local_state.js", IDR_LOCAL_STATE_JS);
+  html_source->UseGzip();
   content::WebUIDataSource::Add(Profile::FromWebUI(web_ui), html_source);
   web_ui->AddMessageHandler(base::MakeUnique<LocalStateUIHandler>());
 }
diff --git a/chrome/browser/ui/webui/memory_internals_ui.cc b/chrome/browser/ui/webui/memory_internals_ui.cc
index 70bda84..35734ff 100644
--- a/chrome/browser/ui/webui/memory_internals_ui.cc
+++ b/chrome/browser/ui/webui/memory_internals_ui.cc
@@ -90,6 +90,7 @@
       content::WebUIDataSource::Create(chrome::kChromeUIMemoryInternalsHost);
   source->SetDefaultResource(IDR_MEMORY_INTERNALS_HTML);
   source->AddResourcePath("memory_internals.js", IDR_MEMORY_INTERNALS_JS);
+  source->UseGzip();
   return source;
 }
 
diff --git a/chrome/browser/ui/webui/net_export_ui.cc b/chrome/browser/ui/webui/net_export_ui.cc
index 5e3561c..193c7da 100644
--- a/chrome/browser/ui/webui/net_export_ui.cc
+++ b/chrome/browser/ui/webui/net_export_ui.cc
@@ -63,6 +63,7 @@
   source->SetJsonPath("strings.js");
   source->AddResourcePath(net_log::kNetExportUIJS, IDR_NET_LOG_NET_EXPORT_JS);
   source->SetDefaultResource(IDR_NET_LOG_NET_EXPORT_HTML);
+  source->UseGzip();
   return source;
 }
 
diff --git a/chrome/browser/ui/webui/ntp_tiles_internals_ui.cc b/chrome/browser/ui/webui/ntp_tiles_internals_ui.cc
index 2441a60..6eb01a53 100644
--- a/chrome/browser/ui/webui/ntp_tiles_internals_ui.cc
+++ b/chrome/browser/ui/webui/ntp_tiles_internals_ui.cc
@@ -119,6 +119,7 @@
   source->AddResourcePath("ntp_tiles_internals.css",
                           IDR_NTP_TILES_INTERNALS_CSS);
   source->SetDefaultResource(IDR_NTP_TILES_INTERNALS_HTML);
+  source->UseGzip();
   return source;
 }
 
diff --git a/chrome/browser/ui/webui/omnibox/omnibox_ui.cc b/chrome/browser/ui/webui/omnibox/omnibox_ui.cc
index 788d8c3..1fcab38 100644
--- a/chrome/browser/ui/webui/omnibox/omnibox_ui.cc
+++ b/chrome/browser/ui/webui/omnibox/omnibox_ui.cc
@@ -23,6 +23,7 @@
   source->AddResourcePath("chrome/browser/ui/webui/omnibox/omnibox.mojom.js",
                           IDR_OMNIBOX_MOJO_JS);
   source->SetDefaultResource(IDR_OMNIBOX_HTML);
+  source->UseGzip();
 
   content::WebUIDataSource::Add(Profile::FromWebUI(web_ui), source);
 }
diff --git a/chrome/browser/ui/webui/policy_tool_ui.cc b/chrome/browser/ui/webui/policy_tool_ui.cc
index 5166e6065..041feb29f 100644
--- a/chrome/browser/ui/webui/policy_tool_ui.cc
+++ b/chrome/browser/ui/webui/policy_tool_ui.cc
@@ -52,6 +52,7 @@
   source->AddResourcePath("policy_tool.js", IDR_POLICY_TOOL_JS);
 
   source->SetDefaultResource(IDR_POLICY_TOOL_HTML);
+  source->UseGzip();
   return source;
 }
 
diff --git a/chrome/browser/ui/webui/policy_ui.cc b/chrome/browser/ui/webui/policy_ui.cc
index 9642a7c..02eb8c2 100644
--- a/chrome/browser/ui/webui/policy_ui.cc
+++ b/chrome/browser/ui/webui/policy_ui.cc
@@ -57,6 +57,7 @@
   source->AddResourcePath("policy_base.js", IDR_POLICY_BASE_JS);
   source->AddResourcePath("policy.js", IDR_POLICY_JS);
   source->SetDefaultResource(IDR_POLICY_HTML);
+  source->UseGzip();
   return source;
 }
 
diff --git a/chrome/browser/ui/webui/sync_internals_ui.cc b/chrome/browser/ui/webui/sync_internals_ui.cc
index a2879cb1..82e0d02c 100644
--- a/chrome/browser/ui/webui/sync_internals_ui.cc
+++ b/chrome/browser/ui/webui/sync_internals_ui.cc
@@ -45,6 +45,7 @@
   source->AddResourcePath(syncer::sync_ui_util::kTrafficLogJS,
                           IDR_SYNC_DRIVER_SYNC_INTERNALS_TRAFFIC_LOG_JS);
   source->SetDefaultResource(IDR_SYNC_DRIVER_SYNC_INTERNALS_INDEX_HTML);
+  source->UseGzip();
   return source;
 }
 
diff --git a/chrome/browser/ui/webui/task_scheduler_internals/task_scheduler_internals_ui.cc b/chrome/browser/ui/webui/task_scheduler_internals/task_scheduler_internals_ui.cc
index 7568aae..33f30dc 100644
--- a/chrome/browser/ui/webui/task_scheduler_internals/task_scheduler_internals_ui.cc
+++ b/chrome/browser/ui/webui/task_scheduler_internals/task_scheduler_internals_ui.cc
@@ -110,6 +110,7 @@
       "index.js", IDR_TASK_SCHEDULER_INTERNALS_RESOURCES_INDEX_JS);
   html_source->SetDefaultResource(
       IDR_TASK_SCHEDULER_INTERNALS_RESOURCES_INDEX_HTML);
+  html_source->UseGzip();
 
   content::WebUIDataSource::Add(Profile::FromWebUI(web_ui), html_source);
 }
diff --git a/chrome/browser/ui/webui/user_actions/user_actions_ui.cc b/chrome/browser/ui/webui/user_actions/user_actions_ui.cc
index d12ecffc..b72d6e9 100644
--- a/chrome/browser/ui/webui/user_actions/user_actions_ui.cc
+++ b/chrome/browser/ui/webui/user_actions/user_actions_ui.cc
@@ -21,6 +21,7 @@
   html_source->SetDefaultResource(IDR_USER_ACTIONS_HTML);
   html_source->AddResourcePath("user_actions.css", IDR_USER_ACTIONS_CSS);
   html_source->AddResourcePath("user_actions.js", IDR_USER_ACTIONS_JS);
+  html_source->UseGzip();
 
   Profile* profile = Profile::FromWebUI(web_ui);
   content::WebUIDataSource::Add(profile, html_source);
diff --git a/chrome/browser/ui/webui/version_ui.cc b/chrome/browser/ui/webui/version_ui.cc
index a94f96a..cf7c41f 100644
--- a/chrome/browser/ui/webui/version_ui.cc
+++ b/chrome/browser/ui/webui/version_ui.cc
@@ -175,6 +175,7 @@
   html_source->AddResourcePath(version_ui::kAboutVersionCSS,
                                IDR_VERSION_UI_CSS);
   html_source->SetDefaultResource(IDR_VERSION_UI_HTML);
+  html_source->UseGzip();
   return html_source;
 }