New issue
Advanced search Search tips

Issue 609219 link

Starred by 5 users

Issue metadata

Status: Fixed
Owner:
Closed: Jun 2016
Cc:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 3
Type: Bug

Blocked on:
issue 332521

Blocking:
issue 619091



Sign in to add a comment

Gzip Compress resources within .pak files

Project Member Reported by agrieve@chromium.org, May 4 2016

Issue description

Motivation is Android, although likely will apply x-platform.

in bug #332521, IDR_ABOUT_UI_CREDITS_HTML is brotli-compressed to great success. We should apply this trick to other files that could benefit from it.


CHROMIUM_OUTPUT_DIR=out-gn/Debug build/android/resource_sizes.py out-gn/Debug/apks/Chrome.apk

Looking at resources in: /usr/local/google/home/agrieve/ssd/git/clankium1/src/out-gn/Debug

                                                RESOURCE COUNT UNCOMPRESSED SIZE
                               IDR_ABOUT_UI_CREDITS_HTML     1     1.27m   8.81%
                              IDR_NET_INTERNALS_INDEX_JS     1   315.08k   2.14%
                      IDR_AUDIO_SPATIALIZATION_COMPOSITE     1   240.05k   1.63%
                                      IDR_NET_ERROR_HTML     1   161.29k   1.09%
                                        IDR_DISTILLER_JS     1   103.23k   0.70%
                                          IDR_HISTORY_JS     1    86.45k   0.59%
                          IDR_GAIA_AUTH_AUTHENTICATOR_JS     1    75.27k   0.51%
                           IDR_MEDIA_ROUTER_CONTAINER_JS     1    70.80k   0.48%
                                         IDR_PROFILER_JS     1    68.40k   0.46%
                                 IDR_WEBRTC_INTERNALS_JS     1    66.86k   0.45%
                          IDR_SECURITY_INTERSTITIAL_HTML     1    63.33k   0.43%
                    IDR_WEBUI_ROBOTO_ROBOTO_MEDIUM_WOFF2     1    62.31k   0.42%
                   IDR_WEBUI_ROBOTO_ROBOTO_REGULAR_WOFF2     1    61.94k   0.42%
                     IDR_WEBUI_ROBOTO_ROBOTO_LIGHT_WOFF2     1    59.94k   0.41%
                          IDS_CERT_ERROR_EXPIRED_DETAILS    44    58.52k   0.40%
             IDR_SUPERVISED_USER_BLOCK_INTERSTITIAL_HTML     1    56.58k   0.38%
                                  IDR_WEBUI_ANALYTICS_JS     1    53.75k   0.36%
                         IDR_INSPECTOR_OVERLAY_PAGE_HTML     1    51.09k   0.35%
                                  IDR_MEDIA_INTERNALS_JS     1    45.90k   0.31%
                                 IDR_WEBUI_JS_CR_UI_LIST     1    43.39k   0.29%
                            IDR_NET_INTERNALS_INDEX_HTML     1    41.53k   0.28%
                IDR_CHROME_EXTENSION_PERMISSION_FEATURES     1    38.56k   0.26%
                    IDS_CERT_ERROR_NOT_YET_VALID_DETAILS    44    35.13k   0.24%
                           IDR_NEWTAB_WEBSTORE_THUMBNAIL     1    32.14k   0.22%
                                       IDR_UBER_FRAME_JS     1    31.46k   0.21%
             IDS_OPTIONS_ENABLE_DO_NOT_TRACK_BUBBLE_TEXT    44    31.12k   0.21%
                                     IDR_MEDIA_ROUTER_JS     1    30.74k   0.21%
                        IDR_WEBUI_JS_CR_UI_TOUCH_HANDLER     1    28.79k   0.20%
                                          IDR_INSPECT_JS     1    28.76k   0.20%
                                        IDR_HISTORY_HTML     1    28.70k   0.19%
                               IDS_FLAGS_UI_WARNING_TEXT    44    26.72k   0.18%
                       IDR_CHROME_EXTENSION_API_FEATURES     1    25.91k   0.18%
                                     IDR_OMNIBOX_MOJO_JS     1    25.02k   0.17%
                                        IDR_LOCAL_NTP_JS     1    24.92k   0.17%
            IDR_WEBUI_JS_CR_UI_PAGE_MANAGER_PAGE_MANAGER     1    24.37k   0.17%
                          IDR_WEBUI_JS_CR_UI_CARD_SLIDER     1    23.42k   0.16%
                                    IDR_UASTYLE_HTML_CSS     1    23.12k   0.16%
                                       IDR_MOJO_CODEC_JS     1    22.94k   0.16%
                             IDS_SSL_NONOVERRIDABLE_MORE    44    22.71k   0.15%
              IDS_PAGE_INFO_SECURITY_TAB_NON_UNIQUE_NAME    44    22.69k   0.15%
                            IDS_FLAGS_PANELS_DESCRIPTION    44    20.90k   0.14%
                       IDS_ABOUT_LINUX_PROXY_CONFIG_BODY    44    20.65k   0.14%
                                           IDR_POLICY_JS     1    20.30k   0.14%

Probably we could compress *_JS, *_HTML that are used only in about: pages or error messages. Other things might be performance-sensitive though.
 
IDR_NET_INTERNALS_INDEX_JS when compressed: 316K -> 60K
IDR_NET_ERROR_HTML 162K -> 57K with brotli, and 62K with gzip --rsyncable

Although note this one is the network error page (and is only big because of the dinosaur game). Compressing it will increase RAM usage when hitting a network error page.

I'm inclined to say that's fine since it wouldn't be a long-lived allocation...

Also note that compressing with brotli means larger apk patch files when they change, but should be still good on that front with gzip --rsyncable

Comment 3 Deleted

Those with a count of 44 can be ignored. They are in .lpak files and so already compressed.

IDR_CHROME_EXTENSION_PERMISSION_FEATURES should be removed with an "if !android" in the .grd
Implementation Plan:

C++ for webui:
https://code.google.com/p/chromium/codesearch#chromium/src/content/browser/webui/web_ui_data_source_impl.cc&sq=package:chromium&type=cs&l=239&rcl=1462475911

- Add code that checks for gzip header and decompresses if necessary.

On the grit side:
- Add a new type: type="BINDATA" -> type="GZIPPED" (or maybe need a new attribute instead, not sure)
- Add gzip logic here:
https://code.google.com/p/chromium/codesearch#chromium/src/tools/grit/grit/node/include.py&q=GetDataPackPair%20file:%5Esrc/tools/grit/grit/&sq=package:chromium&type=cs&l=77
- If on linux host, use gzip --rsyncable, else use "import gzip"
Cc: sky@chromium.org

Comment 7 Deleted

Comment 8 by smaier@chromium.org, May 11 2016

Cc: -sadrul@chromium.org -yfried...@chromium.org -wnwen@chromium.org -sky@chromium.org
Compression criteria:

- Anything normal users shouldn't see (anything with INTERNALS)
- Any HTML resources (since localization already causes them to have dirty memory")
- DISTILLER_JS is injected upon user request after page load
- HISTORY_JS we don't care how long it takes to load

After https://codereview.chromium.org/1968993002/ the resources (restricted to those that actually go into the Android version) are as follows
                               IDR_ABOUT_UI_CREDITS_HTML     1     1.33m  15.40%
                      IDR_AUDIO_SPATIALIZATION_COMPOSITE     1   240.05k   2.71%
                                      IDR_NET_ERROR_HTML     1   161.29k   1.82%
                                        IDR_DISTILLER_JS     1   103.23k   1.17%
                                          IDR_HISTORY_JS     1    86.46k   0.98%
                              IDR_NET_INTERNALS_INDEX_JS     1    73.54k   0.83%
                                         IDR_PROFILER_JS     1    68.40k   0.77%
                                 IDR_WEBRTC_INTERNALS_JS     1    66.86k   0.75%
                    IDR_WEBUI_ROBOTO_ROBOTO_MEDIUM_WOFF2     1    62.31k   0.70%
                   IDR_WEBUI_ROBOTO_ROBOTO_REGULAR_WOFF2     1    61.94k   0.70%
                     IDR_WEBUI_ROBOTO_ROBOTO_LIGHT_WOFF2     1    59.94k   0.68%
                          IDR_SECURITY_INTERSTITIAL_HTML     1    59.74k   0.67%
                          IDS_CERT_ERROR_EXPIRED_DETAILS    44    58.52k   0.66%
                                  IDR_WEBUI_ANALYTICS_JS     1    53.75k   0.61%
             IDR_SUPERVISED_USER_BLOCK_INTERSTITIAL_HTML     1    52.99k   0.60%
                         IDR_INSPECTOR_OVERLAY_PAGE_HTML     1    51.24k   0.58%
                                  IDR_MEDIA_INTERNALS_JS     1    45.90k   0.52%
                                 IDR_WEBUI_JS_CR_UI_LIST     1    43.39k   0.49%
                            IDR_NET_INTERNALS_INDEX_HTML     1    41.52k   0.47%
                    IDS_CERT_ERROR_NOT_YET_VALID_DETAILS    44    35.13k   0.40%
                           IDR_NEWTAB_WEBSTORE_THUMBNAIL     1    32.14k   0.36%
                        IDR_WEBUI_JS_CR_UI_TOUCH_HANDLER     1    28.79k   0.33%
                                        IDR_HISTORY_HTML     1    28.75k   0.32%
                               IDS_FLAGS_UI_WARNING_TEXT    44    26.72k   0.30%
                                     IDR_OMNIBOX_MOJO_JS     1    25.02k   0.28%
            IDR_WEBUI_JS_CR_UI_PAGE_MANAGER_PAGE_MANAGER     1    24.37k   0.28%
                          IDR_WEBUI_JS_CR_UI_CARD_SLIDER     1    23.42k   0.26%
                                    IDR_UASTYLE_HTML_CSS     1    23.09k   0.26%
                                       IDR_MOJO_CODEC_JS     1    22.94k   0.26%
                             IDS_SSL_NONOVERRIDABLE_MORE    44    22.71k   0.26%
              IDS_PAGE_INFO_SECURITY_TAB_NON_UNIQUE_NAME    44    22.69k   0.26%
                            IDS_FLAGS_PANELS_DESCRIPTION    44    20.90k   0.24%
                                           IDR_POLICY_JS     1    20.30k   0.23%

Comment 9 by smaier@chromium.org, May 11 2016

Going to leave IDR_AUDIO_SPATIALIZATION_COMPOSITE, IDR_WEBUI_ROBOTO_ROBOTO_*_WOFF2, anything with a count of 44, IDR_OMNIBOX_MOJO_JS, IDR_UASTYLE_HTML_CSS, IDR_MOJO_CODEC_JS. Also will leave anything mentioned in https://bugs.chromium.org/p/chromium/issues/detail?id=611118
Cc: agrieve@chromium.org
Here are the resource IDs that are not in the list above or in the other bug linked, as well as their usage. It appears that there are really only the two types of usage.

IDR_NET_ERROR_HTML				ResourceBundle::GetSharedInstance().GetRawDataResource(resource_id)
IDR_DISTILLER_JS				ResourceBundle::GetSharedInstance().GetRawDataResource(IDR_DISTILLER_JS)
IDR_HISTORY_JS					source->AddResourcePath(kHistoryJsFile, IDR_HISTORY_JS);
IDR_NET_INTERNALS_INDEX_JS			source->AddResourcePath("index.js", IDR_NET_INTERNALS_INDEX_JS);
IDR_PROFILER_JS					source->AddResourcePath("profiler.js", IDR_PROFILER_JS);
IDR_WEBRTC_INTERNALS_JS				source->AddResourcePath("webrtc_internals.js", IDR_WEBRTC_INTERNALS_JS);
IDR_SECURITY_INTERSTITIAL_HTML			ResourceBundle::GetSharedInstance().GetRawDataResource(IDR_SECURITY_INTERSTITIAL_HTML)
IDR_SUPERVISED_USER_BLOCK_INTERSTITIAL_HTML	ResourceBundle::GetSharedInstance().GetRawDataResource(IDR_SUPERVISED_USER_BLOCK_INTERSTITIAL_HTML)
IDR_INSPECTOR_OVERLAY_PAGE_HTML			Used in blink - https://code.google.com/p/chromium/codesearch#chromium/src/content/child/blink_platform_impl.cc&q=IDR_INSPECTOR_OVERLA&sq=package:chromium&type=cs&l=738
IDR_MEDIA_INTERNALS_JS				source->AddResourcePath("media_internals.js", IDR_MEDIA_INTERNALS_JS);
IDR_NET_INTERNALS_INDEX_HTML			source->SetDefaultResource(IDR_NET_INTERNALS_INDEX_HTML);
IDR_HISTORY_HTML				source->SetDefaultResource(IDR_HISTORY_HTML);
IDR_POLICY_JS					source->AddResourcePath("policy.js", IDR_POLICY_JS);
Project Member

Comment 11 by bugdroid1@chromium.org, May 25 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a737aa3a7426abd5ae46ec97e35f8ac2e332a102

commit a737aa3a7426abd5ae46ec97e35f8ac2e332a102
Author: smaier <smaier@chromium.org>
Date: Wed May 25 20:17:57 2016

Switch ResourceBundle LoadDataResourceBytes to return RefCountedMemory.

This change allows LoadDataResourceBytes and LoadDataResourceBytesForScale to
return memory that isn't in the bundle's memory map, to allow operations to be
performed on the resources.

TBR=dtrainor
BUG= 609219 

Review-Url: https://codereview.chromium.org/1996723002
Cr-Commit-Position: refs/heads/master@{#395976}

[modify] https://crrev.com/a737aa3a7426abd5ae46ec97e35f8ac2e332a102/blimp/engine/common/blimp_content_client.cc
[modify] https://crrev.com/a737aa3a7426abd5ae46ec97e35f8ac2e332a102/blimp/engine/common/blimp_content_client.h
[modify] https://crrev.com/a737aa3a7426abd5ae46ec97e35f8ac2e332a102/chrome/browser/search/iframe_source.cc
[modify] https://crrev.com/a737aa3a7426abd5ae46ec97e35f8ac2e332a102/chrome/browser/search/local_ntp_source.cc
[modify] https://crrev.com/a737aa3a7426abd5ae46ec97e35f8ac2e332a102/chrome/browser/ui/webui/ntp/new_tab_ui.cc
[modify] https://crrev.com/a737aa3a7426abd5ae46ec97e35f8ac2e332a102/chrome/common/chrome_content_client.cc
[modify] https://crrev.com/a737aa3a7426abd5ae46ec97e35f8ac2e332a102/chrome/common/chrome_content_client.h
[modify] https://crrev.com/a737aa3a7426abd5ae46ec97e35f8ac2e332a102/chromecast/common/cast_content_client.cc
[modify] https://crrev.com/a737aa3a7426abd5ae46ec97e35f8ac2e332a102/chromecast/common/cast_content_client.h
[modify] https://crrev.com/a737aa3a7426abd5ae46ec97e35f8ac2e332a102/content/browser/webui/web_ui_data_source_unittest.cc
[modify] https://crrev.com/a737aa3a7426abd5ae46ec97e35f8ac2e332a102/content/public/common/content_client.cc
[modify] https://crrev.com/a737aa3a7426abd5ae46ec97e35f8ac2e332a102/content/public/common/content_client.h
[modify] https://crrev.com/a737aa3a7426abd5ae46ec97e35f8ac2e332a102/content/shell/common/shell_content_client.cc
[modify] https://crrev.com/a737aa3a7426abd5ae46ec97e35f8ac2e332a102/content/shell/common/shell_content_client.h
[modify] https://crrev.com/a737aa3a7426abd5ae46ec97e35f8ac2e332a102/extensions/shell/common/shell_content_client.cc
[modify] https://crrev.com/a737aa3a7426abd5ae46ec97e35f8ac2e332a102/extensions/shell/common/shell_content_client.h
[modify] https://crrev.com/a737aa3a7426abd5ae46ec97e35f8ac2e332a102/headless/lib/headless_content_client.cc
[modify] https://crrev.com/a737aa3a7426abd5ae46ec97e35f8ac2e332a102/headless/lib/headless_content_client.h
[modify] https://crrev.com/a737aa3a7426abd5ae46ec97e35f8ac2e332a102/ios/web/public/test/test_web_client.h
[modify] https://crrev.com/a737aa3a7426abd5ae46ec97e35f8ac2e332a102/ios/web/public/test/test_web_client.mm
[modify] https://crrev.com/a737aa3a7426abd5ae46ec97e35f8ac2e332a102/ios/web/public/web_client.h
[modify] https://crrev.com/a737aa3a7426abd5ae46ec97e35f8ac2e332a102/ios/web/public/web_client.mm
[modify] https://crrev.com/a737aa3a7426abd5ae46ec97e35f8ac2e332a102/ios/web/webui/crw_web_ui_manager.mm
[modify] https://crrev.com/a737aa3a7426abd5ae46ec97e35f8ac2e332a102/ios/web/webui/web_ui_ios_data_source_impl.mm
[modify] https://crrev.com/a737aa3a7426abd5ae46ec97e35f8ac2e332a102/ui/base/resource/resource_bundle.cc
[modify] https://crrev.com/a737aa3a7426abd5ae46ec97e35f8ac2e332a102/ui/base/resource/resource_bundle.h
[modify] https://crrev.com/a737aa3a7426abd5ae46ec97e35f8ac2e332a102/ui/base/resource/resource_bundle_ios.mm
[modify] https://crrev.com/a737aa3a7426abd5ae46ec97e35f8ac2e332a102/ui/base/resource/resource_bundle_unittest.cc

Overview document of thought process for this change: https://docs.google.com/document/d/1_kIGIklObY9NJhfPUvd-Iqq8Cj1jChU9d43pZzwft1Y/edit?usp=sharing
Summary: Gzip Compress resources within .pak files (was: Compress rarely-used resources within .pak file on Android)
Changing summary since this is not just on Android and hoping to be applied to most include-based resources.
Project Member

Comment 14 by bugdroid1@chromium.org, Jun 1 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e3a06a21aa1a7adfaef988488cdbcccbfa9a2ef6

commit e3a06a21aa1a7adfaef988488cdbcccbfa9a2ef6
Author: smaier <smaier@chromium.org>
Date: Wed Jun 01 17:16:19 2016

Compress .pak resources with new option: "type=GZIPPABLE_BINDATA"

Allows compression via gzip for rarely used .pak resources. These resources
will only be uncompressed into memory upon request of the resource. We are
compressing all "internals" pages, with a savings of 472KB.

TBR=sdefresne
BUG= 609219 
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:closure_compilation

Review-Url: https://codereview.chromium.org/1968993002
Cr-Commit-Position: refs/heads/master@{#397168}

[modify] https://crrev.com/e3a06a21aa1a7adfaef988488cdbcccbfa9a2ef6/chrome/browser/browser_resources.grd
[modify] https://crrev.com/e3a06a21aa1a7adfaef988488cdbcccbfa9a2ef6/chrome/browser/resources/net_internals_resources.grd
[modify] https://crrev.com/e3a06a21aa1a7adfaef988488cdbcccbfa9a2ef6/chrome/browser/resources/password_manager_internals_resources.grd
[modify] https://crrev.com/e3a06a21aa1a7adfaef988488cdbcccbfa9a2ef6/chrome/browser/resources/translate_internals_resources.grd
[modify] https://crrev.com/e3a06a21aa1a7adfaef988488cdbcccbfa9a2ef6/chrome/test/data/webui/webui_resource_browsertest.cc
[modify] https://crrev.com/e3a06a21aa1a7adfaef988488cdbcccbfa9a2ef6/components/resources/gcm_driver_resources.grdp
[modify] https://crrev.com/e3a06a21aa1a7adfaef988488cdbcccbfa9a2ef6/components/resources/signin_resources.grdp
[modify] https://crrev.com/e3a06a21aa1a7adfaef988488cdbcccbfa9a2ef6/content/content_resources.grd
[modify] https://crrev.com/e3a06a21aa1a7adfaef988488cdbcccbfa9a2ef6/content/public/test/browser_test_utils.cc
[modify] https://crrev.com/e3a06a21aa1a7adfaef988488cdbcccbfa9a2ef6/tools/grit/grit/exception.py
[modify] https://crrev.com/e3a06a21aa1a7adfaef988488cdbcccbfa9a2ef6/tools/grit/grit/format/data_pack_unittest.py
[add] https://crrev.com/e3a06a21aa1a7adfaef988488cdbcccbfa9a2ef6/tools/grit/grit/format/gzip_string.py
[add] https://crrev.com/e3a06a21aa1a7adfaef988488cdbcccbfa9a2ef6/tools/grit/grit/format/gzip_string_unittest.py
[modify] https://crrev.com/e3a06a21aa1a7adfaef988488cdbcccbfa9a2ef6/tools/grit/grit/node/include.py
[modify] https://crrev.com/e3a06a21aa1a7adfaef988488cdbcccbfa9a2ef6/tools/grit/grit/node/include_unittest.py
[modify] https://crrev.com/e3a06a21aa1a7adfaef988488cdbcccbfa9a2ef6/tools/grit/grit/test_suite_all.py
[add] https://crrev.com/e3a06a21aa1a7adfaef988488cdbcccbfa9a2ef6/tools/grit/grit/testdata/test_text.txt
[modify] https://crrev.com/e3a06a21aa1a7adfaef988488cdbcccbfa9a2ef6/ui/base/BUILD.gn
[modify] https://crrev.com/e3a06a21aa1a7adfaef988488cdbcccbfa9a2ef6/ui/base/DEPS
[modify] https://crrev.com/e3a06a21aa1a7adfaef988488cdbcccbfa9a2ef6/ui/base/resource/resource_bundle.cc
[modify] https://crrev.com/e3a06a21aa1a7adfaef988488cdbcccbfa9a2ef6/ui/base/resource/resource_bundle.h
[modify] https://crrev.com/e3a06a21aa1a7adfaef988488cdbcccbfa9a2ef6/ui/base/resource/resource_bundle_unittest.cc
[modify] https://crrev.com/e3a06a21aa1a7adfaef988488cdbcccbfa9a2ef6/ui/base/ui_base.gyp

Project Member

Comment 15 by bugdroid1@chromium.org, Jun 7 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c19426aba4e6aef9cb4fefc02d37969f9002ba5c

commit c19426aba4e6aef9cb4fefc02d37969f9002ba5c
Author: smaier <smaier@chromium.org>
Date: Tue Jun 07 15:17:15 2016

Reland of: Compress .pak resources with new option: "type=GZIPPABLE_BINDATA"

Reason for reland:
No longer fails on chromeos host

Allows compression via gzip for rarely used .pak resources. These resources
will only be uncompressed into memory upon request of the resource. We are
compressing all "internals" pages, with a savings of 472KB.

First attempt:
https://codereview.chromium.org/1968993002

TBR=agrieve
BUG= 609219 

Review-Url: https://codereview.chromium.org/2036633003
Cr-Commit-Position: refs/heads/master@{#398303}

[modify] https://crrev.com/c19426aba4e6aef9cb4fefc02d37969f9002ba5c/chrome/browser/browser_resources.grd
[modify] https://crrev.com/c19426aba4e6aef9cb4fefc02d37969f9002ba5c/chrome/browser/resources/net_internals_resources.grd
[modify] https://crrev.com/c19426aba4e6aef9cb4fefc02d37969f9002ba5c/chrome/browser/resources/password_manager_internals_resources.grd
[modify] https://crrev.com/c19426aba4e6aef9cb4fefc02d37969f9002ba5c/chrome/browser/resources/translate_internals_resources.grd
[modify] https://crrev.com/c19426aba4e6aef9cb4fefc02d37969f9002ba5c/chrome/test/data/webui/webui_resource_browsertest.cc
[modify] https://crrev.com/c19426aba4e6aef9cb4fefc02d37969f9002ba5c/components/resources/gcm_driver_resources.grdp
[modify] https://crrev.com/c19426aba4e6aef9cb4fefc02d37969f9002ba5c/components/resources/signin_resources.grdp
[modify] https://crrev.com/c19426aba4e6aef9cb4fefc02d37969f9002ba5c/content/content_resources.grd
[modify] https://crrev.com/c19426aba4e6aef9cb4fefc02d37969f9002ba5c/content/public/test/browser_test_utils.cc
[modify] https://crrev.com/c19426aba4e6aef9cb4fefc02d37969f9002ba5c/tools/grit/grit/exception.py
[modify] https://crrev.com/c19426aba4e6aef9cb4fefc02d37969f9002ba5c/tools/grit/grit/format/data_pack_unittest.py
[add] https://crrev.com/c19426aba4e6aef9cb4fefc02d37969f9002ba5c/tools/grit/grit/format/gzip_string.py
[add] https://crrev.com/c19426aba4e6aef9cb4fefc02d37969f9002ba5c/tools/grit/grit/format/gzip_string_unittest.py
[modify] https://crrev.com/c19426aba4e6aef9cb4fefc02d37969f9002ba5c/tools/grit/grit/node/include.py
[modify] https://crrev.com/c19426aba4e6aef9cb4fefc02d37969f9002ba5c/tools/grit/grit/node/include_unittest.py
[modify] https://crrev.com/c19426aba4e6aef9cb4fefc02d37969f9002ba5c/tools/grit/grit/test_suite_all.py
[add] https://crrev.com/c19426aba4e6aef9cb4fefc02d37969f9002ba5c/tools/grit/grit/testdata/test_text.txt
[modify] https://crrev.com/c19426aba4e6aef9cb4fefc02d37969f9002ba5c/ui/base/BUILD.gn
[modify] https://crrev.com/c19426aba4e6aef9cb4fefc02d37969f9002ba5c/ui/base/DEPS
[modify] https://crrev.com/c19426aba4e6aef9cb4fefc02d37969f9002ba5c/ui/base/resource/resource_bundle.cc
[modify] https://crrev.com/c19426aba4e6aef9cb4fefc02d37969f9002ba5c/ui/base/resource/resource_bundle.h
[modify] https://crrev.com/c19426aba4e6aef9cb4fefc02d37969f9002ba5c/ui/base/resource/resource_bundle_unittest.cc
[modify] https://crrev.com/c19426aba4e6aef9cb4fefc02d37969f9002ba5c/ui/base/ui_base.gyp

Blocking: 619091
See also  issue 619091 , which suggests stripping comments and whitespace from HTML .pak resources (including their embedded scripts and styles).
Status: Fixed (was: Assigned)
I am closing this one, as I think https://codereview.chromium.org/2036633003/ is as far as I am going to be taking this change due to the reasons I put forward in this doc (https://docs.google.com/document/d/1_kIGIklObY9NJhfPUvd-Iqq8Cj1jChU9d43pZzwft1Y/edit?usp=sharing)

Sign in to add a comment