Gzip Compress resources within .pak files |
|||||||
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.
,
May 6 2016
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
,
May 6 2016
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
,
May 6 2016
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"
,
May 6 2016
,
May 11 2016
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%
,
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
,
May 11 2016
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);
,
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
,
May 27 2016
Overview document of thought process for this change: https://docs.google.com/document/d/1_kIGIklObY9NJhfPUvd-Iqq8Cj1jChU9d43pZzwft1Y/edit?usp=sharing
,
May 28 2016
Changing summary since this is not just on Android and hoping to be applied to most include-based resources.
,
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
,
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
,
Jun 13 2016
,
Jun 13 2016
See also issue 619091 , which suggests stripping comments and whitespace from HTML .pak resources (including their embedded scripts and styles).
,
Jun 13 2016
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 |
|||||||
Comment 1 by agrieve@chromium.org
, May 6 2016