Loosen up heuristics for detecting account creation forms.
[chromium-blink-merge.git] / remoting / webapp / main.html
blob7d92ac69bebea1553e66c8571ef9e6da0479d179
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 -->
8 <html>
9 <head>
10 <meta charset="utf-8">
11 <link href="https://fonts.googleapis.com/css?family=Open+Sans&amp;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>
49 </head>
51 <body>
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&hellip;</em>
58 </section> <!-- loading-mode -->
60 <div id="daemon-plugin-container"></div>
62 <header data-ui-mode="home" hidden>
63 <div>
64 <img src="chromoting48.png">
65 <h1 class="icon-label" i18n-content="PRODUCT_NAME"></h1>
66 </div>
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> |
75 -->
76 </span>
77 <a href="https://www.google.com/support/chrome/bin/answer.py?answer=1649523"
78 target="_blank" i18n-content="HELP"></a>
79 </div>
80 </header>
82 <div data-ui-mode="home" hidden>
84 <section>
85 <h2 i18n-content="MODE_IT2ME"></h2>
86 <div id="it2me-first-run">
87 <div>
88 <p class="infographic-description"
89 i18n-content="IT2ME_FIRST_RUN"></p>
90 <button id="get-started-it2me"
91 i18n-content="GET_STARTED"
92 disabled></button>
93 </div>
94 <div class="infographic">
95 <img src="infographic_remote_assistance.png">
96 </div>
97 </div>
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>
102 <div>
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>
109 </div>
110 <div>
111 <button id="share-button"
112 i18n-content="HOME_SHARE_BUTTON"
113 class="kd-button-share"
114 type="button">
115 </button>
116 </div>
117 </div>
118 </div>
119 <div class="section-row">
120 <div i18n-content="HOME_ACCESS_DESCRIPTION"
121 class="box-spacer"></div>
122 <div>
123 <button id="access-mode-button"
124 i18n-content="HOME_ACCESS_BUTTON"
125 type="button">
126 </button>
127 </div>
128 </div>
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">
135 <div>
136 <p class="infographic-description"
137 i18n-content="ME2ME_FIRST_RUN"></p>
138 <button id="get-started-me2me"
139 i18n-content="GET_STARTED"
140 disabled></button>
141 </div>
142 <div class="infographic">
143 <img src="infographic_my_computers.png">
144 </div>
145 </div>
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>
153 </div>
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"
163 id="start-daemon"
164 i18n-content="HOME_DAEMON_START_BUTTON">
165 </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"
171 src="icon_host.png"
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"
176 tabIndex="0">
177 <img id="this-host-rename"
178 class="host-list-rename-icon"
179 src="icon_pencil.png">
180 </span>
181 <button type="button"
182 id="stop-daemon"
183 i18n-content="HOME_DAEMON_STOP_BUTTON">
184 </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"
189 href="#"
190 i18n-content="HOME_DAEMON_CHANGE_PIN_LINK"></a>
191 </div>
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">
198 </div>
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">
203 </div>
204 </div>
205 </div> <!-- me2me-content -->
206 </section> <!-- host-list-div -->
207 </div> <!-- home -->
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"
211 hidden></div>
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"
215 hidden>
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>
223 </div>
224 <div id="token-refresh-auth-failed" class="box">
225 <div class="box-spacer"></div>
226 <button id="token-refresh-error-sign-in"
227 type="button"
228 i18n-content="SIGN_IN_BUTTON"></button>
229 </div>
230 <div id="token-refresh-other-error" class="box">
231 <div class="box-spacer"></div>
232 <button id="token-refresh-error-ok"
233 type="button"
234 i18n-content="OK"></button>
235 </div>
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"
243 action="">
244 <p class="message"
245 i18n-content="HOST_SETUP_DIALOG_DESCRIPTION"
246 i18n-value-1="<b>"
247 i18n-value-2="</b>"></p>
248 <table id="set-pin-table">
249 <tr>
250 <td class="table-label">
251 <label for="daemon-pin-entry"
252 i18n-content="ASK_PIN_DIALOG_LABEL"
253 class="editbox-label"></label>
254 </td>
255 <td>
256 <input id="daemon-pin-entry"
257 autofocus="autofocus"
258 type="password">
259 </td>
260 </tr>
261 <tr>
262 <td class="table-label">
263 <label for="daemon-pin-confirm"
264 i18n-content="ASK_PIN_DIALOG_CONFIRM_LABEL"
265 class="editbox-label"></label>
266 </td>
267 <td>
268 <input id="daemon-pin-confirm" type="password">
269 </td>
270 <tr>
271 </table>
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>
276 </label>
277 </div>
278 <div id="daemon-pin-error-div" class="message centered" hidden>
279 <span id="daemon-pin-error-message" class="error-state">
280 </span>
281 </div>
282 <div class="box">
283 <a href="https://support.google.com/chrome/?p=ui_pin_safety"
284 target="_blank"
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">
289 </button>
290 <button id="daemon-pin-cancel" type="button" i18n-content="CANCEL">
291 </button>
292 </div>
293 </form>
294 <div data-ui-mode="home.host-setup.processing"
295 class="box"
296 hidden>
297 <span class="waiting prominent"
298 id="host-setup-processing-message">
299 </span>
300 </div>
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>
304 <div class="box">
305 <div class="box-spacer"></div>
306 <button id="host-config-done-dismiss"
307 autofocus="autofocus"
308 i18n-content="OK"></button>
309 </div>
310 </div>
311 <div data-ui-mode="home.host-setup.error" hidden>
312 <div id="host-setup-error-message" class="error-state"></div>
313 <div class="box">
314 <div class="box-spacer"></div>
315 <button id="host-config-error-dismiss"
316 autofocus="autofocus"
317 i18n-content="OK"></button>
318 </div>
319 </div>
320 <div data-ui-mode="home.host-setup.install" hidden>
321 <div class="message" i18n-content="HOST_SETUP_INSTALL"></div>
322 <div class="box">
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>
329 </div>
330 </div>
331 <div data-ui-mode="home.host-setup.install-pending" hidden>
332 <div class="message"
333 i18n-content="HOST_SETUP_INSTALL_PENDING"></div>
334 <div class="box">
335 <div class="box-spacer"></div>
336 <button id="host-config-install-retry"
337 autofocus="autofocus"
338 i18n-content="OK"></button>
339 </div>
340 </div>
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"
349 class="message"></p>
350 <div class="centered">
351 <button id="auth-button"
352 type="button"
353 autofocus="autofocus"
354 i18n-content="CONTINUE_BUTTON">
355 </button>
356 </div>
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>
374 </div>
375 </div>
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"
384 type="button"
385 i18n-content="STOP_SHARING_BUTTON">
386 </button>
387 </div>
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"
401 type="button"
402 autofocus="autofocus"
403 i18n-content="OK">
404 </button>
405 </div>
407 <div id="nat-box"
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>
418 </div>
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="">
432 <div class="box">
433 <div class="box-spacer"></div>
434 <label for="access-code-entry"
435 i18n-content="ACCESS_CODE"
436 class="editbox-label">
437 </label>
438 <input id="access-code-entry"
439 type="text"
440 autofocus="autofocus"
441 autocomplete="off"/>
442 <div class="box-spacer"></div>
443 </div>
444 <div class="box space-before">
445 <div class="box-spacer"></div>
446 <button id="connect-button"
447 type="submit"
448 i18n-content="CONNECT_BUTTON">
449 </button>
450 <button id="cancel-access-code-button"
451 type="button"
452 i18n-content="CANCEL">
453 </button>
454 </div>
455 </form>
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>
470 <div>
471 <form id="pin-form" action="">
472 <label for="pin-entry"
473 i18n-content="PIN"
474 class="editbox-label"></label>
475 <input id="pin-entry"
476 type="password"
477 autofocus="autofocus"
478 autocomplete="off"/>
479 <button id="connect-button"
480 type="submit"
481 i18n-content="CONNECT_BUTTON">
482 </button>
483 <button id="cancel-pin-entry-button"
484 type="button"
485 i18n-content="CANCEL">
486 </button>
487 </form>
488 </div>
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"
501 class="centered">
502 <button id="client-finished-it2me-button"
503 type="button"
504 i18n-content="OK"
505 autofocus="autofocus">
506 </button>
507 </div> <!-- connect-failed.it2me session-finished.it2me -->
509 <div data-ui-mode="home.client.connect-failed.me2me home.client.session-finished.me2me"
510 class="centered">
511 <button id="client-reconnect-button"
512 type="button"
513 i18n-content="RETRY"
514 autofocus="autofocus">
515 </button>
516 <button id="client-finished-me2me-button"
517 type="button"
518 i18n-content="CANCEL">
519 </button>
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"
527 hidden>
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"
534 class="no-link"></a>
535 <a id="history-view-outgoing"
536 i18n-content="OUTGOING_CONNECTIONS"></a>
537 <a id="history-view-incoming"
538 i18n-content="INCOMING_CONNECTIONS"></a>
539 </div>
540 <div class="box-spacer"></div>
541 <a id="clear-connection-history" i18n-content="CLEAR_HISTORY"></a>
542 </div>
543 <div id="connection-history-scroller">
544 <table id="connection-history-table">
545 <thead>
546 <tr>
547 <td></td>
548 <td i18n-content="TIME_HEADER"></td>
549 <td></td>
550 <td i18n-content="CONNECTION_FROM_HEADER"></td>
551 <td i18n-content="CONNECTION_TO_HEADER"></td>
552 <td i18n-content="DURATION_HEADER"></td>
553 </tr>
554 </thead>
555 <tbody id="connection-history-entries" class="selectable">
556 </tbody>
557 </table>
558 </div>
559 <button id="close-connection-history"
560 i18n-content="CLOSE"
561 type="button"></button>
562 </div>
563 </div> <!-- connection-history-dialog -->
565 <div id="confirm-host-delete-dialog"
566 class="kd-modaldialog"
567 data-ui-mode="home.confirm-host-delete"
568 hidden>
569 <p id="confirm-host-delete-message"
570 i18n-content="CONFIRM_HOST_DELETE"
571 class="message">
572 </p>
573 <div class="centered">
574 <button id="confirm-host-delete"
575 i18n-content="DISABLE_HOST"
576 type="button">
577 </button>
578 <button id="cancel-host-delete"
579 i18n-content="CANCEL"
580 autofocus="autofocus"
581 type="button">
582 </button>
583 </div>
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"
594 hidden>
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"
600 type="button"
601 i18n-content="DISCONNECT_MYSELF_BUTTON">
602 </button>
603 <span class="menu-button" id="send-keys-menu">
604 <button>
605 <span i18n-content="SEND_KEYS"></span>
606 <img src="disclosure_arrow_down.png"
607 class="kd-disclosureindicator">
608 </button>
609 <ul>
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>
612 </ul>
613 </span>
614 <span class="menu-button" id="screen-options-menu">
615 <button>
616 <span i18n-content="SCREEN_OPTIONS"></span>
617 <img src="disclosure_arrow_down.png"
618 class="kd-disclosureindicator">
619 </button>
620 <ul>
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>
625 </ul>
626 </span>
627 </div>
628 <div class="toolbar-stub" id="toolbar-stub">
629 <div class="arrow-down"></div>
630 </div>
631 </div> <!-- session-toolbar -->
632 </div> <!-- session-mode -->
634 <div id="statistics" dir="ltr" class="selectable" hidden>
635 </div> <!-- statistics -->
637 </body>
638 </html>