Files app: Stop generating the HTML for JS modules
Change the main.html to be based on the JS modules.
Remove the unnecessary GRD entries and remove the main_script.js that
isn't in use anymore.
Bug: 1199015
Change-Id: I2b7867a518b1a50e1e306840f0dec5471b31749f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2928117
Auto-Submit: Luciano Pacheco <lucmult@chromium.org>
Reviewed-by: Jeremie Boulic <jboulic@chromium.org>
Commit-Queue: Luciano Pacheco <lucmult@chromium.org>
Cr-Commit-Position: refs/heads/master@{#887658}
diff --git a/ash/content/file_manager/resources/gen_main_html.py b/ash/content/file_manager/resources/gen_main_html.py
index 3f38b13..731a95a 100755
--- a/ash/content/file_manager/resources/gen_main_html.py
+++ b/ash/content/file_manager/resources/gen_main_html.py
@@ -36,7 +36,7 @@
continue
# Remove files app foreground/js <script> tags: SWA app must load
# them after the SWA app has initialized needed resources.
- elif line.find('<script src="foreground/js/') == -1:
+ elif line.find('src="foreground/js/main.') == -1:
sys.stdout.write(line)
# Create a BUILD time stamp for the target file.
diff --git a/chrome/browser/chromeos/file_manager/url_util.cc b/chrome/browser/chromeos/file_manager/url_util.cc
index 78a6938..d2e883c 100644
--- a/chrome/browser/chromeos/file_manager/url_util.cc
+++ b/chrome/browser/chromeos/file_manager/url_util.cc
@@ -65,7 +65,7 @@
} // namespace
GURL GetFileManagerMainPageUrl() {
- return GetFileManagerUrl("/main_modules.html");
+ return GetFileManagerUrl("/main.html");
}
GURL GetFileManagerMainPageUrlWithParams(
diff --git a/chrome/browser/chromeos/file_manager/url_util_unittest.cc b/chrome/browser/chromeos/file_manager/url_util_unittest.cc
index 70fa2a7..597031a 100644
--- a/chrome/browser/chromeos/file_manager/url_util_unittest.cc
+++ b/chrome/browser/chromeos/file_manager/url_util_unittest.cc
@@ -37,9 +37,8 @@
}
TEST(FileManagerUrlUtilTest, GetFileManagerMainPageUrl) {
- EXPECT_EQ(
- "chrome-extension://hhaomjibdihmijegdhdafkllkbggdgoj/main_modules.html",
- GetFileManagerMainPageUrl().spec());
+ EXPECT_EQ("chrome-extension://hhaomjibdihmijegdhdafkllkbggdgoj/main.html",
+ GetFileManagerMainPageUrl().spec());
}
TEST(FileManagerUrlUtilTest, GetFileManagerMainPageUrlWithParams_NoFileTypes) {
@@ -54,7 +53,7 @@
);
EXPECT_EQ(extensions::kExtensionScheme, url.scheme());
EXPECT_EQ("hhaomjibdihmijegdhdafkllkbggdgoj", url.host());
- EXPECT_EQ("/main_modules.html", url.path());
+ EXPECT_EQ("/main.html", url.path());
// Confirm that "%20" is used instead of "+" in the query.
EXPECT_TRUE(url.query().find("+") == std::string::npos);
EXPECT_TRUE(url.query().find("%20") != std::string::npos);
@@ -102,7 +101,7 @@
);
EXPECT_EQ(extensions::kExtensionScheme, url.scheme());
EXPECT_EQ("hhaomjibdihmijegdhdafkllkbggdgoj", url.host());
- EXPECT_EQ("/main_modules.html", url.path());
+ EXPECT_EQ("/main.html", url.path());
// Confirm that "%20" is used instead of "+" in the query.
EXPECT_TRUE(url.query().find("+") == std::string::npos);
EXPECT_TRUE(url.query().find("%20") != std::string::npos);
diff --git a/ui/file_manager/BUILD.gn b/ui/file_manager/BUILD.gn
index b0d094f..8ca668c 100644
--- a/ui/file_manager/BUILD.gn
+++ b/ui/file_manager/BUILD.gn
@@ -370,7 +370,6 @@
deps = [
"//ui/file_manager/audio_player/elements:web_components",
- "//ui/file_manager/file_manager:gen_main_html",
"//ui/file_manager/file_manager/background/js:modulize",
"//ui/file_manager/file_manager/common/js:modulize",
"//ui/file_manager/file_manager/externs:modulize",
@@ -417,8 +416,6 @@
# Fix broken images:
"file_manager/images/files/ui/arrow_right.svg",
"file_manager/images/files/ui/menu_ng.svg",
-
- "file_manager/main_modules.html",
]
resource_path_rewrites = [
diff --git a/ui/file_manager/base/gn/gen_main_html.py b/ui/file_manager/base/gn/gen_main_html.py
deleted file mode 100644
index 9c3e180..0000000
--- a/ui/file_manager/base/gn/gen_main_html.py
+++ /dev/null
@@ -1,58 +0,0 @@
-# Copyright 2021 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-#
-# Lint as: python3
-
-"""Generate Files app main_modules.html based on the main.html"""
-
-from __future__ import print_function
-
-import fileinput
-import optparse
-import os
-import shutil
-import sys
-
-_MAIN = ' <script type="module" src="foreground/js/main.m.js"></script>\n'
-
-def GenerateHtml(source, target):
- """Copy source file to target with edits, then add BUILD time stamp."""
-
- # Copy source (main.html) file to the target (main.html) file.
- shutil.copyfile(source, target)
-
- # Edit the target file.
- main_included = False
- for line in fileinput.input(target, inplace=True):
- # Ignore all <script> and <link rel="import">.
- if '<script' in line or 'rel="import"' in line:
- if main_included:
- continue
- else:
- line = ''
- sys.stdout.write(_MAIN)
- main_included = True
-
- sys.stdout.write(line)
-
- # Create a BUILD time stamp for the target file.
- open(target + '.stamp', 'a').close()
-
-def main(args):
- parser = optparse.OptionParser()
-
- parser.add_option('--source', help='Files app main.html source file.')
- parser.add_option('--target', help='Target fianl main.html for output.')
-
- options, _ = parser.parse_args(args)
-
- if options.source and options.target:
- GenerateHtml(options.source, options.target)
- return
-
- raise ValueError('Usage: all arguments are required.')
-
-if __name__ == '__main__':
- sys.exit(main(sys.argv[1:]))
-
diff --git a/ui/file_manager/file_manager/BUILD.gn b/ui/file_manager/file_manager/BUILD.gn
index d2e3a59..1c9b8506 100644
--- a/ui/file_manager/file_manager/BUILD.gn
+++ b/ui/file_manager/file_manager/BUILD.gn
@@ -4,24 +4,6 @@
import("//ui/webui/resources/tools/generate_grd.gni")
-action("gen_main_html") {
- inputs = [ "main.html" ]
-
- script = "//ui/file_manager/base/gn/gen_main_html.py"
-
- args = [
- "--source",
- rebase_path("//ui/file_manager/file_manager/main.html", root_build_dir),
- "--target",
- rebase_path("$target_gen_dir/main_modules.html", root_build_dir),
- ]
-
- outputs = [
- "$target_gen_dir/main_modules.html",
- "$target_gen_dir/main_modules.html.stamp",
- ]
-}
-
# TODO: Remove this file copy when breadcrumb.js supports only JS modules.
copy("fix_broken_images") {
sources = [
@@ -42,6 +24,8 @@
input_files_base_dir = rebase_path(".", "//")
input_files = [
+ "main.html",
+
# CSS:
"foreground/css/combobutton.css",
"foreground/css/common.css",
diff --git a/ui/file_manager/file_manager/background/js/launcher.js b/ui/file_manager/file_manager/background/js/launcher.js
index 9f41cc4..ab1c5ac 100644
--- a/ui/file_manager/file_manager/background/js/launcher.js
+++ b/ui/file_manager/file_manager/background/js/launcher.js
@@ -168,9 +168,8 @@
nextFileManagerWindowID = Math.max(nextFileManagerWindowID, id + 1);
const appId = FILES_ID_PREFIX + id;
- const htmlFile = 'main_modules.html';
- const appWindow =
- new AppWindowWrapper(htmlFile, appId, FILE_MANAGER_WINDOW_CREATE_OPTIONS);
+ const appWindow = new AppWindowWrapper(
+ 'main.html', appId, FILE_MANAGER_WINDOW_CREATE_OPTIONS);
await appWindow.launch(opt_appState || {}, false);
if (!appWindow.rawAppWindow) {
diff --git a/ui/file_manager/file_manager/foreground/js/main_scripts.js b/ui/file_manager/file_manager/foreground/js/main_scripts.js
deleted file mode 100644
index 6b81207..0000000
--- a/ui/file_manager/file_manager/foreground/js/main_scripts.js
+++ /dev/null
@@ -1,202 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// The include directives are put into Javascript-style comments to prevent
-// parsing errors in non-flattened mode. The flattener still sees them.
-// Note that this makes the flattener to comment out the first line of the
-// included file but that's all right since any javascript file should start
-// with a copyright comment anyway.
-
-// If you add a new dependency, you should update build files by rerunning
-// gyp. Otherwise, you'll be bitten by a dependency issue like:
-//
-// 1) You add a new dependency to "whatever.js"
-// 2) You make changes in "whatever.js"
-// 3) Rebuild "resources.pak" and open the Files app
-// 4) You don't see the changes in "whatever.js". Why is that?
-//
-// Because the dependencies are computed at gyp time, the existing build
-// files don't know that "resources.pak" now has a dependency to
-// "whatever.js". You should rerun gyp to let the build files know.
-//
-// error_counter.js must be loaded before all other scripts of the Files app.
-// <include src="../../../file_manager/common/js/error_counter.js">
-//
-// metrics_base.js and metrics.js initiates load performance tracking
-// so we want to parse it as early as possible.
-// <include src="../../common/js/metrics_base.js">
-// <include src="../../common/js/metrics.js">
-// <include src="metrics_start.js">
-//
-// <include src="../../common/js/lru_cache.js">
-// <include src="../../../image_loader/load_image_request.js">
-// <include src="../../../image_loader/image_loader_client.js">
-//
-// <include src="../../../../webui/resources/js/assert.js">
-// <include src="../../../../webui/resources/js/action_link.js">
-// <include src="../../../../webui/resources/js/cr.js">
-// <include src="../../../../webui/resources/js/util.js">
-//
-// <include src="../../../../webui/resources/js/event_tracker.js">
-// <include src="../../../../webui/resources/js/cr/ui.js">
-// <include src="../../../../webui/resources/js/cr/event_target.js">
-// <include src="../../../../webui/resources/js/cr/ui/array_data_model.js">
-// <include src="../../../../webui/resources/js/cr/ui/dialogs.js">
-// <include src="../../../../webui/resources/js/cr/ui/list_item.js">
-// <include src="../../../../webui/resources/js/cr/ui/list_selection_model.js">
-// <include
-// src="../../../../webui/resources/js/cr/ui/list_single_selection_model.js">
-// <include
-// src="../../../../webui/resources/js/cr/ui/list_selection_controller.js">
-// <include src="../../../../webui/resources/js/cr/ui/list.js">
-// <include src="../../../../webui/resources/js/cr/ui/tree.js">
-// <include src="ui/autocomplete_list.js">
-
-// <include src="../../../../webui/resources/js/cr/ui/splitter.js">
-// <include src="ui/table/table_splitter.js">
-//
-// <include src="ui/table/table_column.js">
-// <include src="ui/table/table_column_model.js">
-// <include src="ui/table/table_header.js">
-// <include src="ui/table/table_list.js">
-// <include src="ui/table/table.js">
-//
-// <include src="../../../../webui/resources/js/cr/ui/grid.js">
-//
-// <include
-// src="../../../../webui/resources/js/cr/ui/keyboard_shortcut_list.js">
-// <include src="../../../../webui/resources/js/cr/ui/command.js">
-// <include src="../../../../webui/resources/js/cr/ui/position_util.js">
-// <include src="../../../../webui/resources/js/cr/ui/menu_item.js">
-// <include src="../../../../webui/resources/js/cr/ui/menu.js">
-// <include src="../../../../webui/resources/js/cr/ui/menu_button.js">
-// <include src="../../../../webui/resources/js/cr/ui/context_menu_handler.js">
-
-(() => {
-// 'strict mode' is invoked for this scope.
-'use strict';
-
-//
-// <include src="../../common/js/async_util.js">
-// <include src="../../common/js/file_type.js">
-// <include src="../../common/js/files_app_entry_types.js">
-// <include src="../../../file_manager/common/js/volume_manager_types.js">
-// <include src="../../../file_manager/common/js/app_util.js">
-// <include src="../../common/js/util.js">
-// <include src="../../common/js/power.js">
-// <include src="../../common/js/progress_center_common.js">
-// <include src="../../common/js/storage_adapter.js">
-// <include src="../../common/js/importer_common.js">
-// <include src="../../common/js/trash.js">
-// <include src="../../common/js/xfm.js">
-//
-// <include src="constants.js">
-// <include src="crossover_search_utils.js">
-// <include src="ui/multi_menu.js">
-// <include src="ui/multi_menu_button.js">
-// <include src="ui/combobutton.js">
-// <include src="ui/commandbutton.js">
-// <include src="ui/file_manager_dialog_base.js">
-// <include src="metadata/metadata_cache_set.js">
-// <include src="metadata/metadata_provider.js">
-// <include src="metadata/metadata_request.js">
-//
-// <include src="actions_controller.js">
-// <include src="actions_model.js">
-// <include src="android_app_list_model.js">
-// <include src="app_state_controller.js">
-// <include src="column_visibility_controller.js">
-// <include src="crostini_controller.js">
-// <include src="dialog_action_controller.js">
-// <include src="dialog_type.js">
-// <include src="directory_contents.js">
-// <include src="directory_model.js">
-// <include src="directory_tree_naming_controller.js">
-// <include src="drive_dialog_controller.js">
-// <include src="drop_effect_and_label.js">
-// <include src="empty_folder_controller.js">
-// <include src="file_manager.js">
-// <include src="file_manager_commands.js">
-// <include src="file_list_model.js">
-// <include src="file_selection.js">
-// <include src="file_tasks.js">
-// <include src="file_transfer_controller.js">
-// <include src="file_type_filters_controller.js">
-// <include src="file_watcher.js">
-// <include src="folder_shortcuts_data_model.js">
-// <include src="sort_menu_controller.js">
-// <include src="gear_menu_controller.js">
-// <include src="holding_space_util.js">
-// <include src="import_controller.js">
-// <include src="last_modified_controller.js">
-// <include src="launch_param.js">
-// <include src="metadata/content_metadata_provider.js">
-// <include src="metadata/external_metadata_provider.js">
-// <include src="metadata/file_system_metadata_provider.js">
-// <include src="metadata/metadata_cache_item.js">
-// <include src="metadata/metadata_item.js">
-// <include src="metadata/metadata_model.js">
-// <include src="metadata/multi_metadata_provider.js">
-// <include src="metadata/thumbnail_model.js">
-// <include src="metadata_box_controller.js">
-// <include src="metadata_update_controller.js">
-// <include src="naming_controller.js">
-// <include src="navigation_list_model.js">
-// <include src="navigation_uma.js">
-// <include src="path_component.js">
-// <include src="quick_view_controller.js">
-// <include src="quick_view_model.js">
-// <include src="quick_view_uma.js">
-// <include src="scan_controller.js">
-// <include src="search_controller.js">
-// <include src="selection_menu_controller.js">
-// <include src="spinner_controller.js">
-// <include src="task_controller.js">
-// <include src="task_history.js">
-// <include src="toolbar_controller.js">
-// <include src="thumbnail_loader.js">
-// <include src="list_thumbnail_loader.js">
-// <include src="providers_model.js">
-// <include src="ui/actions_submenu.js">
-// <include src="ui/banners.js">
-// <include src="ui/breadcrumb.js">
-// <include src="ui/default_task_dialog.js">
-// <include src="ui/dialog_footer.js">
-// <include src="ui/directory_tree.js">
-// <include src="ui/drag_selector.js">
-// <include src="ui/empty_folder.js">
-// <include src="ui/file_grid.js">
-// <include src="ui/file_manager_ui.js">
-// <include src="ui/file_metadata_formatter.js">
-// <include src="ui/file_list_selection_model.js">
-// <include src="ui/file_table.js">
-// <include src="ui/file_table_list.js">
-// <include src="ui/file_tap_handler.js">
-// <include src="ui/files_alert_dialog.js">
-// <include src="ui/files_confirm_dialog.js">
-// <include src="ui/files_menu.js">
-// <include src="ui/gear_menu.js">
-// <include src="ui/install_linux_package_dialog.js">
-// <include src="ui/import_crostini_image_dialog.js">
-// <include src="ui/list_container.js">
-// <include src="ui/location_line.js">
-// <include src="ui/progress_center_panel.js">
-// <include src="ui/providers_menu.js">
-// <include src="ui/search_box.js">
-// <include src="main_window_component.js">
-// <include src="../../../file_manager/common/js/filtered_volume_manager.js">
-// <include src="webui_command_extender.js">
-
-// // For accurate load performance tracking place main.js should be
-// // the last include to include.
-// <include src="main.js">
-
-// Global fileManager reference useful for poking at from the console.
-window.fileManager = fileManager;
-
-// Exports
-window.util = util;
-// TODO(crbug.com/1115792) remove this export.
-window.AsyncUtil = AsyncUtil;
-})();
diff --git a/ui/file_manager/file_manager/main.html b/ui/file_manager/file_manager/main.html
index 3fa8bc076..bfb9608f 100644
--- a/ui/file_manager/file_manager/main.html
+++ b/ui/file_manager/file_manager/main.html
@@ -9,9 +9,7 @@
<title>$i18n{FILEMANAGER_APP_NAME}</title>
<meta name="google" value="notranslate">
- <script src="chrome://resources/polymer/v1_0/html-imports/html-imports.min.js"></script>
- <link rel="import" href="chrome://resources/html/polymer.html">
<link rel="stylesheet" href="chrome://resources/css/action_link.css">
<link rel="stylesheet" href="chrome://resources/css/text_defaults.css">
<link rel="stylesheet" href="chrome://resources/chromeos/colors/cros_colors.generated.css">
@@ -25,9 +23,7 @@
<link rel="stylesheet" href="foreground/css/file_types.css">
<link rel="stylesheet" href="foreground/css/common.css">
- <script src="chrome://resources/js/load_time_data.js"></script>
- <script src="foreground/js/elements_importer.js"></script>
- <script src="foreground/js/main_scripts.js" defer></script>
+ <script type="module" src="foreground/js/main.m.js" defer></script>
</head>
<body aria-label="$i18n{FILEMANAGER_APP_NAME}" tabindex="-1" class="files-ng">
diff --git a/ui/file_manager/file_manager_resources.grd b/ui/file_manager/file_manager_resources.grd
index 9de47b1..0fd7213 100644
--- a/ui/file_manager/file_manager_resources.grd
+++ b/ui/file_manager/file_manager_resources.grd
@@ -13,10 +13,6 @@
<includes>
<include name="IDR_FILEMANAGER_MANIFEST" file="file_manager/manifest.json" type="BINDATA" />
<!-- The Files app pages and scripts. -->
- <include name="IDR_FILE_MANAGER_MAIN" file="file_manager/main.html" type="BINDATA" />
- <include name="IDR_FILE_MANAGER_MAIN_JS" file="file_manager/foreground/js/main_scripts.js" flattenhtml="true" type="BINDATA" />
- <include name="IDR_FILE_MANAGER_ELEMENTS_IMPORTER_JS" file="file_manager/foreground/js/elements_importer.js" type="BINDATA" />
- <include name="IDR_FILE_MANAGER_BACKGROUND_JS" file="file_manager/background/js/background_scripts.js" flattenhtml="true" type="BINDATA" />
<include name="IDR_FILE_MANAGER_BACKGROUND_HTML" file="file_manager/background.html" type="BINDATA" />
<!-- Common Scripts. -->