Add a new grit output format that knows whether resources are gzipped

This is to reduce the amount of custom code written to deal with cases
where a .grd entry may or may not be gzipped.

The new output formats (both .h and .cc generators) can be invoked via:

<output filename="gzip_map.h" type="gzipped_resource_map_header">
<output filename="gzip_map.cc" type="gzipped_resource_file_map_source">

This generates a .h with this definition:

struct GzippedGritResourceMap {
  int value;
  const char* name;
  bool gzipped;  // only true if compress="gzip" in .grd file
};

and a .cc with this kind of data:

const GzippedGritResourceMap kWebuiResources[] = {
  {"blah.js", IDR_BLAH_JS, true},  // is_gzipped
};

I also edited the data source corresponding to chrome://resources/
requests to use the generated .h data and updated some aliasing code
(and moved the mojo bindings for chrome://bluetooth-internals onto it).

The eventual goal is to remove manual gzip exclusion of resources
(i.e. WebUIDataSource::UseGzip(), WebUIDataSourceImpl::excluded_paths_).

Bug: 738243
Cq-Include-Trybots: master.tryserver.chromium.linux:closure_compilation;master.tryserver.chromium.mac:ios-simulator-cronet;master.tryserver.chromium.mac:ios-simulator-full-configs
Change-Id: Id31c84cfef517fb9cc46bd7bbd90c297674ed2a2
Reviewed-on: https://chromium-review.googlesource.com/823271
Commit-Queue: Dan Beam (no longer on Chrome) <[email protected]>
Reviewed-by: Kurt Horimoto <[email protected]>
Reviewed-by: Demetrios Papadopoulos <[email protected]>
Reviewed-by: Lei Zhang <[email protected]>
Reviewed-by: John Abd-El-Malek <[email protected]>
Cr-Commit-Position: refs/heads/master@{#525601}
10 files changed