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.
10 <meta charset=
"utf-8">
11 <link href=
"https://fonts.googleapis.com/css?family=Open+Sans&v1"
12 rel=
"stylesheet" type=
"text/css">
13 <link rel=
"icon" type=
"image/png" href=
"chromoting16.png">
14 <link rel=
"stylesheet" href=
"connection_stats.css">
15 <link rel=
"stylesheet" href=
"connection_history.css">
16 <link rel=
"stylesheet" href=
"main.css">
17 <link rel=
"stylesheet" href=
"menu_button.css">
18 <link rel=
"stylesheet" href=
"toolbar.css">
19 <script src=
"host_setup_dialog.js"></script>
20 <script src=
"client_plugin.js"></script>
21 <script src=
"client_plugin_async.js"></script>
22 <script src=
"client_screen.js"></script>
23 <script src=
"client_session.js"></script>
24 <script src=
"clipboard.js"></script>
25 <script src=
"connection_history.js"></script>
26 <script src=
"connection_stats.js"></script>
27 <script src=
"event_handlers.js"></script>
28 <script src=
"format_iq.js"></script>
29 <script src=
"host_controller.js"></script>
30 <script src=
"host_list.js"></script>
31 <script src=
"host_screen.js"></script>
32 <script src=
"host_session.js"></script>
33 <script src=
"host_table_entry.js"></script>
34 <script src=
"l10n.js"></script>
35 <script src=
"log_to_server.js"></script>
36 <script src=
"menu_button.js"></script>
37 <script src=
"oauth2.js"></script>
38 <script src=
"plugin_settings.js"></script>
39 <script src=
"remoting.js"></script>
40 <script src=
"server_log_entry.js"></script>
41 <script src=
"stats_accumulator.js"></script>
42 <script src=
"suspend_monitor.js"></script>
43 <script src=
"toolbar.js"></script>
44 <script src=
"ui_mode.js"></script>
45 <script src=
"xhr.js"></script>
46 <script src=
"wcs.js"></script>
47 <script src=
"wcs_loader.js"></script>
48 <title i18n-content=
"PRODUCT_NAME"></title>
53 <!-- loading-mode is initially visible, but becomes hidden as soon as an
54 AppMode is selected by remoting.init. All other divs are initially
55 hidden, but are shown appropriately when the mode changes. -->
56 <section id=
"loading-mode" data-ui-mode=
"">
57 <em>Loading
…</em>
58 </section> <!-- loading-mode -->
60 <div id=
"daemon-plugin-container"></div>
62 <header data-ui-mode=
"home" hidden
>
64 <img src=
"chromoting48.png">
65 <h1 class=
"icon-label" i18n-content=
"PRODUCT_NAME"></h1>
67 <div class=
"box-spacer"></div>
68 <div id=
"top-secondary">
69 <span id=
"current-email"></span>
70 <span data-ui-mode=
"home">
71 <a id=
"sign-out" href=
"#" i18n-content=
"SIGN_OUT_BUTTON"></a> |
72 <!-- TODO(jamiewalch): Add this back in when we support it.
73 <a id="connection-history"
74 i18n-content="CONNECTION_HISTORY_BUTTON"></a> |
77 <a href=
"https://www.google.com/support/chrome/bin/answer.py?answer=1649523"
78 target=
"_blank" i18n-content=
"HELP"></a>
82 <div data-ui-mode=
"home" hidden
>
85 <h2 i18n-content=
"MODE_IT2ME"></h2>
86 <div id=
"it2me-first-run">
88 <p class=
"infographic-description"
89 i18n-content=
"IT2ME_FIRST_RUN"></p>
90 <button id=
"get-started-it2me"
91 i18n-content=
"GET_STARTED"
94 <div class=
"infographic">
95 <img src=
"infographic_remote_assistance.png">
98 <div id=
"it2me-content">
99 <p id=
"webapp-description"
100 i18n-content=
"DESCRIPTION_HOME"
101 i18n-value-1=
"<a href='https://chrome.google.com/remotedesktop'>chrome.google.com/remotedesktop</a>"></p>
103 <div class=
"section-row">
104 <div class=
"box-spacer">
105 <div i18n-content=
"HOME_SHARE_DESCRIPTION"></div>
106 <div id=
"chrome-os-no-share"
107 i18n-content=
"HOME_SHARE_DESCRIPTION_CHROME_OS"
108 class=
"small-print"></div>
111 <button id=
"share-button"
112 i18n-content=
"HOME_SHARE_BUTTON"
113 class=
"kd-button-share"
119 <div class=
"section-row">
120 <div i18n-content=
"HOME_ACCESS_DESCRIPTION"
121 class=
"box-spacer"></div>
123 <button id=
"access-mode-button"
124 i18n-content=
"HOME_ACCESS_BUTTON"
129 </div> <!-- it2me-content -->
130 </section> <!-- Remote Assistance -->
132 <section id=
"host-list-div" class=
"host-list-container">
133 <h2 i18n-content=
"MODE_ME2ME"></h2>
134 <div id=
"me2me-first-run">
136 <p class=
"infographic-description"
137 i18n-content=
"ME2ME_FIRST_RUN"></p>
138 <button id=
"get-started-me2me"
139 i18n-content=
"GET_STARTED"
142 <div class=
"infographic">
143 <img src=
"infographic_my_computers.png">
146 <div id=
"me2me-content">
147 <div id=
"host-list" hidden
></div>
148 <div id=
"host-list-error" class=
"box" hidden
>
149 <div id=
"host-list-error-message" class=
"error-state"></div>
150 <div class=
"box-spacer"></div>
151 <button type=
"button"
152 id=
"host-list-refresh-failed-button"></button>
154 <div id=
"daemon-control" data-daemon-state=
"enabled disabled" hidden
>
155 <div class=
"section-row no-non-local-hosts"
156 data-daemon-state=
"disabled">
157 <img src=
"icon_host.png" class=
"host-list-main-icon">
158 <div class=
"box-spacer host-list-label"
159 id=
"start-daemon-message"
160 i18n-content=
"HOME_DAEMON_START_MESSAGE"></div>
161 <div id=
"this-host-spacer" class=
"box-spacer"></div>
162 <button type=
"button"
164 i18n-content=
"HOME_DAEMON_START_BUTTON">
166 </div> <!-- disabled -->
167 <div id=
"this-host-connect"
168 class=
"section-row clickable no-non-local-hosts"
169 data-daemon-state=
"enabled">
170 <img id=
"this-host-icon"
172 class=
"host-list-main-icon">
173 <div id=
"this-host-name" class=
"box-spacer"></div>
174 <span id=
"this-host-rename"
175 class=
"host-list-edit"
177 <img id=
"this-host-rename"
178 class=
"host-list-rename-icon"
179 src=
"icon_pencil.png">
181 <button type=
"button"
183 i18n-content=
"HOME_DAEMON_STOP_BUTTON">
185 </div> <!-- enabled -->
186 <div data-daemon-state=
"enabled">
187 <span i18n-content=
"HOME_DAEMON_ACTIVE_MESSAGE"></span>
188 <a id=
"change-daemon-pin"
190 i18n-content=
"HOME_DAEMON_CHANGE_PIN_LINK"></a>
192 </div> <!-- daemon-control -->
193 <div id=
"host-list-empty" hidden
>
194 <div id=
"host-list-empty-hosting-supported"
195 class=
"host-list-empty-instructions"
196 i18n-content=
"HOST_LIST_EMPTY_HOSTING_SUPPORTED"
197 i18n-value-name-1=
"HOME_DAEMON_START_BUTTON">
199 <div id=
"host-list-empty-hosting-unsupported"
200 class=
"host-list-empty-instructions"
201 i18n-content=
"HOST_LIST_EMPTY_HOSTING_UNSUPPORTED"
202 i18n-value-name-1=
"HOME_DAEMON_START_BUTTON">
205 </div> <!-- me2me-content -->
206 </section> <!-- host-list-div -->
209 <div id=
"dialog-screen"
210 data-ui-mode=
"home.host home.client home.auth home.history home.confirm-host-delete home.host-setup home.token-refresh-failed"
213 <div id=
"dialog-container"
214 data-ui-mode=
"home.host home.client home.auth home.history home.confirm-host-delete home.host-setup home.token-refresh-failed"
217 <div class=
"box-spacer"></div>
219 <!-- TODO(jamiewalch): Refactor the various error-state divs -->
220 <div class=
"kd-modaldialog" data-ui-mode=
"home.token-refresh-failed">
221 <div class=
"message">
222 <span id=
"token-refresh-error-message" class=
"error-state"></span>
224 <div id=
"token-refresh-auth-failed" class=
"box">
225 <div class=
"box-spacer"></div>
226 <button id=
"token-refresh-error-sign-in"
228 i18n-content=
"SIGN_IN_BUTTON"></button>
230 <div id=
"token-refresh-other-error" class=
"box">
231 <div class=
"box-spacer"></div>
232 <button id=
"token-refresh-error-ok"
234 i18n-content=
"OK"></button>
236 </div> <!-- home.token-refresh-failed -->
238 <div id=
"host-setup-dialog"
239 class=
"kd-modaldialog"
240 data-ui-mode=
"home.host-setup">
241 <form id=
"ask-pin-form"
242 data-ui-mode=
"home.host-setup.ask-pin"
245 i18n-content=
"HOST_SETUP_DIALOG_DESCRIPTION"
247 i18n-value-2=
"</b>"></p>
248 <table id=
"set-pin-table">
250 <td class=
"table-label">
251 <label for=
"daemon-pin-entry"
252 i18n-content=
"ASK_PIN_DIALOG_LABEL"
253 class=
"editbox-label"></label>
256 <input id=
"daemon-pin-entry"
257 autofocus=
"autofocus"
262 <td class=
"table-label">
263 <label for=
"daemon-pin-confirm"
264 i18n-content=
"ASK_PIN_DIALOG_CONFIRM_LABEL"
265 class=
"editbox-label"></label>
268 <input id=
"daemon-pin-confirm" type=
"password">
272 <div id=
"usagestats-consent" hidden
>
273 <label class=
"checkbox-label">
274 <input id=
"usagestats-consent-checkbox" type=
"checkbox">
275 <span i18n-content=
"HOST_SETUP_CRASH_REPORTING_MESSAGE"></span>
278 <div id=
"daemon-pin-error-div" class=
"message centered" hidden
>
279 <span id=
"daemon-pin-error-message" class=
"error-state">
283 <a href=
"https://support.google.com/chrome/?p=ui_pin_safety"
285 id=
"why-is-this-safe"
286 i18n-content=
"WHY_IS_THIS_SAFE"></a>
287 <div class=
"box-spacer"></div>
288 <button id=
"daemon-pin-ok" type=
"submit" i18n-content=
"OK">
290 <button id=
"daemon-pin-cancel" type=
"button" i18n-content=
"CANCEL">
294 <div data-ui-mode=
"home.host-setup.processing"
297 <span class=
"waiting prominent"
298 id=
"host-setup-processing-message">
301 <div data-ui-mode=
"home.host-setup.done" hidden
>
302 <div id=
"host-setup-done-message" class=
"message"></div>
303 <div id=
"host-setup-done-message-2" class=
"message"></div>
305 <div class=
"box-spacer"></div>
306 <button id=
"host-config-done-dismiss"
307 autofocus=
"autofocus"
308 i18n-content=
"OK"></button>
311 <div data-ui-mode=
"home.host-setup.error" hidden
>
312 <div id=
"host-setup-error-message" class=
"error-state"></div>
314 <div class=
"box-spacer"></div>
315 <button id=
"host-config-error-dismiss"
316 autofocus=
"autofocus"
317 i18n-content=
"OK"></button>
320 <div data-ui-mode=
"home.host-setup.install" hidden
>
321 <div class=
"message" i18n-content=
"HOST_SETUP_INSTALL"></div>
323 <div class=
"box-spacer"></div>
324 <button id=
"host-config-install-continue"
325 autofocus=
"autofocus"
326 i18n-content=
"OK"></button>
327 <button id=
"host-config-install-dismiss"
328 i18n-content=
"CANCEL"></button>
331 <div data-ui-mode=
"home.host-setup.install-pending" hidden
>
333 i18n-content=
"HOST_SETUP_INSTALL_PENDING"></div>
335 <div class=
"box-spacer"></div>
336 <button id=
"host-config-install-retry"
337 autofocus=
"autofocus"
338 i18n-content=
"OK"></button>
341 </div> <!-- host-setup-dialog -->
343 <div id=
"auth-dialog"
344 data-ui-mode=
"home.auth"
345 class=
"kd-modaldialog">
346 <h2 i18n-content=
"MODE_AUTHORIZE"></h2>
347 <p id=
"auth-error-message"
348 i18n-content=
"DESCRIPTION_AUTHORIZE"
350 <div class=
"centered">
351 <button id=
"auth-button"
353 autofocus=
"autofocus"
354 i18n-content=
"CONTINUE_BUTTON">
357 </div> <!-- auth-dialog -->
359 <div id=
"host-dialog"
360 class=
"kd-modaldialog"
361 data-ui-mode=
"home.host">
363 <div data-ui-mode=
"home.host.waiting-for-code" class=
"message centered"
364 i18n-content=
"MESSAGE_GENERATING">
365 </div> <!-- host.waiting-for-code -->
367 <div data-ui-mode=
"home.host.waiting-for-connection">
368 <div i18n-content=
"INSTRUCTIONS_SHARE_ABOVE"></div>
369 <div id=
"access-code-display" dir=
"ltr" class=
"selectable"></div>
370 <div id=
"access-code-countdown-container">
371 <div id=
"access-code-countdown" class=
"expiring" hidden
>
372 <span id=
"seconds-remaining"
373 i18n-content=
"ACCESS_CODE_TIMER"></span>
376 <div i18n-content=
"INSTRUCTIONS_SHARE_BELOW"></div>
377 </div> <!-- host.waiting-for-connection -->
379 <div data-ui-mode=
"home.host.shared">
380 <div id=
"host-shared-message" class=
"message centered"
381 i18n-content=
"MESSAGE_SHARED"></div>
382 <div class=
"centered">
383 <button id=
"stop-sharing-button"
385 i18n-content=
"STOP_SHARING_BUTTON">
388 </div> <!-- host.shared -->
390 <div data-ui-mode=
"home.host.share-failed" class=
"message centered">
391 <span id=
"host-plugin-error" class=
"error-state"></span>
392 </div> <!-- host.share-failed -->
394 <div data-ui-mode=
"home.host.share-finished" class=
"message centered"
395 i18n-content=
"MESSAGE_SESSION_FINISHED">
396 </div> <!-- host.share-finished -->
398 <div class=
"centered"
399 data-ui-mode=
"home.host.share-failed home.host.share-finished">
400 <button id=
"host-finished-button"
402 autofocus=
"autofocus"
408 class=
"information-box"
409 data-ui-mode=
"home.host.waiting-for-connection"
410 i18n-content=
"WARNING_NAT_DISABLED">
411 </div> <!-- nat-box -->
413 <div data-ui-mode=
"home.host.waiting-for-connection home.host.waiting-for-code"
414 class=
"box space-before">
415 <span class=
"waiting" i18n-content=
"FOOTER_WAITING"></span>
416 <div class=
"box-spacer"></div>
417 <button id=
"cancel-share-button" i18n-content=
"CANCEL"></button>
420 <div id=
"host-plugin-container"></div>
422 </div> <!-- host dialog -->
424 <div id=
"client-dialog"
425 class=
"kd-modaldialog"
426 data-ui-mode=
"home.client">
428 <div data-ui-mode=
"home.client.unconnected">
429 <div i18n-content=
"DESCRIPTION_CONNECT"></div>
430 <div id=
"access-code-entry-row">
431 <form id=
"access-code-form" action=
"">
433 <div class=
"box-spacer"></div>
434 <label for=
"access-code-entry"
435 i18n-content=
"ACCESS_CODE"
436 class=
"editbox-label">
438 <input id=
"access-code-entry"
440 autofocus=
"autofocus"
442 <div class=
"box-spacer"></div>
444 <div class=
"box space-before">
445 <div class=
"box-spacer"></div>
446 <button id=
"connect-button"
448 i18n-content=
"CONNECT_BUTTON">
450 <button id=
"cancel-access-code-button"
452 i18n-content=
"CANCEL">
456 </div> <!-- code-entry-row -->
457 </div> <!-- client.unconnected -->
459 <div data-ui-mode=
"home.client.connecting" class=
"box">
460 <span class=
"waiting prominent"
461 i18n-content=
"FOOTER_CONNECTING"></span>
462 <div class=
"box-spacer"></div>
463 <button id=
"cancel-connect-button" i18n-content=
"CANCEL"></button>
464 </div> <!-- client.connecting -->
466 <div data-ui-mode=
"home.client.pin-prompt" class=
"centered">
467 <div id=
"pin-message"
468 i18n-content=
"PIN_MESSAGE"
469 class=
"message"></div>
471 <form id=
"pin-form" action=
"">
472 <label for=
"pin-entry"
474 class=
"editbox-label"></label>
475 <input id=
"pin-entry"
477 autofocus=
"autofocus"
479 <button id=
"connect-button"
481 i18n-content=
"CONNECT_BUTTON">
483 <button id=
"cancel-pin-entry-button"
485 i18n-content=
"CANCEL">
489 </div> <!-- client.pin-prompt -->
491 <div data-ui-mode=
"home.client.connect-failed"
492 class=
"message centered">
493 <span id=
"connect-error-message" class=
"error-state"></span>
494 </div> <!-- client.connect-failed -->
496 <div data-ui-mode=
"home.client.session-finished"
497 class=
"message centered" i18n-content=
"MESSAGE_SESSION_FINISHED">
498 </div> <!-- client.session-finished -->
500 <div data-ui-mode=
"home.client.connect-failed.it2me home.client.session-finished.it2me"
502 <button id=
"client-finished-it2me-button"
505 autofocus=
"autofocus">
507 </div> <!-- connect-failed.it2me session-finished.it2me -->
509 <div data-ui-mode=
"home.client.connect-failed.me2me home.client.session-finished.me2me"
511 <button id=
"client-reconnect-button"
514 autofocus=
"autofocus">
516 <button id=
"client-finished-me2me-button"
518 i18n-content=
"CANCEL">
520 </div> <!-- connect-failed.me2me session-finished.me2me -->
522 </div> <!-- client-dialog -->
524 <div id=
"connection-history-dialog"
525 class=
"kd-modaldialog"
526 data-ui-mode=
"home.history"
528 <div class=
"internal-frame-of-reference">
529 <h2 i18n-content=
"CONNECTION_HISTORY_TITLE"></h2>
530 <div id=
"connection-history-options">
531 <div class=
"link-list">
532 <a id=
"history-view-all"
533 i18n-content=
"ALL_CONNECTIONS"
535 <a id=
"history-view-outgoing"
536 i18n-content=
"OUTGOING_CONNECTIONS"></a>
537 <a id=
"history-view-incoming"
538 i18n-content=
"INCOMING_CONNECTIONS"></a>
540 <div class=
"box-spacer"></div>
541 <a id=
"clear-connection-history" i18n-content=
"CLEAR_HISTORY"></a>
543 <div id=
"connection-history-scroller">
544 <table id=
"connection-history-table">
548 <td i18n-content=
"TIME_HEADER"></td>
550 <td i18n-content=
"CONNECTION_FROM_HEADER"></td>
551 <td i18n-content=
"CONNECTION_TO_HEADER"></td>
552 <td i18n-content=
"DURATION_HEADER"></td>
555 <tbody id=
"connection-history-entries" class=
"selectable">
559 <button id=
"close-connection-history"
561 type=
"button"></button>
563 </div> <!-- connection-history-dialog -->
565 <div id=
"confirm-host-delete-dialog"
566 class=
"kd-modaldialog"
567 data-ui-mode=
"home.confirm-host-delete"
569 <p id=
"confirm-host-delete-message"
570 i18n-content=
"CONFIRM_HOST_DELETE"
573 <div class=
"centered">
574 <button id=
"confirm-host-delete"
575 i18n-content=
"DISABLE_HOST"
578 <button id=
"cancel-host-delete"
579 i18n-content=
"CANCEL"
580 autofocus=
"autofocus"
584 </div> <!-- home.confirm-host-delete -->
586 <div class=
"box-spacer"></div>
588 </div> <!-- dialog-container -->
590 <div id=
"session-mode" data-ui-mode=
"in-session home.client" hidden
>
591 <div id=
"session-toolbar"
592 data-ui-mode=
"in-session"
593 class=
"toolbar-container"
595 <div class=
"toolbar-border">
596 <div id=
"session-status-message"
597 i18n-content=
"LABEL_CONNECTED"></div>
598 <div id=
"connected-to" class=
"box-spacer"></div>
599 <button id=
"toolbar-disconnect"
601 i18n-content=
"DISCONNECT_MYSELF_BUTTON">
603 <span class=
"menu-button" id=
"send-keys-menu">
605 <span i18n-content=
"SEND_KEYS"></span>
606 <img src=
"disclosure_arrow_down.png"
607 class=
"kd-disclosureindicator">
610 <li id=
"send-ctrl-alt-del" i18n-content=
"SEND_CTRL_ALT_DEL"></li>
611 <li id=
"send-print-screen" i18n-content=
"SEND_PRINT_SCREEN"></li>
614 <span class=
"menu-button" id=
"screen-options-menu">
616 <span i18n-content=
"SCREEN_OPTIONS"></span>
617 <img src=
"disclosure_arrow_down.png"
618 class=
"kd-disclosureindicator">
621 <li id=
"enable-shrink-to-fit" i18n-content=
"SHRINK_TO_FIT"></li>
622 <li id=
"disable-shrink-to-fit" i18n-content=
"ORIGINAL_SIZE"></li>
623 <li class=
"menu-separator"></li>
624 <li id=
"toggle-full-screen" i18n-content=
"FULL_SCREEN"></li>
628 <div class=
"toolbar-stub" id=
"toolbar-stub">
629 <div class=
"arrow-down"></div>
631 </div> <!-- session-toolbar -->
632 </div> <!-- session-mode -->
634 <div id=
"statistics" dir=
"ltr" class=
"selectable" hidden
>
635 </div> <!-- statistics -->