|
8 | 8 | #include <string.h>
|
9 | 9 |
|
10 | 10 | #include <algorithm>
|
11 |
| -#include <unordered_set> |
12 | 11 |
|
| 12 | +#include "base/containers/fixed_flat_set.h" |
13 | 13 | #include "base/files/file_path.h"
|
14 | 14 | #include "base/logging.h"
|
15 |
| -#include "base/no_destructor.h" |
16 | 15 | #include "base/notreached.h"
|
| 16 | +#include "base/strings/string_piece.h" |
17 | 17 | #include "base/strings/string_util.h"
|
18 | 18 | #include "base/strings/utf_string_conversions.h"
|
19 | 19 |
|
@@ -407,59 +407,59 @@ Compression GetCompressionMethod(const base::FilePath& path) {
|
407 | 407 |
|
408 | 408 | // Well known filename extensions of files that a likely to be already
|
409 | 409 | // compressed. The extensions are in lower case without the leading dot.
|
410 |
| - static const base::NoDestructor<std::unordered_set<StringPiece>> exts( |
411 |
| - std::initializer_list<StringPiece>{ |
412 |
| - FILE_PATH_LITERAL("3g2"), // |
413 |
| - FILE_PATH_LITERAL("3gp"), // |
414 |
| - FILE_PATH_LITERAL("7z"), // |
415 |
| - FILE_PATH_LITERAL("7zip"), // |
416 |
| - FILE_PATH_LITERAL("aac"), // |
417 |
| - FILE_PATH_LITERAL("avi"), // |
418 |
| - FILE_PATH_LITERAL("bz"), // |
419 |
| - FILE_PATH_LITERAL("bz2"), // |
420 |
| - FILE_PATH_LITERAL("crx"), // |
421 |
| - FILE_PATH_LITERAL("gif"), // |
422 |
| - FILE_PATH_LITERAL("gz"), // |
423 |
| - FILE_PATH_LITERAL("jar"), // |
424 |
| - FILE_PATH_LITERAL("jpeg"), // |
425 |
| - FILE_PATH_LITERAL("jpg"), // |
426 |
| - FILE_PATH_LITERAL("lz"), // |
427 |
| - FILE_PATH_LITERAL("m2v"), // |
428 |
| - FILE_PATH_LITERAL("m4p"), // |
429 |
| - FILE_PATH_LITERAL("m4v"), // |
430 |
| - FILE_PATH_LITERAL("mng"), // |
431 |
| - FILE_PATH_LITERAL("mov"), // |
432 |
| - FILE_PATH_LITERAL("mp2"), // |
433 |
| - FILE_PATH_LITERAL("mp3"), // |
434 |
| - FILE_PATH_LITERAL("mp4"), // |
435 |
| - FILE_PATH_LITERAL("mpe"), // |
436 |
| - FILE_PATH_LITERAL("mpeg"), // |
437 |
| - FILE_PATH_LITERAL("mpg"), // |
438 |
| - FILE_PATH_LITERAL("mpv"), // |
439 |
| - FILE_PATH_LITERAL("ogg"), // |
440 |
| - FILE_PATH_LITERAL("ogv"), // |
441 |
| - FILE_PATH_LITERAL("png"), // |
442 |
| - FILE_PATH_LITERAL("qt"), // |
443 |
| - FILE_PATH_LITERAL("rar"), // |
444 |
| - FILE_PATH_LITERAL("taz"), // |
445 |
| - FILE_PATH_LITERAL("tb2"), // |
446 |
| - FILE_PATH_LITERAL("tbz"), // |
447 |
| - FILE_PATH_LITERAL("tbz2"), // |
448 |
| - FILE_PATH_LITERAL("tgz"), // |
449 |
| - FILE_PATH_LITERAL("tlz"), // |
450 |
| - FILE_PATH_LITERAL("tz"), // |
451 |
| - FILE_PATH_LITERAL("tz2"), // |
452 |
| - FILE_PATH_LITERAL("vob"), // |
453 |
| - FILE_PATH_LITERAL("webm"), // |
454 |
| - FILE_PATH_LITERAL("wma"), // |
455 |
| - FILE_PATH_LITERAL("wmv"), // |
456 |
| - FILE_PATH_LITERAL("xz"), // |
457 |
| - FILE_PATH_LITERAL("z"), // |
458 |
| - FILE_PATH_LITERAL("zip"), // |
459 |
| - }); |
460 |
| - |
461 |
| - if (exts->count(ext_without_dot)) |
| 410 | + static constexpr auto kExts = base::MakeFixedFlatSet<StringPiece>({ |
| 411 | + FILE_PATH_LITERAL("3g2"), // |
| 412 | + FILE_PATH_LITERAL("3gp"), // |
| 413 | + FILE_PATH_LITERAL("7z"), // |
| 414 | + FILE_PATH_LITERAL("7zip"), // |
| 415 | + FILE_PATH_LITERAL("aac"), // |
| 416 | + FILE_PATH_LITERAL("avi"), // |
| 417 | + FILE_PATH_LITERAL("bz"), // |
| 418 | + FILE_PATH_LITERAL("bz2"), // |
| 419 | + FILE_PATH_LITERAL("crx"), // |
| 420 | + FILE_PATH_LITERAL("gif"), // |
| 421 | + FILE_PATH_LITERAL("gz"), // |
| 422 | + FILE_PATH_LITERAL("jar"), // |
| 423 | + FILE_PATH_LITERAL("jpeg"), // |
| 424 | + FILE_PATH_LITERAL("jpg"), // |
| 425 | + FILE_PATH_LITERAL("lz"), // |
| 426 | + FILE_PATH_LITERAL("m2v"), // |
| 427 | + FILE_PATH_LITERAL("m4p"), // |
| 428 | + FILE_PATH_LITERAL("m4v"), // |
| 429 | + FILE_PATH_LITERAL("mng"), // |
| 430 | + FILE_PATH_LITERAL("mov"), // |
| 431 | + FILE_PATH_LITERAL("mp2"), // |
| 432 | + FILE_PATH_LITERAL("mp3"), // |
| 433 | + FILE_PATH_LITERAL("mp4"), // |
| 434 | + FILE_PATH_LITERAL("mpe"), // |
| 435 | + FILE_PATH_LITERAL("mpeg"), // |
| 436 | + FILE_PATH_LITERAL("mpg"), // |
| 437 | + FILE_PATH_LITERAL("mpv"), // |
| 438 | + FILE_PATH_LITERAL("ogg"), // |
| 439 | + FILE_PATH_LITERAL("ogv"), // |
| 440 | + FILE_PATH_LITERAL("png"), // |
| 441 | + FILE_PATH_LITERAL("qt"), // |
| 442 | + FILE_PATH_LITERAL("rar"), // |
| 443 | + FILE_PATH_LITERAL("taz"), // |
| 444 | + FILE_PATH_LITERAL("tb2"), // |
| 445 | + FILE_PATH_LITERAL("tbz"), // |
| 446 | + FILE_PATH_LITERAL("tbz2"), // |
| 447 | + FILE_PATH_LITERAL("tgz"), // |
| 448 | + FILE_PATH_LITERAL("tlz"), // |
| 449 | + FILE_PATH_LITERAL("tz"), // |
| 450 | + FILE_PATH_LITERAL("tz2"), // |
| 451 | + FILE_PATH_LITERAL("vob"), // |
| 452 | + FILE_PATH_LITERAL("webm"), // |
| 453 | + FILE_PATH_LITERAL("wma"), // |
| 454 | + FILE_PATH_LITERAL("wmv"), // |
| 455 | + FILE_PATH_LITERAL("xz"), // |
| 456 | + FILE_PATH_LITERAL("z"), // |
| 457 | + FILE_PATH_LITERAL("zip"), // |
| 458 | + }); |
| 459 | + |
| 460 | + if (kExts.count(ext_without_dot)) { |
462 | 461 | return kStored;
|
| 462 | + } |
463 | 463 |
|
464 | 464 | return kDeflated;
|
465 | 465 | }
|
|
0 commit comments