Home | History | Annotate | Download | only in webapp
      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 
      5 action("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