OLD | NEW |
1 # Behavior of Download File Types in Chrome | 1 # Behavior of Download File Types in Chrome |
2 | 2 |
3 This describes how to adjust file-type download behavior in | 3 This describes how to adjust file-type download behavior in |
4 Chrome including interactions with Safe Browsing. The metadata described | 4 Chrome including interactions with Safe Browsing. The metadata described |
5 here, and stored in `download_file_types.asciipb`, will be both baked into | 5 here, and stored in `download_file_types.asciipb`, will be both baked into |
6 Chrome released and pushable to Chrome between releases. http://crbug.com/596555 | 6 Chrome released and pushable to Chrome between releases (via |
| 7 `FileTypePolicies` class). http://crbug.com/596555 |
7 | 8 |
8 Rendered version of this file: https://chromium.googlesource.com/chromium/src/+/
master/chrome/browser/resources/safe_browsing/README.md | 9 Rendered version of this file: https://chromium.googlesource.com/chromium/src/+/
master/chrome/browser/resources/safe_browsing/README.md |
9 | 10 |
10 | 11 |
11 ## Procedure for adding a new type | 12 ## Procedure for adding/modifying file type(s) |
12 * Edit `download_file_types.asciipb`, edit `download_stats.cc` (necessary | 13 * **Edit** `download_file_types.asciipb` and update `histograms.xml` |
13 until it gets replaced), and update `histograms.xml` | 14 * Get it reviewed, **submit.** |
14 * Get it reviewed, submit. | 15 * **Push** it to all users via component update: |
15 * Push via component update (PROCEDURE TBD) | 16 * Wait 1-3 day for this to run on Canary to verify it doesn't crash Chrome. |
| 17 * In a synced checkout, generate protos for all platforms: |
| 18 * % `ninja -C out-gn/Debug |
| 19 chrome/browser/resources/safe_browsing:make_all_file_types_protobuf` |
| 20 * That will instruct you to run another command to push the files to GCS. |
| 21 You must a member of chrome-file-type-policies-pushers@google.com to have |
| 22 access to the GCS bucket. |
| 23 * The Component Updater system will notice those files and push them to |
| 24 users withing ~6 hours. If not, contact `waffles@.` |
| 25 |
16 | 26 |
17 ## Guidelines for a DownloadFileType entry: | 27 ## Guidelines for a DownloadFileType entry: |
18 See `download_file_types.proto` for all fields. | 28 See `download_file_types.proto` for all fields. |
19 | 29 |
20 * `extension`: (required) Value must be unique within the config. It should be | 30 * `extension`: (required) Value must be unique within the config. It should be |
21 lowercase ASCII and not contain a dot. If there _is_ a duplicate, | 31 lowercase ASCII and not contain a dot. If there _is_ a duplicate, |
22 first one wins. Only the `default_file_type` should leave this unset. | 32 first one wins. Only the `default_file_type` should leave this unset. |
23 | 33 |
24 * `uma_value`: (required) must be unique and match one in the | 34 * `uma_value`: (required) must be unique and match one in the |
25 `SBClientDownloadExtensions` enum in `histograms.xml`. | 35 `SBClientDownloadExtensions` enum in `histograms.xml`. |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
96 ping_setting=SAMPLED_PING) should we send light-pings? [0.0 .. 1.0] | 106 ping_setting=SAMPLED_PING) should we send light-pings? [0.0 .. 1.0] |
97 | 107 |
98 * `file_types`: The big list of all known file types. Keep them | 108 * `file_types`: The big list of all known file types. Keep them |
99 sorted by extension. | 109 sorted by extension. |
100 | 110 |
101 * `default_file_type`: Settings used if a downloaded file is not in | 111 * `default_file_type`: Settings used if a downloaded file is not in |
102 the above list. `extension` is ignored, but other settings are used. | 112 the above list. `extension` is ignored, but other settings are used. |
103 The ping_setting should be SAMPLED_PING for all platforms. Only the | 113 The ping_setting should be SAMPLED_PING for all platforms. Only the |
104 first platform_setting is used. | 114 first platform_setting is used. |
105 | 115 |
OLD | NEW |