Home | History | Annotate | Download | only in webapp
      1 <!doctype html>
      2 <!--
      3 Copyright (c) 2012 The Chromium Authors. All rights reserved.
      4 Use of this source code is governed by a BSD-style license that can be
      5 found in the LICENSE file.
      6 -->
      7 
      8 <html class="scrollable">
      9   <head>
     10     <meta charset="utf-8">
     11     <link rel="icon" type="image/png" href="chromoting16.webp">
     12     <link rel="stylesheet" href="open_sans.css">
     13     <link rel="stylesheet" href="connection_stats.css">
     14     <link rel="stylesheet" href="connection_history.css">
     15     <link rel="stylesheet" href="main.css">
     16     <link rel="stylesheet" href="menu_button.css">
     17     <link rel="stylesheet" href="toolbar.css">
     18     <script src="butter_bar.js"></script>
     19     <script src="client_plugin.js"></script>
     20     <script src="client_plugin_async.js"></script>
     21     <script src="client_screen.js"></script>
     22     <script src="client_session.js"></script>
     23     <script src="clipboard.js"></script>
     24     <script src="connection_history.js"></script>
     25     <script src="connection_stats.js"></script>
     26     <script src="error.js"></script>
     27     <script src="event_handlers.js"></script>
     28     <script src="format_iq.js"></script>
     29     <script src="host.js"></script>
     30     <script src="host_controller.js"></script>
     31     <script src="host_dispatcher.js"></script>
     32     <script src="host_list.js"></script>
     33     <script src="host_native_messaging.js"></script>
     34     <script src="host_screen.js"></script>
     35     <script src="host_session.js"></script>
     36     <script src="host_settings.js"></script>
     37     <script src="host_setup_dialog.js"></script>
     38     <script src="host_table_entry.js"></script>
     39     <script src="identity.js"></script>
     40     <script src="l10n.js"></script>
     41     <script src="log_to_server.js"></script>
     42     <script src="menu_button.js"></script>
     43     <script src="oauth2.js"></script>
     44     <script src="oauth2_api.js"></script>
     45     <script src="paired_client_manager.js"></script>
     46     <script src="plugin_settings.js"></script>
     47     <script src="remoting.js"></script>
     48     <script src="server_log_entry.js"></script>
     49     <script src="session_connector.js"></script>
     50     <script src="stats_accumulator.js"></script>
     51     <script src="third_party_host_permissions.js"></script>
     52     <script src="third_party_token_fetcher.js"></script>
     53     <script src="toolbar.js"></script>
     54     <script src="ui_mode.js"></script>
     55     <script src="xhr.js"></script>
     56     <script src="wcs_sandbox_container.js"></script>
     57     <title i18n-content="PRODUCT_NAME"></title>
     58   </head>
     59 
     60   <body>
     61 
     62     <!-- loading-mode is initially visible, but becomes hidden as soon as an
     63          AppMode is selected by remoting.init. All other divs are initially
     64          hidden, but are shown appropriately when the mode changes. -->
     65     <section id="loading-mode" data-ui-mode="">
     66       <em>Loading&hellip;</em>
     67     </section> <!-- loading-mode -->
     68 
     69     <div id="daemon-plugin-container"></div>
     70     <div id="host-plugin-container"></div>
     71 
     72     <iframe id="wcs-sandbox" src="wcs_sandbox.html" hidden></iframe>
     73 
     74     <header data-ui-mode="home" hidden>
     75       <div>
     76         <img src="chromoting48.webp">
     77         <h1 class="icon-label" i18n-content="PRODUCT_NAME"></h1>
     78       </div>
     79       <div class="box-spacer"></div>
     80       <div id="top-secondary">
     81         <span id="current-email"></span>
     82         <span data-ui-mode="home" class="apps-v1-only">
     83           <a id="sign-out" href="#" i18n-content="SIGN_OUT_BUTTON"></a>
     84           <!-- TODO(jamiewalch): Add this back in when we support it.
     85           <a id="connection-history"
     86              i18n-content="CONNECTION_HISTORY_BUTTON"></a> |
     87           -->
     88         </span> |
     89         <a href="https://www.google.com/support/chrome/bin/answer.py?answer=1649523"
     90            target="_blank" i18n-content="HELP"></a>
     91       </div>
     92     </header>
     93 
     94     <div data-ui-mode="home">
     95       <div id="butter-bar" hidden>
     96         <p>
     97           <span id="butter-bar-message"></span>
     98           <a id="butter-bar-dismiss" href="#">
     99             <img src="icon_cross.webp" class="close-icon">
    100           </a>
    101         </p>
    102       </div>
    103     </div>
    104 
    105     <div data-ui-mode="home" hidden>
    106 
    107       <section>
    108         <h2 i18n-content="MODE_IT2ME"></h2>
    109         <div id="it2me-first-run">
    110           <div>
    111             <p class="infographic-description"
    112                i18n-content="IT2ME_FIRST_RUN"></p>
    113             <button id="get-started-it2me"
    114                     i18n-content="GET_STARTED"
    115                     disabled></button>
    116           </div>
    117           <div class="infographic">
    118             <img src="infographic_remote_assistance.webp">
    119           </div>
    120         </div>
    121         <div id="it2me-content">
    122           <p id="webapp-description"
    123              i18n-content="DESCRIPTION_HOME"
    124              i18n-value-1="<a href='https://chrome.google.com/remotedesktop' target='_blank'>chrome.google.com/remotedesktop</a>"></p>
    125           <div>
    126             <div class="section-row">
    127               <div class="box-spacer">
    128                 <div i18n-content="HOME_SHARE_DESCRIPTION"></div>
    129                 <div id="chrome-os-no-share"
    130                      i18n-content="HOME_SHARE_DESCRIPTION_CHROME_OS"
    131                      class="small-print"></div>
    132               </div>
    133               <div>
    134                 <button id="share-button"
    135                         i18n-content="HOME_SHARE_BUTTON"
    136                         class="kd-button-share"
    137                         type="button">
    138                 </button>
    139               </div>
    140             </div>
    141           </div>
    142           <div class="section-row">
    143             <div i18n-content="HOME_ACCESS_DESCRIPTION"
    144                  class="box-spacer"></div>
    145             <div>
    146               <button id="access-mode-button"
    147                       i18n-content="HOME_ACCESS_BUTTON"
    148                       type="button">
    149               </button>
    150             </div>
    151           </div>
    152         </div> <!-- it2me-content -->
    153       </section> <!-- Remote Assistance -->
    154 
    155       <section id="host-list-div" class="host-list-container">
    156         <h2 i18n-content="MODE_ME2ME"></h2>
    157         <div id="me2me-first-run">
    158           <div>
    159             <p class="infographic-description"
    160                i18n-content="ME2ME_FIRST_RUN"></p>
    161             <button id="get-started-me2me"
    162                     i18n-content="GET_STARTED"
    163                     disabled></button>
    164           </div>
    165           <div class="infographic">
    166             <img src="infographic_my_computers.webp">
    167           </div>
    168         </div>
    169         <div id="me2me-content">
    170           <div id="host-list" hidden></div>
    171           <div id="host-list-error" class="box" hidden>
    172             <div id="host-list-error-message" class="error-state"></div>
    173             <div class="box-spacer"></div>
    174             <button type="button"
    175                     id="host-list-refresh-failed-button"></button>
    176           </div>
    177           <div id="daemon-control" data-daemon-state="enabled disabled" hidden>
    178             <div class="section-row no-non-local-hosts"
    179                  data-daemon-state="disabled">
    180               <img src="icon_host.webp" class="host-list-main-icon">
    181               <div class="box-spacer host-list-label"
    182                    id="start-daemon-message"
    183                    i18n-content="HOME_DAEMON_START_MESSAGE"></div>
    184               <button type="button"
    185                       id="start-daemon"
    186                       i18n-content="HOME_DAEMON_START_BUTTON">
    187               </button>
    188             </div> <!-- disabled -->
    189             <div id="this-host-connect"
    190                  class="section-row clickable no-non-local-hosts"
    191                  data-daemon-state="enabled">
    192               <div class="host-list-main-icon">
    193                 <span id="this-host-warning"></span>
    194                 <img id="this-host-icon"
    195                      src="icon_host.webp">
    196               </div>
    197               <div id="this-host-name" class="box-spacer"></div>
    198               <span id="this-host-rename"
    199                     class="host-list-edit"
    200                     tabIndex="0">
    201                 <img id="this-host-rename"
    202                      class="host-list-rename-icon"
    203                      src="icon_pencil.webp">
    204               </span>
    205               <button type="button"
    206                       id="stop-daemon"
    207                       i18n-content="HOME_DAEMON_STOP_BUTTON">
    208               </button>
    209             </div> <!-- enabled -->
    210             <div data-daemon-state="enabled">
    211               <div>
    212                 <span i18n-content="HOME_DAEMON_ACTIVE_MESSAGE"></span>
    213                 <a id="change-daemon-pin"
    214                    href="#"
    215                    i18n-content="HOME_DAEMON_CHANGE_PIN_LINK"></a>
    216               </div>
    217               <div id="paired-client-manager-message" hidden>
    218                 <span i18n-content="HOME_DAEMON_PAIRED_MESSAGE"></span>
    219                 <a href="#"
    220                    id="open-paired-client-manager-dialog"
    221                    i18n-content="HOME_DAEMON_MANAGE_PAIRINGS"></a>
    222             </div>
    223           </div> <!-- daemon-control -->
    224           <div id="host-list-empty" hidden>
    225             <div id="host-list-empty-hosting-supported"
    226                  class="host-list-empty-instructions"
    227                  i18n-content="HOST_LIST_EMPTY_HOSTING_SUPPORTED"
    228                  i18n-value-name-1="HOME_DAEMON_START_BUTTON">
    229             </div>
    230             <div id="host-list-empty-hosting-unsupported"
    231                  class="host-list-empty-instructions"
    232                  i18n-content="HOST_LIST_EMPTY_HOSTING_UNSUPPORTED"
    233                  i18n-value-name-1="HOME_DAEMON_START_BUTTON">
    234             </div>
    235           </div>
    236         </div> <!-- me2me-content -->
    237       </section> <!-- host-list-div -->
    238     </div> <!-- home -->
    239 
    240     <div id="auth-dialog" hidden>
    241       <div class="dialog-screen"></div>
    242       <div class="dialog-container">
    243         <div class="box-spacer"></div>
    244         <div class="kd-modaldialog">
    245           <h2 i18n-content="MODE_AUTHORIZE"></h2>
    246           <p id="auth-error-message"
    247              i18n-content="DESCRIPTION_AUTHORIZE"
    248              class="message"></p>
    249           <div class="button-row">
    250             <button id="auth-button"
    251                     type="button"
    252                     autofocus="autofocus"
    253                     i18n-content="CONTINUE_BUTTON">
    254             </button>
    255           </div>
    256         </div>
    257         <div class="box-spacer"></div>
    258       </div>
    259     </div> <!-- auth-dialog -->
    260 
    261     <div class="dialog-screen"
    262          data-ui-mode="home.host home.client home.history home.confirm-host-delete home.host-setup home.token-refresh-failed home.manage-pairings"
    263          hidden></div>
    264 
    265     <div class="dialog-container"
    266          data-ui-mode="home.host home.client home.history home.confirm-host-delete home.host-setup home.token-refresh-failed home.manage-pairings"
    267          hidden>
    268 
    269       <div class="box-spacer"></div>
    270 
    271       <!-- TODO(jamiewalch): Refactor the various error-state divs -->
    272       <div class="kd-modaldialog" data-ui-mode="home.token-refresh-failed">
    273         <div class="message">
    274           <span id="token-refresh-error-message" class="error-state"></span>
    275         </div>
    276         <div id="token-refresh-auth-failed" class="box">
    277           <div class="box-spacer"></div>
    278           <button id="token-refresh-error-sign-in"
    279                   type="button"
    280                   i18n-content="SIGN_IN_BUTTON"></button>
    281         </div>
    282         <div id="token-refresh-other-error" class="box">
    283           <div class="box-spacer"></div>
    284           <button id="token-refresh-error-ok"
    285                   type="button"
    286                   i18n-content="OK"></button>
    287         </div>
    288       </div> <!-- home.token-refresh-failed -->
    289 
    290       <div id="host-setup-dialog"
    291            class="kd-modaldialog"
    292            data-ui-mode="home.host-setup">
    293         <form id="ask-pin-form"
    294               data-ui-mode="home.host-setup.ask-pin"
    295               action="">
    296           <p class="message">
    297             <span i18n-content="HOST_SETUP_DIALOG_DESCRIPTION"
    298                   i18n-value-1="<b>"
    299                   i18n-value-2="</b>"></span>
    300             <a href="http://support.google.com/chrome/bin/answer.py?hl=en&answer=1649523"
    301                target="_blank"
    302                i18n-content="WHY_IS_THIS_SAFE"></a>
    303           </p>
    304           <table id="set-pin-table">
    305             <tr>
    306               <td class="table-label">
    307                 <label for="daemon-pin-entry"
    308                        i18n-content="ASK_PIN_DIALOG_LABEL"
    309                        class="editbox-label"></label>
    310               </td>
    311               <td>
    312                 <input id="daemon-pin-entry"
    313                        autofocus="autofocus"
    314                        type="password">
    315               </td>
    316             </tr>
    317             <tr>
    318               <td class="table-label">
    319                 <label for="daemon-pin-confirm"
    320                        i18n-content="ASK_PIN_DIALOG_CONFIRM_LABEL"
    321                        class="editbox-label"></label>
    322               </td>
    323               <td>
    324                 <input id="daemon-pin-confirm" type="password">
    325               </td>
    326             <tr>
    327           </table>
    328           <div id="daemon-pin-error-div" class="message" hidden>
    329             <span id="daemon-pin-error-message" class="error-state">
    330             </span>
    331           </div>
    332           <div id="usagestats-consent" hidden>
    333             <label class="checkbox-label">
    334               <input id="usagestats-consent-checkbox" type="checkbox">
    335               <span i18n-content="HOST_SETUP_CRASH_REPORTING_MESSAGE"></span>
    336             </label>
    337           </div>
    338           <div class="button-row">
    339             <button id="daemon-pin-ok" type="submit" i18n-content="OK">
    340             </button>
    341             <button id="daemon-pin-cancel" type="button" i18n-content="CANCEL">
    342             </button>
    343           </div>
    344         </form>
    345         <div data-ui-mode="home.host-setup.processing"
    346              class="box"
    347              hidden>
    348           <span class="waiting prominent"
    349                 id="host-setup-processing-message">
    350           </span>
    351         </div>
    352         <div data-ui-mode="home.host-setup.done" hidden>
    353           <div id="host-setup-done-message" class="message"></div>
    354           <div id="host-setup-done-message-2" class="message"></div>
    355           <div class="box">
    356             <div class="box-spacer"></div>
    357             <button id="host-config-done-dismiss"
    358                     autofocus="autofocus"
    359                     i18n-content="OK"></button>
    360           </div>
    361         </div>
    362         <div data-ui-mode="home.host-setup.error" hidden>
    363           <div id="host-setup-error-message" class="error-state"></div>
    364           <div class="box">
    365             <div class="box-spacer"></div>
    366             <button id="host-config-error-dismiss"
    367                     autofocus="autofocus"
    368                     i18n-content="OK"></button>
    369           </div>
    370         </div>
    371         <div data-ui-mode="home.host-setup.install" hidden>
    372           <div class="message" i18n-content="HOST_SETUP_INSTALL"></div>
    373           <div class="box">
    374             <div class="box-spacer"></div>
    375             <button id="host-config-install-continue"
    376                     autofocus="autofocus"
    377                     i18n-content="OK"></button>
    378             <button id="host-config-install-dismiss"
    379                     i18n-content="CANCEL"></button>
    380           </div>
    381         </div>
    382         <div data-ui-mode="home.host-setup.install-pending" hidden>
    383           <div class="message"
    384                     i18n-content="HOST_SETUP_INSTALL_PENDING"></div>
    385           <div class="box">
    386             <div class="box-spacer"></div>
    387             <button id="host-config-install-retry"
    388                     autofocus="autofocus"
    389                     i18n-content="OK"></button>
    390             </div>
    391         </div>
    392       </div> <!-- host-setup-dialog -->
    393 
    394       <div id="host-dialog"
    395            class="kd-modaldialog"
    396            data-ui-mode="home.host">
    397 
    398         <div data-ui-mode="home.host.waiting-for-code" class="message"
    399              i18n-content="MESSAGE_GENERATING">
    400         </div> <!-- host.waiting-for-code -->
    401 
    402         <div data-ui-mode="home.host.waiting-for-connection">
    403           <div i18n-content="INSTRUCTIONS_SHARE_ABOVE"></div>
    404           <div id="access-code-display" dir="ltr" class="selectable"></div>
    405           <div id="access-code-countdown-container">
    406             <div id="access-code-countdown" class="expiring" hidden>
    407               <span id="seconds-remaining"
    408                     i18n-content="ACCESS_CODE_TIMER"></span>
    409             </div>
    410           </div>
    411           <div i18n-content="INSTRUCTIONS_SHARE_BELOW"></div>
    412         </div> <!-- host.waiting-for-connection -->
    413 
    414         <div data-ui-mode="home.host.shared">
    415           <div id="host-shared-message" class="message"
    416                i18n-content="MESSAGE_SHARED"></div>
    417           <div class="button-row">
    418             <button id="stop-sharing-button"
    419                     type="button"
    420                     i18n-content="STOP_SHARING_BUTTON">
    421             </button>
    422           </div>
    423         </div> <!-- host.shared -->
    424 
    425         <div data-ui-mode="home.host.share-failed" class="message">
    426           <span id="host-plugin-error" class="error-state"></span>
    427         </div> <!-- host.share-failed -->
    428 
    429         <div data-ui-mode="home.host.share-finished" class="message"
    430              i18n-content="MESSAGE_SESSION_FINISHED">
    431         </div> <!-- host.share-finished -->
    432 
    433         <div data-ui-mode="home.host.share-failed home.host.share-finished"
    434              class="button-row">
    435           <button id="host-finished-button"
    436                   type="button"
    437                   autofocus="autofocus"
    438                   i18n-content="OK">
    439           </button>
    440         </div>
    441 
    442         <div id="nat-box"
    443              class="information-box"
    444              data-ui-mode="home.host.waiting-for-connection"
    445              i18n-content="WARNING_NAT_DISABLED">
    446         </div> <!-- nat-box -->
    447 
    448         <div data-ui-mode="home.host.waiting-for-connection home.host.waiting-for-code"
    449              class="box space-before">
    450           <span class="waiting" i18n-content="FOOTER_WAITING"></span>
    451           <div class="box-spacer"></div>
    452           <button id="cancel-share-button" i18n-content="CANCEL"></button>
    453         </div>
    454 
    455       </div> <!-- host dialog -->
    456 
    457       <div id="client-dialog"
    458            class="kd-modaldialog"
    459            data-ui-mode="home.client">
    460 
    461         <div data-ui-mode="home.client.unconnected">
    462           <div i18n-content="DESCRIPTION_CONNECT"></div>
    463           <div id="access-code-entry-row">
    464             <form id="access-code-form" action="">
    465               <div class="box">
    466                 <div class="box-spacer"></div>
    467                 <label for="access-code-entry"
    468                        i18n-content="ACCESS_CODE"
    469                        class="editbox-label">
    470                 </label>
    471                 <input id="access-code-entry"
    472                        type="text"
    473                        autofocus="autofocus"
    474                        autocomplete="off"/>
    475                 <div class="box-spacer"></div>
    476               </div>
    477               <div class="button-row">
    478                 <button id="connect-button"
    479                         type="submit"
    480                         i18n-content="CONNECT_BUTTON">
    481                 </button>
    482                 <button id="cancel-access-code-button"
    483                         type="button"
    484                         i18n-content="CANCEL">
    485                 </button>
    486               </div>
    487             </form>
    488           </div> <!-- code-entry-row -->
    489           <div id="startup-mode-box-it2me" class="information-box" hidden>
    490             <span i18n-content="WARNING_NOT_WINDOWED"></span>
    491             <a href="http://support.google.com/chrome/bin/answer.py?hl=en&answer=1649523"
    492                target="_blank"
    493                i18n-content="LEARN_HOW"></a>
    494           </div> <!-- startup-mode-box-it2me -->
    495 
    496         </div> <!-- client.unconnected -->
    497 
    498         <div data-ui-mode="home.client.connecting" class="box">
    499           <span class="waiting prominent"
    500                 i18n-content="FOOTER_CONNECTING"></span>
    501           <div class="box-spacer"></div>
    502           <button id="cancel-connect-button" i18n-content="CANCEL"></button>
    503         </div> <!-- client.connecting -->
    504 
    505         <div data-ui-mode="home.client.host-needs-upgrade">
    506           <div id="host-needs-update-message"
    507                class="message error-state multi-line-error-state">
    508           </div>
    509           <div class="message">
    510             <span i18n-content="HOST_NEEDS_UPDATE_DETAIL"></span>
    511             <a href="http://support.google.com/chrome/bin/answer.py?hl=en&answer=1649523"
    512                target="_blank"
    513                i18n-content="LEARN_HOW"></a>
    514           </div>
    515           <div class="button-row">
    516             <button id="host-needs-update-connect-button"
    517                     type="button"
    518                     i18n-content="CONNECT_ANYWAY"
    519                     autofocus="autofocus">
    520             </button>
    521             <button id="host-needs-update-cancel-button"
    522                     type="button"
    523                     i18n-content="CANCEL">
    524             </button>
    525           </div>
    526         </div> <!-- home.client.host-needs-upgrade -->
    527 
    528         <div data-ui-mode="home.client.pin-prompt">
    529           <div id="pin-message"
    530                i18n-content="PIN_MESSAGE"
    531                class="message"></div>
    532           <form id="pin-form" action="">
    533             <table class="centered">
    534               <tr>
    535                 <td>
    536                   <label for="pin-entry"
    537                          i18n-content="PIN"
    538                          class="editbox-label"></label>
    539                 </td>
    540                 <td>
    541                   <input id="pin-entry"
    542                          type="password"
    543                          autofocus="autofocus"
    544                          autocomplete="off"/>
    545                   <button id="pin-connect-button"
    546                           type="submit"
    547                           i18n-content="CONNECT_BUTTON">
    548                   </button>
    549                   <button id="cancel-pin-entry-button"
    550                           type="button"
    551                           i18n-content="CANCEL">
    552                   </button>
    553                 </td>
    554               </tr>
    555               <tr>
    556                 <td>
    557                   <!-- Empty cell to align the checkbox and PIN entry. -->
    558                 </td>
    559                 <td>
    560                   <label id="remember-pin" class="checkbox-label">
    561                     <input id="remember-pin-checkbox" type="checkbox">
    562                     <span i18n-content="REMEMBER_PIN"></span>
    563                   </label>
    564                 </td>
    565               </tr>
    566             </table>
    567           </form>
    568           <div id="startup-mode-box-me2me"
    569                class="information-box centered"
    570                hidden>
    571             <span i18n-content="WARNING_NOT_WINDOWED"></span>
    572             <a href="http://support.google.com/chrome/bin/answer.py?hl=en&answer=1649523"
    573                target="_blank"
    574                i18n-content="LEARN_HOW"></a>
    575           </div> <!-- startup-mode-box-it2me -->
    576         </div> <!-- client.pin-prompt -->
    577 
    578         <div data-ui-mode="home.client.third-party-auth" class="centered">
    579           <div id="third-party-auth-message"
    580                i18n-content="DESCRIPTION_THIRD_PARTY_AUTH"
    581                class="message"></div>
    582           <div id="third-party-auth-url"
    583                class="message"></div>
    584           <div class="button-row">
    585             <button id="third-party-auth-button"
    586                     type="button"
    587                     autofocus="autofocus"
    588                     i18n-content="CONTINUE_BUTTON">
    589             </button>
    590           </div>
    591         </div> <!-- third-party-auth-dialog -->
    592 
    593         <div data-ui-mode="home.client.connect-failed"
    594              class="message">
    595           <span id="connect-error-message" class="error-state"></span>
    596         </div> <!-- client.connect-failed -->
    597 
    598         <div data-ui-mode="home.client.session-finished"
    599              class="message" i18n-content="MESSAGE_SESSION_FINISHED">
    600         </div> <!-- client.session-finished -->
    601 
    602         <div data-ui-mode="home.client.connect-failed.it2me home.client.session-finished.it2me"
    603              class="button-row">
    604           <button id="client-finished-it2me-button"
    605                   type="button"
    606                   i18n-content="OK"
    607                   autofocus="autofocus">
    608           </button>
    609         </div> <!-- connect-failed.it2me session-finished.it2me -->
    610 
    611         <div data-ui-mode="home.client.connect-failed.me2me home.client.session-finished.me2me"
    612              class="button-row">
    613           <button id="client-reconnect-button"
    614                   type="button"
    615                   i18n-content="RETRY"
    616                   autofocus="autofocus">
    617           </button>
    618           <button id="client-finished-me2me-button"
    619                   type="button"
    620                   i18n-content="CANCEL">
    621           </button>
    622         </div> <!-- connect-failed.me2me session-finished.me2me -->
    623 
    624       </div> <!-- client-dialog -->
    625 
    626       <div id="connection-history-dialog"
    627            class="kd-modaldialog"
    628            data-ui-mode="home.history"
    629            hidden>
    630         <div class="internal-frame-of-reference">
    631           <h2 i18n-content="CONNECTION_HISTORY_TITLE"></h2>
    632           <div id="connection-history-options">
    633             <div class="link-list">
    634               <a id="history-view-all"
    635                  i18n-content="ALL_CONNECTIONS"
    636                  class="no-link"></a>
    637               <a id="history-view-outgoing"
    638                  i18n-content="OUTGOING_CONNECTIONS"></a>
    639               <a id="history-view-incoming"
    640                  i18n-content="INCOMING_CONNECTIONS"></a>
    641             </div>
    642             <div class="box-spacer"></div>
    643             <a id="clear-connection-history" i18n-content="CLEAR_HISTORY"></a>
    644           </div>
    645           <div id="connection-history-scroller">
    646             <table id="connection-history-table">
    647               <thead>
    648                 <tr>
    649                   <td></td>
    650                   <td i18n-content="TIME_HEADER"></td>
    651                   <td></td>
    652                   <td i18n-content="CONNECTION_FROM_HEADER"></td>
    653                   <td i18n-content="CONNECTION_TO_HEADER"></td>
    654                   <td i18n-content="DURATION_HEADER"></td>
    655                 </tr>
    656               </thead>
    657               <tbody id="connection-history-entries" class="selectable">
    658               </tbody>
    659             </table>
    660           </div>
    661           <button id="close-connection-history"
    662                   i18n-content="CLOSE"
    663                   type="button"></button>
    664         </div>
    665       </div> <!-- connection-history-dialog -->
    666 
    667       <div id="confirm-host-delete-dialog"
    668            class="kd-modaldialog"
    669            data-ui-mode="home.confirm-host-delete"
    670            hidden>
    671         <p id="confirm-host-delete-message"
    672            i18n-content="CONFIRM_HOST_DELETE"
    673            class="message">
    674         </p>
    675         <div class="button-row">
    676           <button id="confirm-host-delete"
    677                   i18n-content="DISABLE_HOST"
    678                   type="button">
    679           </button>
    680           <button id="cancel-host-delete"
    681                   i18n-content="CANCEL"
    682                   autofocus="autofocus"
    683                   type="button">
    684           </button>
    685         </div>
    686       </div> <!-- home.confirm-host-delete -->
    687 
    688       <div id="paired-client-manager-dialog"
    689            class="kd-modaldialog"
    690            data-ui-mode="home.manage-pairings"
    691            hidden>
    692         <p i18n-content="PAIRED_CLIENTS_INTRODUCTION"
    693            class="message">
    694         </p>
    695         <div id="paired-clients-list">
    696           <table>
    697             <thead>
    698               <tr>
    699                 <td i18n-content="PAIRED_CLIENT_DATE"></td>
    700                 <td i18n-content="PAIRED_CLIENT_NAME"></td>
    701               </tr>
    702             </thead>
    703             <tbody>
    704             </tbody>
    705           </table>
    706           <p id="no-paired-clients">
    707             <em i18n-content="NO_PAIRED_CLIENTS"></em>
    708           </p>
    709         </div> <!-- paired-clients-list -->
    710         <p id="paired-client-manager-dialog-error"
    711            class="error-state"
    712            hidden>
    713         </p>
    714         <div class="button-row">
    715           <span id="paired-client-manager-dialog-working"
    716                 class="waiting"
    717                 i18n-content="WORKING"
    718                 hidden></span>
    719           <button id="delete-all-paired-clients"
    720                   i18n-content="DELETE_ALL_PAIRED_CLIENTS">
    721           <button id="close-paired-client-manager-dialog"
    722                   i18n-content="CLOSE">
    723           </button>
    724         </div>
    725       </div> <!-- home.manage-pairings -->
    726 
    727       <div class="box-spacer"></div>
    728 
    729     </div> <!-- dialog-container -->
    730 
    731     <div id="session-mode" data-ui-mode="in-session home.client" hidden>
    732       <div id="session-toolbar"
    733            data-ui-mode="in-session"
    734            class="toolbar-container"
    735            hidden>
    736         <div class="toolbar-border">
    737           <div id="session-status-message"
    738                 i18n-content="LABEL_CONNECTED"></div>
    739           <div id="connected-to" class="box-spacer"></div>
    740           <button id="toolbar-disconnect"
    741                   type="button"
    742                   i18n-content="DISCONNECT_MYSELF_BUTTON">
    743           </button>
    744           <span class="menu-button" id="send-keys-menu">
    745             <button>
    746               <span i18n-content="SEND_KEYS"></span>
    747               <img src="disclosure_arrow_down.webp"
    748                    class="kd-disclosureindicator">
    749             </button>
    750             <ul>
    751               <li id="send-ctrl-alt-del" i18n-content="SEND_CTRL_ALT_DEL"></li>
    752               <li id="send-print-screen" i18n-content="SEND_PRINT_SCREEN"></li>
    753             </ul>
    754           </span>
    755           <span class="menu-button" id="screen-options-menu">
    756             <button>
    757               <span i18n-content="SCREEN_OPTIONS"></span>
    758               <img src="disclosure_arrow_down.webp"
    759                    class="kd-disclosureindicator">
    760             </button>
    761             <ul>
    762               <li id="screen-resize-to-client"
    763                   i18n-content="RESIZE_TO_CLIENT"></li>
    764               <li id="screen-shrink-to-fit" i18n-content="SHRINK_TO_FIT"></li>
    765               <li class="menu-separator"></li>
    766               <li id="toggle-full-screen" i18n-content="FULL_SCREEN"></li>
    767             </ul>
    768           </span>
    769         </div>
    770         <div class="toolbar-stub" id="toolbar-stub">
    771           <div class="arrow-down"></div>
    772         </div>
    773       </div> <!-- session-toolbar -->
    774     </div> <!-- session-mode -->
    775 
    776     <div id="statistics" dir="ltr" class="selectable" hidden>
    777     </div> <!-- statistics -->
    778 
    779   </body>
    780 </html>
    781