1# Copyright 2014 The Chromium Authors. All rights reserved.
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5action("html") {
6  script = "build-html.py"
7
8  remoting_webapp_template_main = "html/template_main.html"
9  remoting_webapp_template_files = [
10    "html/butterbar.html",
11    "html/client_plugin.html",
12    "html/dialog_auth.html",
13    "html/dialog_client_connect_failed.html",
14    "html/dialog_client_connecting.html",
15    "html/dialog_client_host_needs_upgrade.html",
16    "html/dialog_client_pin_prompt.html",
17    "html/dialog_client_session_finished.html",
18    "html/dialog_client_third_party_auth.html",
19    "html/dialog_client_unconnected.html",
20    "html/dialog_confirm_host_delete.html",
21    "html/dialog_connection_history.html",
22    "html/dialog_host.html",
23    "html/dialog_host_install.html",
24    "html/dialog_host_setup.html",
25    "html/dialog_manage_pairings.html",
26    "html/dialog_token_refresh_failed.html",
27    "html/toolbar.html",
28    "html/ui_header.html",
29    "html/ui_it2me.html",
30    "html/ui_me2me.html",
31    "html/window_frame.html",
32  ]
33
34  # Remoting core JavaScript files.
35  remoting_webapp_js_core_files = [
36    "base.js",
37    "error.js",
38    "event_handlers.js",
39    "plugin_settings.js",
40    # TODO(garykac) Split out UI client stuff from remoting.js.
41    "remoting.js",
42    "typecheck.js",
43    "xhr.js",
44  ]
45
46  # Auth (client to host) JavaScript files.
47  remoting_webapp_js_auth_client2host_files = [
48    "third_party_host_permissions.js",
49    "third_party_token_fetcher.js",
50  ]
51
52  # Auth (Google account) JavaScript files.
53  remoting_webapp_js_auth_google_files = [
54    "identity.js",
55    "oauth2.js",
56    "oauth2_api.js",
57  ]
58
59  # Client JavaScript files.
60  remoting_webapp_js_client_files = [
61    "client_plugin.js",
62    # TODO(garykac) For client_screen:
63    # * Split out pin/access code stuff into separate file.
64    # * Move client logic into session_connector
65    "client_screen.js",
66    "client_session.js",
67    "clipboard.js",
68    "hangout_session.js",
69    "media_source_renderer.js",
70    "session_connector.js",
71    "smart_reconnector.js",
72    "video_frame_recorder.js",
73  ]
74
75  # gnubby authentication JavaScript files.
76  remoting_webapp_js_gnubby_auth_files = [
77    "gnubby_auth_handler.js",
78  ]
79  # cast extension handler JavaScript files.
80  remoting_webapp_js_cast_extension_files = [
81    "cast_extension_handler.js",
82  ]
83
84  # Host JavaScript files.
85  # Includes both it2me and me2me files.
86  remoting_webapp_js_host_files = [
87    "host_controller.js",
88    "host_daemon_facade.js",
89    "it2me_host_facade.js",
90    "host_session.js",
91  ]
92
93  # Logging and stats JavaScript files.
94  remoting_webapp_js_logging_files = [
95    "format_iq.js",
96    "log_to_server.js",
97    "server_log_entry.js",
98    "stats_accumulator.js",
99  ]
100
101  # UI JavaScript files.
102  remoting_webapp_js_ui_files = [
103    "butter_bar.js",
104    "connection_stats.js",
105    "feedback.js",
106    "fullscreen.js",
107    "fullscreen_v1.js",
108    "fullscreen_v2.js",
109    "l10n.js",
110    "menu_button.js",
111    "options_menu.js",
112    "ui_mode.js",
113    "toolbar.js",
114    "window_frame.js",
115  ]
116
117  # UI files for controlling the local machine as a host.
118  remoting_webapp_js_ui_host_control_files = [
119    "host_screen.js",
120    "host_setup_dialog.js",
121    "host_install_dialog.js",
122    "host_installer.js",
123    "paired_client_manager.js",
124  ]
125
126  # UI files for displaying (in the client) info about available hosts.
127  remoting_webapp_js_ui_host_display_files = [
128    "host.js",
129    "host_list.js",
130    "host_settings.js",
131    "host_table_entry.js",
132  ]
133
134  # Remoting WCS container JavaScript files.
135  remoting_webapp_js_wcs_container_files = [
136    "wcs_sandbox_container.js",
137  ]
138
139  # Browser test JavaScript files (uncomment if used below).
140  #remoting_webapp_js_browser_test_files = [
141  #  "browser_test/browser_test.js",
142  #  "browser_test/bump_scroll_browser_test.js",
143  #  "browser_test/cancel_pin_browser_test.js",
144  #  "browser_test/invalid_pin_browser_test.js",
145  #  "browser_test/update_pin_browser_test.js",
146  #]
147
148  # The JavaScript files required by main.html.
149  remoting_webapp_main_html_js_files =
150      # Include the core files first as it is required by the other files.
151      # Otherwise, Jscompile will complain.
152      remoting_webapp_js_core_files +
153      remoting_webapp_js_auth_client2host_files +
154      remoting_webapp_js_auth_google_files +
155      remoting_webapp_js_client_files +
156      remoting_webapp_js_gnubby_auth_files +
157      remoting_webapp_js_cast_extension_files +
158      remoting_webapp_js_host_files +
159      remoting_webapp_js_logging_files +
160      remoting_webapp_js_ui_files +
161      remoting_webapp_js_ui_host_control_files +
162      remoting_webapp_js_ui_host_display_files +
163      remoting_webapp_js_wcs_container_files
164      # Uncomment this line to include browser test files in the web app
165      # to expedite debugging or local development.
166      #+ remoting_webapp_js_browser_test_files
167
168  inputs = [ remoting_webapp_template_main ] +
169      remoting_webapp_template_files +
170      remoting_webapp_main_html_js_files
171
172  outputs = [
173    "$root_gen_dir/main.html",
174  ]
175
176  # Template files are relative to this directory. This passes some template
177  # files to the script, and the script reads templates from the files on disk.
178  # They all have to be relative to the same directory. The GYP build made all
179  # of these relative to the remoting directory, so this does the same.
180  template_rel_dir = "//remoting"
181
182  # TODO(brettw) It's very bad to put this file named "main" in the root
183  # generated file directory.
184  args = [
185    rebase_path("$root_gen_dir/main.html", template_rel_dir),
186    rebase_path(remoting_webapp_template_main, template_rel_dir),
187  ]
188  args += [ "--template" ] +
189      rebase_path(remoting_webapp_template_files, template_rel_dir)
190  args += [ "--js" ] +
191      rebase_path(remoting_webapp_main_html_js_files, template_rel_dir)
192  args += [ "--dir-for-templates",
193            rebase_path(template_rel_dir, root_build_dir) ]
194}
195
196# TODO(GYP) wcs_sandbox.html
197