Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7088)

Unified Diff: chrome/browser/resources/md_history/vulcanized.html

Issue 2235593002: Vulcanize MD History (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/resources/md_history/vulcanize.py ('k') | chrome/browser/resources/vulcanize_readme.md » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/resources/md_history/vulcanized.html
diff --git a/chrome/browser/resources/md_history/vulcanized.html b/chrome/browser/resources/md_history/vulcanized.html
new file mode 100644
index 0000000000000000000000000000000000000000..3a3d6f6d6c28e9e504e76cc8d7bca83ea68ddb48
--- /dev/null
+++ b/chrome/browser/resources/md_history/vulcanized.html
@@ -0,0 +1,4112 @@
+<!DOCTYPE html><html dir="$i18n{textdirection}" lang="$i18n{language}"><head><!--
+@license
+Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+--><!--
+@license
+Copyright (c) 2016 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+--><!--
+@license
+Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+ <meta charset="utf8">
+ <title>$i18n{title}</title>
+
+ <link rel="stylesheet" href="chrome://resources/css/text_defaults_md.css">
+ <style>
+/* Copyright 2016 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file. */
+
+:root {
+ /* This is a custom, Chrome-specific color that does not have a --paper or
+ * --google equivalent. */
+ --md-background-color: rgb(241, 241, 241);
+ /* This is --google-blue-700, rewritten as a native custom property for speed.
+ */
+ --md-toolbar-color: rgb(51, 103, 214);
+}
+
+</style>
+
+ <style>
+ html,
+ body {
+ height: 100%;
+ margin: 0;
+ }
+
+ body {
+ background: var(--md-background-color);
+ }
+
+ /* Minimal styling required to display app shim. */
+ .loading history-app {
+ visibility: hidden;
+ }
+
+ #app-shim {
+ display: none;
+ }
+
+ .loading #app-shim {
+ bottom: 0;
+ display: flex;
+ flex-direction: column;
+ font-size: 123%;
+ height: 100%;
+ left: 0;
+ position: absolute;
+ right: 0;
+ top: 0;
+ }
+
+ #app-shim span {
+ display: flex;
+ }
+
+ #loading-toolbar {
+ -webkit-padding-start: 24px;
+ align-items: center;
+ background: var(--md-toolbar-color);
+ color: #fff;
+ height: 56px;
+ }
+
+ #loading-message {
+ align-items: center;
+ color: #b4b4b4;
+ flex: 1;
+ font-weight: 500;
+ justify-content: center;
+ }
+ </style>
+</head>
+
+<body class="loading"><div hidden="" by-vulcanize=""><script src="chrome://resources/js/load_time_data.js"></script>
+<style>
+ /* IE 10 support for HTML5 hidden attr */
+ [hidden] {
+ display: none !important;
+ }
+</style>
+
+<style is="custom-style">
+ :root {
+
+ --layout: {
+ display: -ms-flexbox;
+ display: -webkit-flex;
+ display: flex;
+ };
+
+ --layout-inline: {
+ display: -ms-inline-flexbox;
+ display: -webkit-inline-flex;
+ display: inline-flex;
+ };
+
+ --layout-horizontal: {
+ @apply(--layout);
+
+ -ms-flex-direction: row;
+ -webkit-flex-direction: row;
+ flex-direction: row;
+ };
+
+ --layout-horizontal-reverse: {
+ @apply(--layout);
+
+ -ms-flex-direction: row-reverse;
+ -webkit-flex-direction: row-reverse;
+ flex-direction: row-reverse;
+ };
+
+ --layout-vertical: {
+ @apply(--layout);
+
+ -ms-flex-direction: column;
+ -webkit-flex-direction: column;
+ flex-direction: column;
+ };
+
+ --layout-vertical-reverse: {
+ @apply(--layout);
+
+ -ms-flex-direction: column-reverse;
+ -webkit-flex-direction: column-reverse;
+ flex-direction: column-reverse;
+ };
+
+ --layout-wrap: {
+ -ms-flex-wrap: wrap;
+ -webkit-flex-wrap: wrap;
+ flex-wrap: wrap;
+ };
+
+ --layout-wrap-reverse: {
+ -ms-flex-wrap: wrap-reverse;
+ -webkit-flex-wrap: wrap-reverse;
+ flex-wrap: wrap-reverse;
+ };
+
+ --layout-flex-auto: {
+ -ms-flex: 1 1 auto;
+ -webkit-flex: 1 1 auto;
+ flex: 1 1 auto;
+ };
+
+ --layout-flex-none: {
+ -ms-flex: none;
+ -webkit-flex: none;
+ flex: none;
+ };
+
+ --layout-flex: {
+ -ms-flex: 1 1 0.000000001px;
+ -webkit-flex: 1;
+ flex: 1;
+ -webkit-flex-basis: 0.000000001px;
+ flex-basis: 0.000000001px;
+ };
+
+ --layout-flex-2: {
+ -ms-flex: 2;
+ -webkit-flex: 2;
+ flex: 2;
+ };
+
+ --layout-flex-3: {
+ -ms-flex: 3;
+ -webkit-flex: 3;
+ flex: 3;
+ };
+
+ --layout-flex-4: {
+ -ms-flex: 4;
+ -webkit-flex: 4;
+ flex: 4;
+ };
+
+ --layout-flex-5: {
+ -ms-flex: 5;
+ -webkit-flex: 5;
+ flex: 5;
+ };
+
+ --layout-flex-6: {
+ -ms-flex: 6;
+ -webkit-flex: 6;
+ flex: 6;
+ };
+
+ --layout-flex-7: {
+ -ms-flex: 7;
+ -webkit-flex: 7;
+ flex: 7;
+ };
+
+ --layout-flex-8: {
+ -ms-flex: 8;
+ -webkit-flex: 8;
+ flex: 8;
+ };
+
+ --layout-flex-9: {
+ -ms-flex: 9;
+ -webkit-flex: 9;
+ flex: 9;
+ };
+
+ --layout-flex-10: {
+ -ms-flex: 10;
+ -webkit-flex: 10;
+ flex: 10;
+ };
+
+ --layout-flex-11: {
+ -ms-flex: 11;
+ -webkit-flex: 11;
+ flex: 11;
+ };
+
+ --layout-flex-12: {
+ -ms-flex: 12;
+ -webkit-flex: 12;
+ flex: 12;
+ };
+
+ /* alignment in cross axis */
+
+ --layout-start: {
+ -ms-flex-align: start;
+ -webkit-align-items: flex-start;
+ align-items: flex-start;
+ };
+
+ --layout-center: {
+ -ms-flex-align: center;
+ -webkit-align-items: center;
+ align-items: center;
+ };
+
+ --layout-end: {
+ -ms-flex-align: end;
+ -webkit-align-items: flex-end;
+ align-items: flex-end;
+ };
+
+ --layout-baseline: {
+ -ms-flex-align: baseline;
+ -webkit-align-items: baseline;
+ align-items: baseline;
+ };
+
+ /* alignment in main axis */
+
+ --layout-start-justified: {
+ -ms-flex-pack: start;
+ -webkit-justify-content: flex-start;
+ justify-content: flex-start;
+ };
+
+ --layout-center-justified: {
+ -ms-flex-pack: center;
+ -webkit-justify-content: center;
+ justify-content: center;
+ };
+
+ --layout-end-justified: {
+ -ms-flex-pack: end;
+ -webkit-justify-content: flex-end;
+ justify-content: flex-end;
+ };
+
+ --layout-around-justified: {
+ -ms-flex-pack: distribute;
+ -webkit-justify-content: space-around;
+ justify-content: space-around;
+ };
+
+ --layout-justified: {
+ -ms-flex-pack: justify;
+ -webkit-justify-content: space-between;
+ justify-content: space-between;
+ };
+
+ --layout-center-center: {
+ @apply(--layout-center);
+ @apply(--layout-center-justified);
+ };
+
+ /* self alignment */
+
+ --layout-self-start: {
+ -ms-align-self: flex-start;
+ -webkit-align-self: flex-start;
+ align-self: flex-start;
+ };
+
+ --layout-self-center: {
+ -ms-align-self: center;
+ -webkit-align-self: center;
+ align-self: center;
+ };
+
+ --layout-self-end: {
+ -ms-align-self: flex-end;
+ -webkit-align-self: flex-end;
+ align-self: flex-end;
+ };
+
+ --layout-self-stretch: {
+ -ms-align-self: stretch;
+ -webkit-align-self: stretch;
+ align-self: stretch;
+ };
+
+ --layout-self-baseline: {
+ -ms-align-self: baseline;
+ -webkit-align-self: baseline;
+ align-self: baseline;
+ };
+
+ /* multi-line alignment in main axis */
+
+ --layout-start-aligned: {
+ -ms-flex-line-pack: start; /* IE10 */
+ -ms-align-content: flex-start;
+ -webkit-align-content: flex-start;
+ align-content: flex-start;
+ };
+
+ --layout-end-aligned: {
+ -ms-flex-line-pack: end; /* IE10 */
+ -ms-align-content: flex-end;
+ -webkit-align-content: flex-end;
+ align-content: flex-end;
+ };
+
+ --layout-center-aligned: {
+ -ms-flex-line-pack: center; /* IE10 */
+ -ms-align-content: center;
+ -webkit-align-content: center;
+ align-content: center;
+ };
+
+ --layout-between-aligned: {
+ -ms-flex-line-pack: justify; /* IE10 */
+ -ms-align-content: space-between;
+ -webkit-align-content: space-between;
+ align-content: space-between;
+ };
+
+ --layout-around-aligned: {
+ -ms-flex-line-pack: distribute; /* IE10 */
+ -ms-align-content: space-around;
+ -webkit-align-content: space-around;
+ align-content: space-around;
+ };
+
+ /*******************************
+ Other Layout
+ *******************************/
+
+ --layout-block: {
+ display: block;
+ };
+
+ --layout-invisible: {
+ visibility: hidden !important;
+ };
+
+ --layout-relative: {
+ position: relative;
+ };
+
+ --layout-fit: {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ };
+
+ --layout-scroll: {
+ -webkit-overflow-scrolling: touch;
+ overflow: auto;
+ };
+
+ --layout-fullbleed: {
+ margin: 0;
+ height: 100vh;
+ };
+
+ /* fixed position */
+
+ --layout-fixed-top: {
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ };
+
+ --layout-fixed-right: {
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ };
+
+ --layout-fixed-bottom: {
+ position: fixed;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ };
+
+ --layout-fixed-left: {
+ position: fixed;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ };
+
+ }
+
+</style>
+
+
+<dom-module id="app-drawer" assetpath="chrome://resources/polymer/v1_0/app-layout/app-drawer/">
+ <template>
+ <style>
+ :host {
+ position: fixed;
+ top: -120px;
+ right: 0;
+ bottom: -120px;
+ left: 0;
+
+ visibility: hidden;
+
+ transition: visibility 0.2s ease;
+ }
+
+ :host([opened]) {
+ visibility: visible;
+ }
+
+ :host([persistent]) {
+ width: var(--app-drawer-width, 256px);
+ }
+
+ :host([persistent][position=left]) {
+ right: auto;
+ }
+
+ :host([persistent][position=right]) {
+ left: auto;
+ }
+
+ #contentContainer {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ left: 0;
+
+ width: var(--app-drawer-width, 256px);
+ padding: 120px 0;
+
+ transition: 0.2s ease;
+ transition-property: -webkit-transform;
+ transition-property: transform;
+ -webkit-transform: translate3d(-100%, 0, 0);
+ transform: translate3d(-100%, 0, 0);
+
+ background-color: #FFF;
+
+ @apply(--app-drawer-content-container);
+ }
+
+ :host([position=right]) > #contentContainer {
+ right: 0;
+ left: auto;
+
+ -webkit-transform: translate3d(100%, 0, 0);
+ transform: translate3d(100%, 0, 0);
+ }
+
+ :host([swipe-open]) > #contentContainer::after {
+ position: fixed;
+ top: 0;
+ bottom: 0;
+ left: 100%;
+
+ visibility: visible;
+
+ width: 20px;
+
+ content: '';
+ }
+
+ :host([swipe-open][position=right]) > #contentContainer::after {
+ right: 100%;
+ left: auto;
+ }
+
+ :host([opened]) > #contentContainer {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+
+ #scrim {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+
+ transition: opacity 0.2s ease;
+ -webkit-transform: translateZ(0);
+ transform: translateZ(0);
+
+ opacity: 0;
+ background: var(--app-drawer-scrim-background, rgba(0, 0, 0, 0.5));
+ }
+
+ :host([opened]) > #scrim {
+ opacity: 1;
+ }
+
+ :host([opened][persistent]) > #scrim {
+ visibility: hidden;
+ /**
+ * NOTE(keanulee): Keep both opacity: 0 and visibility: hidden to prevent the
+ * scrim from showing when toggling between closed and opened/persistent.
+ */
+
+ opacity: 0;
+ }
+ </style>
+
+ <div id="scrim" on-tap="close"></div>
+
+ <div id="contentContainer">
+ <content></content>
+ </div>
+ </template>
+
+ </dom-module>
+<dom-module id="app-location" assetpath="chrome://resources/polymer/v1_0/app-route/">
+ <template>
+ <iron-location path="{{__path}}" query="{{__query}}" hash="{{__hash}}" url-space-regex="{{urlSpaceRegex}}">
+ </iron-location>
+ <iron-query-params params-string="{{__query}}" params-object="{{queryParams}}">
+ </iron-query-params>
+ </template>
+ </dom-module>
+<dom-module id="iron-pages" assetpath="chrome://resources/polymer/v1_0/iron-pages/">
+
+ <template>
+ <style>
+ :host {
+ display: block;
+ }
+
+ :host > ::content > :not(.iron-selected) {
+ display: none !important;
+ }
+ </style>
+
+ <content></content>
+ </template>
+
+ </dom-module>
+<dom-module id="iron-icon" assetpath="chrome://resources/polymer/v1_0/iron-icon/">
+ <template>
+ <style>
+ :host {
+ @apply(--layout-inline);
+ @apply(--layout-center-center);
+ position: relative;
+
+ vertical-align: middle;
+
+ fill: var(--iron-icon-fill-color, currentcolor);
+ stroke: var(--iron-icon-stroke-color, none);
+
+ width: var(--iron-icon-width, 24px);
+ height: var(--iron-icon-height, 24px);
+ }
+ </style>
+ </template>
+
+ </dom-module>
+<iron-iconset-svg name="hardware" size="24">
+<svg><defs>
+<g id="cast"><path d="M21 3H3c-1.1 0-2 .9-2 2v3h2V5h18v14h-7v2h7c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM1 18v3h3c0-1.66-1.34-3-3-3zm0-4v2c2.76 0 5 2.24 5 5h2c0-3.87-3.13-7-7-7zm0-4v2c4.97 0 9 4.03 9 9h2c0-6.08-4.93-11-11-11z"></path></g>
+<g id="cast-connected"><path d="M1 18v3h3c0-1.66-1.34-3-3-3zm0-4v2c2.76 0 5 2.24 5 5h2c0-3.87-3.13-7-7-7zm18-7H5v1.63c3.96 1.28 7.09 4.41 8.37 8.37H19V7zM1 10v2c4.97 0 9 4.03 9 9h2c0-6.08-4.93-11-11-11zm20-7H3c-1.1 0-2 .9-2 2v3h2V5h18v14h-7v2h7c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"></path></g>
+<g id="computer"><path d="M20 18c1.1 0 1.99-.9 1.99-2L22 6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2H0v2h24v-2h-4zM4 6h16v10H4V6z"></path></g>
+<g id="desktop-mac"><path d="M21 2H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h7l-2 3v1h8v-1l-2-3h7c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 12H3V4h18v10z"></path></g>
+<g id="desktop-windows"><path d="M21 2H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h7v2H8v2h8v-2h-2v-2h7c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H3V4h18v12z"></path></g>
+<g id="developer-board"><path d="M22 9V7h-2V5c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-2h2v-2h-2v-2h2v-2h-2V9h2zm-4 10H4V5h14v14zM6 13h5v4H6zm6-6h4v3h-4zM6 7h5v5H6zm6 4h4v6h-4z"></path></g>
+<g id="device-hub"><path d="M17 16l-4-4V8.82C14.16 8.4 15 7.3 15 6c0-1.66-1.34-3-3-3S9 4.34 9 6c0 1.3.84 2.4 2 2.82V12l-4 4H3v5h5v-3.05l4-4.2 4 4.2V21h5v-5h-4z"></path></g>
+<g id="devices-other"><path d="M3 6h18V4H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h4v-2H3V6zm10 6H9v1.78c-.61.55-1 1.33-1 2.22s.39 1.67 1 2.22V20h4v-1.78c.61-.55 1-1.34 1-2.22s-.39-1.67-1-2.22V12zm-2 5.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM22 8h-6c-.5 0-1 .5-1 1v10c0 .5.5 1 1 1h6c.5 0 1-.5 1-1V9c0-.5-.5-1-1-1zm-1 10h-4v-8h4v8z"></path></g>
+<g id="dock"><path d="M8 23h8v-2H8v2zm8-21.99L8 1c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM16 15H8V5h8v10z"></path></g>
+<g id="gamepad"><path d="M15 7.5V2H9v5.5l3 3 3-3zM7.5 9H2v6h5.5l3-3-3-3zM9 16.5V22h6v-5.5l-3-3-3 3zM16.5 9l-3 3 3 3H22V9h-5.5z"></path></g>
+<g id="headset"><path d="M12 1c-4.97 0-9 4.03-9 9v7c0 1.66 1.34 3 3 3h3v-8H5v-2c0-3.87 3.13-7 7-7s7 3.13 7 7v2h-4v8h3c1.66 0 3-1.34 3-3v-7c0-4.97-4.03-9-9-9z"></path></g>
+<g id="headset-mic"><path d="M12 1c-4.97 0-9 4.03-9 9v7c0 1.66 1.34 3 3 3h3v-8H5v-2c0-3.87 3.13-7 7-7s7 3.13 7 7v2h-4v8h4v1h-7v2h6c1.66 0 3-1.34 3-3V10c0-4.97-4.03-9-9-9z"></path></g>
+<g id="keyboard"><path d="M20 5H4c-1.1 0-1.99.9-1.99 2L2 17c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm-9 3h2v2h-2V8zm0 3h2v2h-2v-2zM8 8h2v2H8V8zm0 3h2v2H8v-2zm-1 2H5v-2h2v2zm0-3H5V8h2v2zm9 7H8v-2h8v2zm0-4h-2v-2h2v2zm0-3h-2V8h2v2zm3 3h-2v-2h2v2zm0-3h-2V8h2v2z"></path></g>
+<g id="keyboard-arrow-down"><path d="M7.41 7.84L12 12.42l4.59-4.58L18 9.25l-6 6-6-6z"></path></g>
+<g id="keyboard-arrow-left"><path d="M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z"></path></g>
+<g id="keyboard-arrow-right"><path d="M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z"></path></g>
+<g id="keyboard-arrow-up"><path d="M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z"></path></g>
+<g id="keyboard-backspace"><path d="M21 11H6.83l3.58-3.59L9 6l-6 6 6 6 1.41-1.41L6.83 13H21z"></path></g>
+<g id="keyboard-capslock"><path d="M12 8.41L16.59 13 18 11.59l-6-6-6 6L7.41 13 12 8.41zM6 18h12v-2H6v2z"></path></g>
+<g id="keyboard-hide"><path d="M20 3H4c-1.1 0-1.99.9-1.99 2L2 15c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-9 3h2v2h-2V6zm0 3h2v2h-2V9zM8 6h2v2H8V6zm0 3h2v2H8V9zm-1 2H5V9h2v2zm0-3H5V6h2v2zm9 7H8v-2h8v2zm0-4h-2V9h2v2zm0-3h-2V6h2v2zm3 3h-2V9h2v2zm0-3h-2V6h2v2zm-7 15l4-4H8l4 4z"></path></g>
+<g id="keyboard-return"><path d="M19 7v4H5.83l3.58-3.59L8 6l-6 6 6 6 1.41-1.41L5.83 13H21V7z"></path></g>
+<g id="keyboard-tab"><path d="M11.59 7.41L15.17 11H1v2h14.17l-3.59 3.59L13 18l6-6-6-6-1.41 1.41zM20 6v12h2V6h-2z"></path></g>
+<g id="keyboard-voice"><path d="M12 15c1.66 0 2.99-1.34 2.99-3L15 6c0-1.66-1.34-3-3-3S9 4.34 9 6v6c0 1.66 1.34 3 3 3zm5.3-3c0 3-2.54 5.1-5.3 5.1S6.7 15 6.7 12H5c0 3.42 2.72 6.23 6 6.72V22h2v-3.28c3.28-.48 6-3.3 6-6.72h-1.7z"></path></g>
+<g id="laptop"><path d="M20 18c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2H0v2h24v-2h-4zM4 6h16v10H4V6z"></path></g>
+<g id="laptop-chromebook"><path d="M22 18V3H2v15H0v2h24v-2h-2zm-8 0h-4v-1h4v1zm6-3H4V5h16v10z"></path></g>
+<g id="laptop-mac"><path d="M20 18c1.1 0 1.99-.9 1.99-2L22 5c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v11c0 1.1.9 2 2 2H0c0 1.1.9 2 2 2h20c1.1 0 2-.9 2-2h-4zM4 5h16v11H4V5zm8 14c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z"></path></g>
+<g id="laptop-windows"><path d="M20 18v-1c1.1 0 1.99-.9 1.99-2L22 5c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2v1H0v2h24v-2h-4zM4 5h16v10H4V5z"></path></g>
+<g id="memory"><path d="M15 9H9v6h6V9zm-2 4h-2v-2h2v2zm8-2V9h-2V7c0-1.1-.9-2-2-2h-2V3h-2v2h-2V3H9v2H7c-1.1 0-2 .9-2 2v2H3v2h2v2H3v2h2v2c0 1.1.9 2 2 2h2v2h2v-2h2v2h2v-2h2c1.1 0 2-.9 2-2v-2h2v-2h-2v-2h2zm-4 6H7V7h10v10z"></path></g>
+<g id="mouse"><path d="M13 1.07V9h7c0-4.08-3.05-7.44-7-7.93zM4 15c0 4.42 3.58 8 8 8s8-3.58 8-8v-4H4v4zm7-13.93C7.05 1.56 4 4.92 4 9h7V1.07z"></path></g>
+<g id="phone-android"><path d="M16 1H8C6.34 1 5 2.34 5 4v16c0 1.66 1.34 3 3 3h8c1.66 0 3-1.34 3-3V4c0-1.66-1.34-3-3-3zm-2 20h-4v-1h4v1zm3.25-3H6.75V4h10.5v14z"></path></g>
+<g id="phone-iphone"><path d="M15.5 1h-8C6.12 1 5 2.12 5 3.5v17C5 21.88 6.12 23 7.5 23h8c1.38 0 2.5-1.12 2.5-2.5v-17C18 2.12 16.88 1 15.5 1zm-4 21c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm4.5-4H7V4h9v14z"></path></g>
+<g id="phonelink"><path d="M4 6h18V4H4c-1.1 0-2 .9-2 2v11H0v3h14v-3H4V6zm19 2h-6c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h6c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1zm-1 9h-4v-7h4v7z"></path></g>
+<g id="phonelink-off"><path d="M22 6V4H6.82l2 2H22zM1.92 1.65L.65 2.92l1.82 1.82C2.18 5.08 2 5.52 2 6v11H0v3h17.73l2.35 2.35 1.27-1.27L3.89 3.62 1.92 1.65zM4 6.27L14.73 17H4V6.27zM23 8h-6c-.55 0-1 .45-1 1v4.18l2 2V10h4v7h-2.18l3 3H23c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1z"></path></g>
+<g id="power-input"><path d="M2 9v2h19V9H2zm0 6h5v-2H2v2zm7 0h5v-2H9v2zm7 0h5v-2h-5v2z"></path></g>
+<g id="router"><path d="M20.2 5.9l.8-.8C19.6 3.7 17.8 3 16 3s-3.6.7-5 2.1l.8.8C13 4.8 14.5 4.2 16 4.2s3 .6 4.2 1.7zm-.9.8c-.9-.9-2.1-1.4-3.3-1.4s-2.4.5-3.3 1.4l.8.8c.7-.7 1.6-1 2.5-1 .9 0 1.8.3 2.5 1l.8-.8zM19 13h-2V9h-2v4H5c-1.1 0-2 .9-2 2v4c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-4c0-1.1-.9-2-2-2zM8 18H6v-2h2v2zm3.5 0h-2v-2h2v2zm3.5 0h-2v-2h2v2z"></path></g>
+<g id="scanner"><path d="M19.8 10.7L4.2 5l-.7 1.9L17.6 12H5c-1.1 0-2 .9-2 2v4c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-5.5c0-.8-.5-1.6-1.2-1.8zM7 17H5v-2h2v2zm12 0H9v-2h10v2z"></path></g>
+<g id="security"><path d="M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm0 10.99h7c-.53 4.12-3.28 7.79-7 8.94V12H5V6.3l7-3.11v8.8z"></path></g>
+<g id="sim-card"><path d="M19.99 4c0-1.1-.89-2-1.99-2h-8L4 8v12c0 1.1.9 2 2 2h12.01c1.1 0 1.99-.9 1.99-2l-.01-16zM9 19H7v-2h2v2zm8 0h-2v-2h2v2zm-8-4H7v-4h2v4zm4 4h-2v-4h2v4zm0-6h-2v-2h2v2zm4 2h-2v-4h2v4z"></path></g>
+<g id="smartphone"><path d="M17 1.01L7 1c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM17 19H7V5h10v14z"></path></g>
+<g id="speaker"><path d="M17 2H7c-1.1 0-2 .9-2 2v16c0 1.1.9 1.99 2 1.99L17 22c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-5 2c1.1 0 2 .9 2 2s-.9 2-2 2c-1.11 0-2-.9-2-2s.89-2 2-2zm0 16c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"></path></g>
+<g id="speaker-group"><path d="M18.2 1H9.8C8.81 1 8 1.81 8 2.8v14.4c0 .99.81 1.79 1.8 1.79l8.4.01c.99 0 1.8-.81 1.8-1.8V2.8c0-.99-.81-1.8-1.8-1.8zM14 3c1.1 0 2 .89 2 2s-.9 2-2 2-2-.89-2-2 .9-2 2-2zm0 13.5c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4z"></path><circle cx="14" cy="12.5" r="2.5"></circle><path d="M6 5H4v16c0 1.1.89 2 2 2h10v-2H6V5z"></path></g>
+<g id="tablet"><path d="M21 4H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h18c1.1 0 1.99-.9 1.99-2L23 6c0-1.1-.9-2-2-2zm-2 14H5V6h14v12z"></path></g>
+<g id="tablet-android"><path d="M18 0H6C4.34 0 3 1.34 3 3v18c0 1.66 1.34 3 3 3h12c1.66 0 3-1.34 3-3V3c0-1.66-1.34-3-3-3zm-4 22h-4v-1h4v1zm5.25-3H4.75V3h14.5v16z"></path></g>
+<g id="tablet-mac"><path d="M18.5 0h-14C3.12 0 2 1.12 2 2.5v19C2 22.88 3.12 24 4.5 24h14c1.38 0 2.5-1.12 2.5-2.5v-19C21 1.12 19.88 0 18.5 0zm-7 23c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm7.5-4H4V3h15v16z"></path></g>
+<g id="toys"><path d="M12 12c0-3 2.5-5.5 5.5-5.5S23 9 23 12H12zm0 0c0 3-2.5 5.5-5.5 5.5S1 15 1 12h11zm0 0c-3 0-5.5-2.5-5.5-5.5S9 1 12 1v11zm0 0c3 0 5.5 2.5 5.5 5.5S15 23 12 23V12z"></path></g>
+<g id="tv"><path d="M21 3H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h5v2h8v-2h5c1.1 0 1.99-.9 1.99-2L23 5c0-1.1-.9-2-2-2zm0 14H3V5h18v12z"></path></g>
+<g id="videogame-asset"><path d="M21 6H3c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm-10 7H8v3H6v-3H3v-2h3V8h2v3h3v2zm4.5 2c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm4-3c-.83 0-1.5-.67-1.5-1.5S18.67 9 19.5 9s1.5.67 1.5 1.5-.67 1.5-1.5 1.5z"></path></g>
+<g id="watch"><path d="M20 12c0-2.54-1.19-4.81-3.04-6.27L16 0H8l-.95 5.73C5.19 7.19 4 9.45 4 12s1.19 4.81 3.05 6.27L8 24h8l.96-5.73C18.81 16.81 20 14.54 20 12zM6 12c0-3.31 2.69-6 6-6s6 2.69 6 6-2.69 6-6 6-6-2.69-6-6z"></path></g>
+</defs></svg>
+</iron-iconset-svg>
+<dom-module id="paper-ripple" assetpath="chrome://resources/polymer/v1_0/paper-ripple/">
+
+ <template>
+ <style>
+ :host {
+ display: block;
+ position: absolute;
+ border-radius: inherit;
+ overflow: hidden;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+
+ /* See PolymerElements/paper-behaviors/issues/34. On non-Chrome browsers,
+ * creating a node (with a position:absolute) in the middle of an event
+ * handler "interrupts" that event handler (which happens when the
+ * ripple is created on demand) */
+ pointer-events: none;
+ }
+
+ :host([animating]) {
+ /* This resolves a rendering issue in Chrome (as of 40) where the
+ ripple is not properly clipped by its parent (which may have
+ rounded corners). See: http://jsbin.com/temexa/4
+
+ Note: We only apply this style conditionally. Otherwise, the browser
+ will create a new compositing layer for every ripple element on the
+ page, and that would be bad. */
+ -webkit-transform: translate(0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+
+ #background,
+ #waves,
+ .wave-container,
+ .wave {
+ pointer-events: none;
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ }
+
+ #background,
+ .wave {
+ opacity: 0;
+ }
+
+ #waves,
+ .wave {
+ overflow: hidden;
+ }
+
+ .wave-container,
+ .wave {
+ border-radius: 50%;
+ }
+
+ :host(.circle) #background,
+ :host(.circle) #waves {
+ border-radius: 50%;
+ }
+
+ :host(.circle) .wave-container {
+ overflow: hidden;
+ }
+ </style>
+
+ <div id="background"></div>
+ <div id="waves"></div>
+ </template>
+</dom-module>
+<style is="custom-style">
+
+ :root {
+
+ --shadow-transition: {
+ transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1);
+ };
+
+ --shadow-none: {
+ box-shadow: none;
+ };
+
+ /* from http://codepen.io/shyndman/pen/c5394ddf2e8b2a5c9185904b57421cdb */
+
+ --shadow-elevation-2dp: {
+ box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14),
+ 0 1px 5px 0 rgba(0, 0, 0, 0.12),
+ 0 3px 1px -2px rgba(0, 0, 0, 0.2);
+ };
+
+ --shadow-elevation-3dp: {
+ box-shadow: 0 3px 4px 0 rgba(0, 0, 0, 0.14),
+ 0 1px 8px 0 rgba(0, 0, 0, 0.12),
+ 0 3px 3px -2px rgba(0, 0, 0, 0.4);
+ };
+
+ --shadow-elevation-4dp: {
+ box-shadow: 0 4px 5px 0 rgba(0, 0, 0, 0.14),
+ 0 1px 10px 0 rgba(0, 0, 0, 0.12),
+ 0 2px 4px -1px rgba(0, 0, 0, 0.4);
+ };
+
+ --shadow-elevation-6dp: {
+ box-shadow: 0 6px 10px 0 rgba(0, 0, 0, 0.14),
+ 0 1px 18px 0 rgba(0, 0, 0, 0.12),
+ 0 3px 5px -1px rgba(0, 0, 0, 0.4);
+ };
+
+ --shadow-elevation-8dp: {
+ box-shadow: 0 8px 10px 1px rgba(0, 0, 0, 0.14),
+ 0 3px 14px 2px rgba(0, 0, 0, 0.12),
+ 0 5px 5px -3px rgba(0, 0, 0, 0.4);
+ };
+
+ --shadow-elevation-12dp: {
+ box-shadow: 0 12px 16px 1px rgba(0, 0, 0, 0.14),
+ 0 4px 22px 3px rgba(0, 0, 0, 0.12),
+ 0 6px 7px -4px rgba(0, 0, 0, 0.4);
+ };
+
+ --shadow-elevation-16dp: {
+ box-shadow: 0 16px 24px 2px rgba(0, 0, 0, 0.14),
+ 0 6px 30px 5px rgba(0, 0, 0, 0.12),
+ 0 8px 10px -5px rgba(0, 0, 0, 0.4);
+ };
+
+ }
+
+</style>
+<dom-module id="paper-material-shared-styles" assetpath="chrome://resources/polymer/v1_0/paper-material/">
+ <template>
+ <style>
+ :host {
+ display: block;
+ position: relative;
+ }
+
+ :host([elevation="1"]) {
+ @apply(--shadow-elevation-2dp);
+ }
+
+ :host([elevation="2"]) {
+ @apply(--shadow-elevation-4dp);
+ }
+
+ :host([elevation="3"]) {
+ @apply(--shadow-elevation-6dp);
+ }
+
+ :host([elevation="4"]) {
+ @apply(--shadow-elevation-8dp);
+ }
+
+ :host([elevation="5"]) {
+ @apply(--shadow-elevation-16dp);
+ }
+ </style>
+ </template>
+</dom-module>
+
+
+<dom-module id="paper-button" assetpath="chrome://resources/polymer/v1_0/paper-button/">
+ <template strip-whitespace="">
+ <style include="paper-material-shared-styles">
+ :host {
+ @apply(--layout-inline);
+ @apply(--layout-center-center);
+ position: relative;
+ box-sizing: border-box;
+ min-width: 5.14em;
+ margin: 0 0.29em;
+ background: transparent;
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+ -webkit-tap-highlight-color: transparent;
+ font: inherit;
+ text-transform: uppercase;
+ outline-width: 0;
+ border-radius: 3px;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ -webkit-user-select: none;
+ user-select: none;
+ cursor: pointer;
+ z-index: 0;
+ padding: 0.7em 0.57em;
+
+ @apply(--paper-font-common-base);
+ @apply(--paper-button);
+ }
+
+ :host([hidden]) {
+ display: none !important;
+ }
+
+ :host([raised].keyboard-focus) {
+ font-weight: bold;
+ @apply(--paper-button-raised-keyboard-focus);
+ }
+
+ :host(:not([raised]).keyboard-focus) {
+ font-weight: bold;
+ @apply(--paper-button-flat-keyboard-focus);
+ }
+
+ :host([disabled]) {
+ background: #eaeaea;
+ color: #a8a8a8;
+ cursor: auto;
+ pointer-events: none;
+
+ @apply(--paper-button-disabled);
+ }
+
+ :host([animated]) {
+ @apply(--shadow-transition);
+ }
+
+ paper-ripple {
+ color: var(--paper-button-ink-color);
+ }
+ </style>
+
+ <content></content>
+ </template>
+
+ </dom-module>
+<style is="custom-style">
+
+ :root {
+
+ /* Material Design color palette for Google products */
+
+ --google-red-100: #f4c7c3;
+ --google-red-300: #e67c73;
+ --google-red-500: #db4437;
+ --google-red-700: #c53929;
+
+ --google-blue-100: #c6dafc;
+ --google-blue-300: #7baaf7;
+ --google-blue-500: #4285f4;
+ --google-blue-700: #3367d6;
+
+ --google-green-100: #b7e1cd;
+ --google-green-300: #57bb8a;
+ --google-green-500: #0f9d58;
+ --google-green-700: #0b8043;
+
+ --google-yellow-100: #fce8b2;
+ --google-yellow-300: #f7cb4d;
+ --google-yellow-500: #f4b400;
+ --google-yellow-700: #f09300;
+
+ --google-grey-100: #f5f5f5;
+ --google-grey-300: #e0e0e0;
+ --google-grey-500: #9e9e9e;
+ --google-grey-700: #616161;
+
+ /* Material Design color palette from online spec document */
+
+ --paper-red-50: #ffebee;
+ --paper-red-100: #ffcdd2;
+ --paper-red-200: #ef9a9a;
+ --paper-red-300: #e57373;
+ --paper-red-400: #ef5350;
+ --paper-red-500: #f44336;
+ --paper-red-600: #e53935;
+ --paper-red-700: #d32f2f;
+ --paper-red-800: #c62828;
+ --paper-red-900: #b71c1c;
+ --paper-red-a100: #ff8a80;
+ --paper-red-a200: #ff5252;
+ --paper-red-a400: #ff1744;
+ --paper-red-a700: #d50000;
+
+ --paper-pink-50: #fce4ec;
+ --paper-pink-100: #f8bbd0;
+ --paper-pink-200: #f48fb1;
+ --paper-pink-300: #f06292;
+ --paper-pink-400: #ec407a;
+ --paper-pink-500: #e91e63;
+ --paper-pink-600: #d81b60;
+ --paper-pink-700: #c2185b;
+ --paper-pink-800: #ad1457;
+ --paper-pink-900: #880e4f;
+ --paper-pink-a100: #ff80ab;
+ --paper-pink-a200: #ff4081;
+ --paper-pink-a400: #f50057;
+ --paper-pink-a700: #c51162;
+
+ --paper-purple-50: #f3e5f5;
+ --paper-purple-100: #e1bee7;
+ --paper-purple-200: #ce93d8;
+ --paper-purple-300: #ba68c8;
+ --paper-purple-400: #ab47bc;
+ --paper-purple-500: #9c27b0;
+ --paper-purple-600: #8e24aa;
+ --paper-purple-700: #7b1fa2;
+ --paper-purple-800: #6a1b9a;
+ --paper-purple-900: #4a148c;
+ --paper-purple-a100: #ea80fc;
+ --paper-purple-a200: #e040fb;
+ --paper-purple-a400: #d500f9;
+ --paper-purple-a700: #aa00ff;
+
+ --paper-deep-purple-50: #ede7f6;
+ --paper-deep-purple-100: #d1c4e9;
+ --paper-deep-purple-200: #b39ddb;
+ --paper-deep-purple-300: #9575cd;
+ --paper-deep-purple-400: #7e57c2;
+ --paper-deep-purple-500: #673ab7;
+ --paper-deep-purple-600: #5e35b1;
+ --paper-deep-purple-700: #512da8;
+ --paper-deep-purple-800: #4527a0;
+ --paper-deep-purple-900: #311b92;
+ --paper-deep-purple-a100: #b388ff;
+ --paper-deep-purple-a200: #7c4dff;
+ --paper-deep-purple-a400: #651fff;
+ --paper-deep-purple-a700: #6200ea;
+
+ --paper-indigo-50: #e8eaf6;
+ --paper-indigo-100: #c5cae9;
+ --paper-indigo-200: #9fa8da;
+ --paper-indigo-300: #7986cb;
+ --paper-indigo-400: #5c6bc0;
+ --paper-indigo-500: #3f51b5;
+ --paper-indigo-600: #3949ab;
+ --paper-indigo-700: #303f9f;
+ --paper-indigo-800: #283593;
+ --paper-indigo-900: #1a237e;
+ --paper-indigo-a100: #8c9eff;
+ --paper-indigo-a200: #536dfe;
+ --paper-indigo-a400: #3d5afe;
+ --paper-indigo-a700: #304ffe;
+
+ --paper-blue-50: #e3f2fd;
+ --paper-blue-100: #bbdefb;
+ --paper-blue-200: #90caf9;
+ --paper-blue-300: #64b5f6;
+ --paper-blue-400: #42a5f5;
+ --paper-blue-500: #2196f3;
+ --paper-blue-600: #1e88e5;
+ --paper-blue-700: #1976d2;
+ --paper-blue-800: #1565c0;
+ --paper-blue-900: #0d47a1;
+ --paper-blue-a100: #82b1ff;
+ --paper-blue-a200: #448aff;
+ --paper-blue-a400: #2979ff;
+ --paper-blue-a700: #2962ff;
+
+ --paper-light-blue-50: #e1f5fe;
+ --paper-light-blue-100: #b3e5fc;
+ --paper-light-blue-200: #81d4fa;
+ --paper-light-blue-300: #4fc3f7;
+ --paper-light-blue-400: #29b6f6;
+ --paper-light-blue-500: #03a9f4;
+ --paper-light-blue-600: #039be5;
+ --paper-light-blue-700: #0288d1;
+ --paper-light-blue-800: #0277bd;
+ --paper-light-blue-900: #01579b;
+ --paper-light-blue-a100: #80d8ff;
+ --paper-light-blue-a200: #40c4ff;
+ --paper-light-blue-a400: #00b0ff;
+ --paper-light-blue-a700: #0091ea;
+
+ --paper-cyan-50: #e0f7fa;
+ --paper-cyan-100: #b2ebf2;
+ --paper-cyan-200: #80deea;
+ --paper-cyan-300: #4dd0e1;
+ --paper-cyan-400: #26c6da;
+ --paper-cyan-500: #00bcd4;
+ --paper-cyan-600: #00acc1;
+ --paper-cyan-700: #0097a7;
+ --paper-cyan-800: #00838f;
+ --paper-cyan-900: #006064;
+ --paper-cyan-a100: #84ffff;
+ --paper-cyan-a200: #18ffff;
+ --paper-cyan-a400: #00e5ff;
+ --paper-cyan-a700: #00b8d4;
+
+ --paper-teal-50: #e0f2f1;
+ --paper-teal-100: #b2dfdb;
+ --paper-teal-200: #80cbc4;
+ --paper-teal-300: #4db6ac;
+ --paper-teal-400: #26a69a;
+ --paper-teal-500: #009688;
+ --paper-teal-600: #00897b;
+ --paper-teal-700: #00796b;
+ --paper-teal-800: #00695c;
+ --paper-teal-900: #004d40;
+ --paper-teal-a100: #a7ffeb;
+ --paper-teal-a200: #64ffda;
+ --paper-teal-a400: #1de9b6;
+ --paper-teal-a700: #00bfa5;
+
+ --paper-green-50: #e8f5e9;
+ --paper-green-100: #c8e6c9;
+ --paper-green-200: #a5d6a7;
+ --paper-green-300: #81c784;
+ --paper-green-400: #66bb6a;
+ --paper-green-500: #4caf50;
+ --paper-green-600: #43a047;
+ --paper-green-700: #388e3c;
+ --paper-green-800: #2e7d32;
+ --paper-green-900: #1b5e20;
+ --paper-green-a100: #b9f6ca;
+ --paper-green-a200: #69f0ae;
+ --paper-green-a400: #00e676;
+ --paper-green-a700: #00c853;
+
+ --paper-light-green-50: #f1f8e9;
+ --paper-light-green-100: #dcedc8;
+ --paper-light-green-200: #c5e1a5;
+ --paper-light-green-300: #aed581;
+ --paper-light-green-400: #9ccc65;
+ --paper-light-green-500: #8bc34a;
+ --paper-light-green-600: #7cb342;
+ --paper-light-green-700: #689f38;
+ --paper-light-green-800: #558b2f;
+ --paper-light-green-900: #33691e;
+ --paper-light-green-a100: #ccff90;
+ --paper-light-green-a200: #b2ff59;
+ --paper-light-green-a400: #76ff03;
+ --paper-light-green-a700: #64dd17;
+
+ --paper-lime-50: #f9fbe7;
+ --paper-lime-100: #f0f4c3;
+ --paper-lime-200: #e6ee9c;
+ --paper-lime-300: #dce775;
+ --paper-lime-400: #d4e157;
+ --paper-lime-500: #cddc39;
+ --paper-lime-600: #c0ca33;
+ --paper-lime-700: #afb42b;
+ --paper-lime-800: #9e9d24;
+ --paper-lime-900: #827717;
+ --paper-lime-a100: #f4ff81;
+ --paper-lime-a200: #eeff41;
+ --paper-lime-a400: #c6ff00;
+ --paper-lime-a700: #aeea00;
+
+ --paper-yellow-50: #fffde7;
+ --paper-yellow-100: #fff9c4;
+ --paper-yellow-200: #fff59d;
+ --paper-yellow-300: #fff176;
+ --paper-yellow-400: #ffee58;
+ --paper-yellow-500: #ffeb3b;
+ --paper-yellow-600: #fdd835;
+ --paper-yellow-700: #fbc02d;
+ --paper-yellow-800: #f9a825;
+ --paper-yellow-900: #f57f17;
+ --paper-yellow-a100: #ffff8d;
+ --paper-yellow-a200: #ffff00;
+ --paper-yellow-a400: #ffea00;
+ --paper-yellow-a700: #ffd600;
+
+ --paper-amber-50: #fff8e1;
+ --paper-amber-100: #ffecb3;
+ --paper-amber-200: #ffe082;
+ --paper-amber-300: #ffd54f;
+ --paper-amber-400: #ffca28;
+ --paper-amber-500: #ffc107;
+ --paper-amber-600: #ffb300;
+ --paper-amber-700: #ffa000;
+ --paper-amber-800: #ff8f00;
+ --paper-amber-900: #ff6f00;
+ --paper-amber-a100: #ffe57f;
+ --paper-amber-a200: #ffd740;
+ --paper-amber-a400: #ffc400;
+ --paper-amber-a700: #ffab00;
+
+ --paper-orange-50: #fff3e0;
+ --paper-orange-100: #ffe0b2;
+ --paper-orange-200: #ffcc80;
+ --paper-orange-300: #ffb74d;
+ --paper-orange-400: #ffa726;
+ --paper-orange-500: #ff9800;
+ --paper-orange-600: #fb8c00;
+ --paper-orange-700: #f57c00;
+ --paper-orange-800: #ef6c00;
+ --paper-orange-900: #e65100;
+ --paper-orange-a100: #ffd180;
+ --paper-orange-a200: #ffab40;
+ --paper-orange-a400: #ff9100;
+ --paper-orange-a700: #ff6500;
+
+ --paper-deep-orange-50: #fbe9e7;
+ --paper-deep-orange-100: #ffccbc;
+ --paper-deep-orange-200: #ffab91;
+ --paper-deep-orange-300: #ff8a65;
+ --paper-deep-orange-400: #ff7043;
+ --paper-deep-orange-500: #ff5722;
+ --paper-deep-orange-600: #f4511e;
+ --paper-deep-orange-700: #e64a19;
+ --paper-deep-orange-800: #d84315;
+ --paper-deep-orange-900: #bf360c;
+ --paper-deep-orange-a100: #ff9e80;
+ --paper-deep-orange-a200: #ff6e40;
+ --paper-deep-orange-a400: #ff3d00;
+ --paper-deep-orange-a700: #dd2c00;
+
+ --paper-brown-50: #efebe9;
+ --paper-brown-100: #d7ccc8;
+ --paper-brown-200: #bcaaa4;
+ --paper-brown-300: #a1887f;
+ --paper-brown-400: #8d6e63;
+ --paper-brown-500: #795548;
+ --paper-brown-600: #6d4c41;
+ --paper-brown-700: #5d4037;
+ --paper-brown-800: #4e342e;
+ --paper-brown-900: #3e2723;
+
+ --paper-grey-50: #fafafa;
+ --paper-grey-100: #f5f5f5;
+ --paper-grey-200: #eeeeee;
+ --paper-grey-300: #e0e0e0;
+ --paper-grey-400: #bdbdbd;
+ --paper-grey-500: #9e9e9e;
+ --paper-grey-600: #757575;
+ --paper-grey-700: #616161;
+ --paper-grey-800: #424242;
+ --paper-grey-900: #212121;
+
+ --paper-blue-grey-50: #eceff1;
+ --paper-blue-grey-100: #cfd8dc;
+ --paper-blue-grey-200: #b0bec5;
+ --paper-blue-grey-300: #90a4ae;
+ --paper-blue-grey-400: #78909c;
+ --paper-blue-grey-500: #607d8b;
+ --paper-blue-grey-600: #546e7a;
+ --paper-blue-grey-700: #455a64;
+ --paper-blue-grey-800: #37474f;
+ --paper-blue-grey-900: #263238;
+
+ /* opacity for dark text on a light background */
+ --dark-divider-opacity: 0.12;
+ --dark-disabled-opacity: 0.38; /* or hint text or icon */
+ --dark-secondary-opacity: 0.54;
+ --dark-primary-opacity: 0.87;
+
+ /* opacity for light text on a dark background */
+ --light-divider-opacity: 0.12;
+ --light-disabled-opacity: 0.3; /* or hint text or icon */
+ --light-secondary-opacity: 0.7;
+ --light-primary-opacity: 1.0;
+
+ }
+
+</style>
+
+
+<style is="custom-style">
+
+ :root {
+ /*
+ * You can use these generic variables in your elements for easy theming.
+ * For example, if all your elements use `--primary-text-color` as its main
+ * color, then switching from a light to a dark theme is just a matter of
+ * changing the value of `--primary-text-color` in your application.
+ */
+ --primary-text-color: var(--light-theme-text-color);
+ --primary-background-color: var(--light-theme-background-color);
+ --secondary-text-color: var(--light-theme-secondary-color);
+ --disabled-text-color: var(--light-theme-disabled-color);
+ --divider-color: var(--light-theme-divider-color);
+ --error-color: var(--paper-deep-orange-a700);
+
+ /*
+ * Primary and accent colors. Also see color.html for more colors.
+ */
+ --primary-color: var(--paper-indigo-500);
+ --light-primary-color: var(--paper-indigo-100);
+ --dark-primary-color: var(--paper-indigo-700);
+
+ --accent-color: var(--paper-pink-a200);
+ --light-accent-color: var(--paper-pink-a100);
+ --dark-accent-color: var(--paper-pink-a400);
+
+
+ /*
+ * Material Design Light background theme
+ */
+ --light-theme-background-color: #ffffff;
+ --light-theme-base-color: #000000;
+ --light-theme-text-color: var(--paper-grey-900);
+ --light-theme-secondary-color: #737373; /* for secondary text and icons */
+ --light-theme-disabled-color: #9b9b9b; /* disabled/hint text */
+ --light-theme-divider-color: #dbdbdb;
+
+ /*
+ * Material Design Dark background theme
+ */
+ --dark-theme-background-color: var(--paper-grey-900);
+ --dark-theme-base-color: #ffffff;
+ --dark-theme-text-color: #ffffff;
+ --dark-theme-secondary-color: #bcbcbc; /* for secondary text and icons */
+ --dark-theme-disabled-color: #646464; /* disabled/hint text */
+ --dark-theme-divider-color: #3c3c3c;
+
+ /*
+ * Deprecated values because of their confusing names.
+ */
+ --text-primary-color: var(--dark-theme-text-color);
+ --default-primary-color: var(--primary-color);
+
+ }
+
+</style>
+
+
+<dom-module id="paper-icon-button" assetpath="chrome://resources/polymer/v1_0/paper-icon-button/">
+ <template strip-whitespace="">
+ <style>
+ :host {
+ display: inline-block;
+ position: relative;
+ padding: 8px;
+ outline: none;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+ cursor: pointer;
+ z-index: 0;
+ line-height: 1;
+
+ width: 40px;
+ height: 40px;
+
+ /* NOTE: Both values are needed, since some phones require the value to be `transparent`. */
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+ -webkit-tap-highlight-color: transparent;
+
+ /* Because of polymer/2558, this style has lower specificity than * */
+ box-sizing: border-box !important;
+
+ @apply(--paper-icon-button);
+ }
+
+ :host #ink {
+ color: var(--paper-icon-button-ink-color, --primary-text-color);
+ opacity: 0.6;
+ }
+
+ :host([disabled]) {
+ color: var(--paper-icon-button-disabled-text, --disabled-text-color);
+ pointer-events: none;
+ cursor: auto;
+
+ @apply(--paper-icon-button-disabled);
+ }
+
+ :host(:hover) {
+ @apply(--paper-icon-button-hover);
+ }
+
+ iron-icon {
+ --iron-icon-width: 100%;
+ --iron-icon-height: 100%;
+ }
+ </style>
+
+ <iron-icon id="icon" src="[[src]]" icon="[[icon]]" alt$="[[alt]]"></iron-icon>
+ </template>
+
+ </dom-module>
+<dom-module id="paper-tab" assetpath="chrome://resources/polymer/v1_0/paper-tabs/">
+ <template>
+ <style>
+ :host {
+ @apply(--layout-inline);
+ @apply(--layout-center);
+ @apply(--layout-center-justified);
+ @apply(--layout-flex-auto);
+
+ position: relative;
+ padding: 0 12px;
+ overflow: hidden;
+ cursor: pointer;
+ vertical-align: middle;
+
+ @apply(--paper-font-common-base);
+ @apply(--paper-tab);
+ }
+
+ :host(:focus) {
+ outline: none;
+ }
+
+ :host([link]) {
+ padding: 0;
+ }
+
+ .tab-content {
+ height: 100%;
+ transform: translateZ(0);
+ -webkit-transform: translateZ(0);
+ transition: opacity 0.1s cubic-bezier(0.4, 0.0, 1, 1);
+ @apply(--layout-horizontal);
+ @apply(--layout-center-center);
+ @apply(--layout-flex-auto);
+ @apply(--paper-tab-content);
+ }
+
+ :host(:not(.iron-selected)) > .tab-content {
+ opacity: 0.8;
+
+ @apply(--paper-tab-content-unselected);
+ }
+
+ :host(:focus) .tab-content {
+ opacity: 1;
+ font-weight: 700;
+ }
+
+ paper-ripple {
+ color: var(--paper-tab-ink, --paper-yellow-a100);
+ }
+
+ .tab-content > ::content > a {
+ @apply(--layout-flex-auto);
+
+ height: 100%;
+ }
+ </style>
+
+ <div class="tab-content">
+ <content></content>
+ </div>
+ </template>
+
+ </dom-module>
+<iron-iconset-svg name="paper-tabs" size="24">
+<svg><defs>
+<g id="chevron-left"><path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"></path></g>
+<g id="chevron-right"><path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"></path></g>
+</defs></svg>
+</iron-iconset-svg>
+
+
+<dom-module id="paper-tabs" assetpath="chrome://resources/polymer/v1_0/paper-tabs/">
+ <template>
+ <style>
+ :host {
+ @apply(--layout);
+ @apply(--layout-center);
+
+ height: 48px;
+ font-size: 14px;
+ font-weight: 500;
+ overflow: hidden;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ -webkit-user-select: none;
+ user-select: none;
+
+ /* NOTE: Both values are needed, since some phones require the value to be `transparent`. */
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+ -webkit-tap-highlight-color: transparent;
+
+ @apply(--paper-tabs);
+ }
+
+ :host-context([dir=rtl]) {
+ @apply(--layout-horizontal-reverse);
+ }
+
+ #tabsContainer {
+ position: relative;
+ height: 100%;
+ white-space: nowrap;
+ overflow: hidden;
+ @apply(--layout-flex-auto);
+ }
+
+ #tabsContent {
+ height: 100%;
+ -moz-flex-basis: auto;
+ -ms-flex-basis: auto;
+ flex-basis: auto;
+ }
+
+ #tabsContent.scrollable {
+ position: absolute;
+ white-space: nowrap;
+ }
+
+ #tabsContent:not(.scrollable),
+ #tabsContent.scrollable.fit-container {
+ @apply(--layout-horizontal);
+ }
+
+ #tabsContent.scrollable.fit-container {
+ min-width: 100%;
+ }
+
+ #tabsContent.scrollable.fit-container > ::content > * {
+ /* IE - prevent tabs from compressing when they should scroll. */
+ -ms-flex: 1 0 auto;
+ -webkit-flex: 1 0 auto;
+ flex: 1 0 auto;
+ }
+
+ .hidden {
+ display: none;
+ }
+
+ .not-visible {
+ opacity: 0;
+ cursor: default;
+ }
+
+ paper-icon-button {
+ width: 48px;
+ height: 48px;
+ padding: 12px;
+ margin: 0 4px;
+ }
+
+ #selectionBar {
+ position: absolute;
+ height: 2px;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ background-color: var(--paper-tabs-selection-bar-color, --paper-yellow-a100);
+ -webkit-transform: scale(0);
+ transform: scale(0);
+ -webkit-transform-origin: left center;
+ transform-origin: left center;
+ transition: -webkit-transform;
+ transition: transform;
+
+ @apply(--paper-tabs-selection-bar);
+ }
+
+ #selectionBar.align-bottom {
+ top: 0;
+ bottom: auto;
+ }
+
+ #selectionBar.expand {
+ transition-duration: 0.15s;
+ transition-timing-function: cubic-bezier(0.4, 0.0, 1, 1);
+ }
+
+ #selectionBar.contract {
+ transition-duration: 0.18s;
+ transition-timing-function: cubic-bezier(0.0, 0.0, 0.2, 1);
+ }
+
+ #tabsContent > ::content > *:not(#selectionBar) {
+ height: 100%;
+ }
+ </style>
+
+ <paper-icon-button icon="paper-tabs:chevron-left" class$="[[_computeScrollButtonClass(_leftHidden, scrollable, hideScrollButtons)]]" on-up="_onScrollButtonUp" on-down="_onLeftScrollButtonDown" tabindex="-1"></paper-icon-button>
+
+ <div id="tabsContainer" on-track="_scroll" on-down="_down">
+ <div id="tabsContent" class$="[[_computeTabsContentClass(scrollable, fitContainer)]]">
+ <div id="selectionBar" class$="[[_computeSelectionBarClass(noBar, alignBottom)]]" on-transitionend="_onBarTransitionEnd"></div>
+ <content select="*"></content>
+ </div>
+ </div>
+
+ <paper-icon-button icon="paper-tabs:chevron-right" class$="[[_computeScrollButtonClass(_rightHidden, scrollable, hideScrollButtons)]]" on-up="_onScrollButtonUp" on-down="_onRightScrollButtonDown" tabindex="-1"></paper-icon-button>
+
+ </template>
+
+ </dom-module>
+<iron-iconset-svg name="cr" size="24">
+ <svg>
+ <defs>
+
+ <g id="add"><path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"></path></g>
+ <g id="arrow-drop-down"><path d="M7 10l5 5 5-5z"></path></g>
+ <g id="cancel"><path d="M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z"></path></g>
+<if expr="chromeos">
+ <g id="check"><path d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"></path></g>
+</if>
+ <g id="chevron-right"><path d="M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z"></path></g>
+ <g id="clear"><path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"></path></g>
+ <g id="close"><path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"></path></g>
+ <g id="domain"><path d="M12 7V3H2v18h20V7H12zM6 19H4v-2h2v2zm0-4H4v-2h2v2zm0-4H4V9h2v2zm0-4H4V5h2v2zm4 12H8v-2h2v2zm0-4H8v-2h2v2zm0-4H8V9h2v2zm0-4H8V5h2v2zm10 12h-8v-2h2v-2h-2v-2h2v-2h-2V9h8v10zm-2-8h-2v2h2v-2zm0 4h-2v2h2v-2z"></path></g>
+ <g id="expand-less"><path d="M12 8l-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z"></path></g>
+ <g id="expand-more"><path d="M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z"></path></g>
+ <g id="extension"><path d="M20.5 11H19V7c0-1.1-.9-2-2-2h-4V3.5C13 2.12 11.88 1 10.5 1S8 2.12 8 3.5V5H4c-1.1 0-1.99.9-1.99 2v3.8H3.5c1.49 0 2.7 1.21 2.7 2.7s-1.21 2.7-2.7 2.7H2V20c0 1.1.9 2 2 2h3.8v-1.5c0-1.49 1.21-2.7 2.7-2.7 1.49 0 2.7 1.21 2.7 2.7V22H17c1.1 0 2-.9 2-2v-4h1.5c1.38 0 2.5-1.12 2.5-2.5S21.88 11 20.5 11z"></path></g>
+ <g id="file-download"><path d="M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z"></path></g>
+ <g id="fullscreen"><path d="M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z"></path></g>
+ <g id="group"><path d="M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z"></path></g>
+ <g id="menu"><path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"></path></g>
+ <g id="more-vert"><path d="M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"></path></g>
+ <g id="person"><path d="M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"></path></g>
+ <g id="print"><path d="M19 8H5c-1.66 0-3 1.34-3 3v6h4v4h12v-4h4v-6c0-1.66-1.34-3-3-3zm-3 11H8v-5h8v5zm3-7c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm-1-9H6v4h12V3z"></path></g>
+ <g id="search"><path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"></path></g>
+ <g id="settings"><path d="M19.43 12.98c.04-.32.07-.64.07-.98s-.03-.66-.07-.98l2.11-1.65c.19-.15.24-.42.12-.64l-2-3.46c-.12-.22-.39-.3-.61-.22l-2.49 1c-.52-.4-1.08-.73-1.69-.98l-.38-2.65C14.46 2.18 14.25 2 14 2h-4c-.25 0-.46.18-.49.42l-.38 2.65c-.61.25-1.17.59-1.69.98l-2.49-1c-.23-.09-.49 0-.61.22l-2 3.46c-.13.22-.07.49.12.64l2.11 1.65c-.04.32-.07.65-.07.98s.03.66.07.98l-2.11 1.65c-.19.15-.24.42-.12.64l2 3.46c.12.22.39.3.61.22l2.49-1c.52.4 1.08.73 1.69.98l.38 2.65c.03.24.24.42.49.42h4c.25 0 .46-.18.49-.42l.38-2.65c.61-.25 1.17-.59 1.69-.98l2.49 1c.23.09.49 0 .61-.22l2-3.46c.12-.22.07-.49-.12-.64l-2.11-1.65zM12 15.5c-1.93 0-3.5-1.57-3.5-3.5s1.57-3.5 3.5-3.5 3.5 1.57 3.5 3.5-1.57 3.5-3.5 3.5z"></path></g>
+ <g id="star"><path d="M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z"></path></g>
+ <g id="warning"><path d="M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"></path></g>
+<if expr="chromeos">
+ <g id="star-border"><path d="M22 9.24l-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03L22 9.24zM12 15.4l-3.76 2.27 1-4.28-3.32-2.88 4.38-.38L12 6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.4z"></path></g>
+</if>
+ </defs>
+ </svg>
+</iron-iconset-svg>
+
+
+<dom-module id="iron-a11y-announcer" assetpath="chrome://resources/polymer/v1_0/iron-a11y-announcer/">
+ <template>
+ <style>
+ :host {
+ display: inline-block;
+ position: fixed;
+ clip: rect(0px,0px,0px,0px);
+ }
+ </style>
+ <div aria-live$="[[mode]]">[[_text]]</div>
+ </template>
+
+ </dom-module>
+<style>
+/* Copyright 2015 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file. */
+
+<if expr="not chromeos">
+@font-face {
+ font-family: 'Roboto';
+ font-style: normal;
+ font-weight: 400;
+ src: local('Roboto'), local('Roboto-Regular'),
+ url("chrome://resources/roboto/roboto-regular.woff2") format('woff2');
+}
+
+@font-face {
+ font-family: 'Roboto';
+ font-style: normal;
+ font-weight: 500;
+ src: local('Roboto Medium'), local('Roboto-Medium'),
+ url("chrome://resources/roboto/roboto-medium.woff2") format('woff2');
+}
+
+@font-face {
+ font-family: 'Roboto';
+ font-style: normal;
+ font-weight: 700;
+ src: local('Roboto Bold'), local('Roboto-Bold'),
+ url("chrome://resources/roboto/roboto-bold.woff2") format('woff2');
+}
+</if>
+
+</style>
+<style is="custom-style">
+
+ :root {
+
+ /* Shared Styles */
+ --paper-font-common-base: {
+ font-family: 'Roboto', 'Noto', sans-serif;
+ -webkit-font-smoothing: antialiased;
+ };
+
+ --paper-font-common-code: {
+ font-family: 'Roboto Mono', 'Consolas', 'Menlo', monospace;
+ -webkit-font-smoothing: antialiased;
+ };
+
+ --paper-font-common-expensive-kerning: {
+ text-rendering: optimizeLegibility;
+ };
+
+ --paper-font-common-nowrap: {
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ };
+
+ /* Material Font Styles */
+
+ --paper-font-display4: {
+ @apply(--paper-font-common-base);
+ @apply(--paper-font-common-nowrap);
+
+ font-size: 112px;
+ font-weight: 300;
+ letter-spacing: -.044em;
+ line-height: 120px;
+ };
+
+ --paper-font-display3: {
+ @apply(--paper-font-common-base);
+ @apply(--paper-font-common-nowrap);
+
+ font-size: 56px;
+ font-weight: 400;
+ letter-spacing: -.026em;
+ line-height: 60px;
+ };
+
+ --paper-font-display2: {
+ @apply(--paper-font-common-base);
+
+ font-size: 45px;
+ font-weight: 400;
+ letter-spacing: -.018em;
+ line-height: 48px;
+ };
+
+ --paper-font-display1: {
+ @apply(--paper-font-common-base);
+
+ font-size: 34px;
+ font-weight: 400;
+ letter-spacing: -.01em;
+ line-height: 40px;
+ };
+
+ --paper-font-headline: {
+ @apply(--paper-font-common-base);
+
+ font-size: 24px;
+ font-weight: 400;
+ letter-spacing: -.012em;
+ line-height: 32px;
+ };
+
+ --paper-font-title: {
+ @apply(--paper-font-common-base);
+ @apply(--paper-font-common-nowrap);
+
+ font-size: 20px;
+ font-weight: 500;
+ line-height: 28px;
+ };
+
+ --paper-font-subhead: {
+ @apply(--paper-font-common-base);
+
+ font-size: 16px;
+ font-weight: 400;
+ line-height: 24px;
+ };
+
+ --paper-font-body2: {
+ @apply(--paper-font-common-base);
+
+ font-size: 14px;
+ font-weight: 500;
+ line-height: 24px;
+ };
+
+ --paper-font-body1: {
+ @apply(--paper-font-common-base);
+
+ font-size: 14px;
+ font-weight: 400;
+ line-height: 20px;
+ };
+
+ --paper-font-caption: {
+ @apply(--paper-font-common-base);
+ @apply(--paper-font-common-nowrap);
+
+ font-size: 12px;
+ font-weight: 400;
+ letter-spacing: 0.011em;
+ line-height: 20px;
+ };
+
+ --paper-font-menu: {
+ @apply(--paper-font-common-base);
+ @apply(--paper-font-common-nowrap);
+
+ font-size: 13px;
+ font-weight: 500;
+ line-height: 24px;
+ };
+
+ --paper-font-button: {
+ @apply(--paper-font-common-base);
+ @apply(--paper-font-common-nowrap);
+
+ font-size: 14px;
+ font-weight: 500;
+ letter-spacing: 0.018em;
+ line-height: 24px;
+ text-transform: uppercase;
+ };
+
+ --paper-font-code2: {
+ @apply(--paper-font-common-code);
+
+ font-size: 14px;
+ font-weight: 700;
+ line-height: 20px;
+ };
+
+ --paper-font-code1: {
+ @apply(--paper-font-common-code);
+
+ font-size: 14px;
+ font-weight: 500;
+ line-height: 20px;
+ };
+
+ }
+
+</style>
+
+
+<dom-module id="paper-input-container" assetpath="chrome://resources/polymer/v1_0/paper-input/">
+ <template>
+ <style>
+ :host {
+ display: block;
+ padding: 8px 0;
+
+ @apply(--paper-input-container);
+ }
+
+ :host([inline]) {
+ display: inline-block;
+ }
+
+ :host([disabled]) {
+ pointer-events: none;
+ opacity: 0.33;
+
+ @apply(--paper-input-container-disabled);
+ }
+
+ :host([hidden]) {
+ display: none !important;
+ }
+
+ .floated-label-placeholder {
+ @apply(--paper-font-caption);
+ }
+
+ .underline {
+ position: relative;
+ }
+
+ .focused-line {
+ @apply(--layout-fit);
+
+ background: var(--paper-input-container-focus-color, --primary-color);
+ height: 2px;
+
+ -webkit-transform-origin: center center;
+ transform-origin: center center;
+ -webkit-transform: scale3d(0,1,1);
+ transform: scale3d(0,1,1);
+
+ @apply(--paper-input-container-underline-focus);
+ }
+
+ .underline.is-highlighted .focused-line {
+ -webkit-transform: none;
+ transform: none;
+ -webkit-transition: -webkit-transform 0.25s;
+ transition: transform 0.25s;
+
+ @apply(--paper-transition-easing);
+ }
+
+ .underline.is-invalid .focused-line {
+ background: var(--paper-input-container-invalid-color, --error-color);
+ -webkit-transform: none;
+ transform: none;
+ -webkit-transition: -webkit-transform 0.25s;
+ transition: transform 0.25s;
+
+ @apply(--paper-transition-easing);
+ }
+
+ .unfocused-line {
+ @apply(--layout-fit);
+
+ background: var(--paper-input-container-color, --secondary-text-color);
+ height: 1px;
+
+ @apply(--paper-input-container-underline);
+ }
+
+ :host([disabled]) .unfocused-line {
+ border-bottom: 1px dashed;
+ border-color: var(--paper-input-container-color, --secondary-text-color);
+ background: transparent;
+
+ @apply(--paper-input-container-underline-disabled);
+ }
+
+ .label-and-input-container {
+ @apply(--layout-flex-auto);
+ @apply(--layout-relative);
+
+ width: 100%;
+ max-width: 100%;
+ }
+
+ .input-content {
+ @apply(--layout-horizontal);
+ @apply(--layout-center);
+
+ position: relative;
+ }
+
+ .input-content ::content label,
+ .input-content ::content .paper-input-label {
+ position: absolute;
+ top: 0;
+ right: 0;
+ left: 0;
+ width: 100%;
+ font: inherit;
+ color: var(--paper-input-container-color, --secondary-text-color);
+ -webkit-transition: -webkit-transform 0.25s, width 0.25s;
+ transition: transform 0.25s, width 0.25s;
+ -webkit-transform-origin: left top;
+ transform-origin: left top;
+
+ @apply(--paper-font-common-nowrap);
+ @apply(--paper-font-subhead);
+ @apply(--paper-input-container-label);
+ @apply(--paper-transition-easing);
+ }
+
+ .input-content.label-is-floating ::content label,
+ .input-content.label-is-floating ::content .paper-input-label {
+ -webkit-transform: translateY(-75%) scale(0.75);
+ transform: translateY(-75%) scale(0.75);
+
+ /* Since we scale to 75/100 of the size, we actually have 100/75 of the
+ original space now available */
+ width: 133%;
+
+ @apply(--paper-input-container-label-floating);
+ }
+
+ :host-context([dir="rtl"]) .input-content.label-is-floating ::content label,
+ :host-context([dir="rtl"]) .input-content.label-is-floating ::content .paper-input-label {
+ /* TODO(noms): Figure out why leaving the width at 133% before the animation
+ * actually makes
+ * it wider on the right side, not left side, as you would expect in RTL */
+ width: 100%;
+ -webkit-transform-origin: right top;
+ transform-origin: right top;
+ }
+
+ .input-content.label-is-highlighted ::content label,
+ .input-content.label-is-highlighted ::content .paper-input-label {
+ color: var(--paper-input-container-focus-color, --primary-color);
+
+ @apply(--paper-input-container-label-focus);
+ }
+
+ .input-content.is-invalid ::content label,
+ .input-content.is-invalid ::content .paper-input-label {
+ color: var(--paper-input-container-invalid-color, --error-color);
+ }
+
+ .input-content.label-is-hidden ::content label,
+ .input-content.label-is-hidden ::content .paper-input-label {
+ visibility: hidden;
+ }
+
+ .input-content ::content input,
+ .input-content ::content textarea,
+ .input-content ::content iron-autogrow-textarea,
+ .input-content ::content .paper-input-input {
+ position: relative; /* to make a stacking context */
+ outline: none;
+ box-shadow: none;
+ padding: 0;
+ width: 100%;
+ max-width: 100%;
+ background: transparent;
+ border: none;
+ color: var(--paper-input-container-input-color, --primary-text-color);
+ -webkit-appearance: none;
+ text-align: inherit;
+
+ @apply(--paper-font-subhead);
+ @apply(--paper-input-container-input);
+ }
+
+ ::content [prefix] {
+ @apply(--paper-font-subhead);
+
+ @apply(--paper-input-prefix);
+ @apply(--layout-flex-none);
+ }
+
+ ::content [suffix] {
+ @apply(--paper-font-subhead);
+
+ @apply(--paper-input-suffix);
+ @apply(--layout-flex-none);
+ }
+
+ /* Firefox sets a min-width on the input, which can cause layout issues */
+ .input-content ::content input {
+ min-width: 0;
+ }
+
+ .input-content ::content textarea {
+ resize: none;
+ }
+
+ .add-on-content {
+ position: relative;
+ }
+
+ .add-on-content.is-invalid ::content * {
+ color: var(--paper-input-container-invalid-color, --error-color);
+ }
+
+ .add-on-content.is-highlighted ::content * {
+ color: var(--paper-input-container-focus-color, --primary-color);
+ }
+ </style>
+
+ <template is="dom-if" if="[[!noLabelFloat]]">
+ <div class="floated-label-placeholder" aria-hidden="true">&nbsp;</div>
+ </template>
+
+ <div class$="[[_computeInputContentClass(noLabelFloat,alwaysFloatLabel,focused,invalid,_inputHasContent)]]">
+ <content select="[prefix]" id="prefix"></content>
+
+ <div class="label-and-input-container" id="labelAndInputContainer">
+ <content select=":not([add-on]):not([prefix]):not([suffix])"></content>
+ </div>
+
+ <content select="[suffix]"></content>
+ </div>
+
+ <div class$="[[_computeUnderlineClass(focused,invalid)]]">
+ <div class="unfocused-line"></div>
+ <div class="focused-line"></div>
+ </div>
+
+ <div class$="[[_computeAddOnContentClass(focused,invalid)]]">
+ <content id="addOnContent" select="[add-on]"></content>
+ </div>
+ </template>
+</dom-module>
+
+<dom-module id="paper-spinner-styles" assetpath="chrome://resources/polymer/v1_0/paper-spinner/">
+ <template>
+ <style>
+ /*
+ /**************************/
+ /* STYLES FOR THE SPINNER */
+ /**************************/
+
+ /*
+ * Constants:
+ * ARCSIZE = 270 degrees (amount of circle the arc takes up)
+ * ARCTIME = 1333ms (time it takes to expand and contract arc)
+ * ARCSTARTROT = 216 degrees (how much the start location of the arc
+ * should rotate each time, 216 gives us a
+ * 5 pointed star shape (it's 360/5 * 3).
+ * For a 7 pointed star, we might do
+ * 360/7 * 3 = 154.286)
+ * SHRINK_TIME = 400ms
+ */
+
+ :host {
+ display: inline-block;
+ position: relative;
+ width: 28px;
+ height: 28px;
+
+ /* 360 * ARCTIME / (ARCSTARTROT + (360-ARCSIZE)) */
+ --paper-spinner-container-rotation-duration: 1568ms;
+
+ /* ARCTIME */
+ --paper-spinner-expand-contract-duration: 1333ms;
+
+ /* 4 * ARCTIME */
+ --paper-spinner-full-cycle-duration: 5332ms;
+
+ /* SHRINK_TIME */
+ --paper-spinner-cooldown-duration: 400ms;
+ }
+
+ #spinnerContainer {
+ width: 100%;
+ height: 100%;
+
+ /* The spinner does not have any contents that would have to be
+ * flipped if the direction changes. Always use ltr so that the
+ * style works out correctly in both cases. */
+ direction: ltr;
+ }
+
+ #spinnerContainer.active {
+ -webkit-animation: container-rotate var(--paper-spinner-container-rotation-duration) linear infinite;
+ animation: container-rotate var(--paper-spinner-container-rotation-duration) linear infinite;
+ }
+
+ @-webkit-keyframes container-rotate {
+ to { -webkit-transform: rotate(360deg) }
+ }
+
+ @keyframes container-rotate {
+ to { transform: rotate(360deg) }
+ }
+
+ .spinner-layer {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ opacity: 0;
+ white-space: nowrap;
+ border-color: var(--paper-spinner-color, --google-blue-500);
+ }
+
+ .layer-1 {
+ border-color: var(--paper-spinner-layer-1-color, --google-blue-500);
+ }
+
+ .layer-2 {
+ border-color: var(--paper-spinner-layer-2-color, --google-red-500);
+ }
+
+ .layer-3 {
+ border-color: var(--paper-spinner-layer-3-color, --google-yellow-500);
+ }
+
+ .layer-4 {
+ border-color: var(--paper-spinner-layer-4-color, --google-green-500);
+ }
+
+ /**
+ * IMPORTANT NOTE ABOUT CSS ANIMATION PROPERTIES (keanulee):
+ *
+ * iOS Safari (tested on iOS 8.1) does not handle animation-delay very well - it doesn't
+ * guarantee that the animation will start _exactly_ after that value. So we avoid using
+ * animation-delay and instead set custom keyframes for each color (as layer-2undant as it
+ * seems).
+ */
+ .active .spinner-layer {
+ -webkit-animation-name: fill-unfill-rotate;
+ -webkit-animation-duration: var(--paper-spinner-full-cycle-duration);
+ -webkit-animation-timing-function: cubic-bezier(0.4, 0.0, 0.2, 1);
+ -webkit-animation-iteration-count: infinite;
+ animation-name: fill-unfill-rotate;
+ animation-duration: var(--paper-spinner-full-cycle-duration);
+ animation-timing-function: cubic-bezier(0.4, 0.0, 0.2, 1);
+ animation-iteration-count: infinite;
+ opacity: 1;
+ }
+
+ .active .spinner-layer.layer-1 {
+ -webkit-animation-name: fill-unfill-rotate, layer-1-fade-in-out;
+ animation-name: fill-unfill-rotate, layer-1-fade-in-out;
+ }
+
+ .active .spinner-layer.layer-2 {
+ -webkit-animation-name: fill-unfill-rotate, layer-2-fade-in-out;
+ animation-name: fill-unfill-rotate, layer-2-fade-in-out;
+ }
+
+ .active .spinner-layer.layer-3 {
+ -webkit-animation-name: fill-unfill-rotate, layer-3-fade-in-out;
+ animation-name: fill-unfill-rotate, layer-3-fade-in-out;
+ }
+
+ .active .spinner-layer.layer-4 {
+ -webkit-animation-name: fill-unfill-rotate, layer-4-fade-in-out;
+ animation-name: fill-unfill-rotate, layer-4-fade-in-out;
+ }
+
+ @-webkit-keyframes fill-unfill-rotate {
+ 12.5% { -webkit-transform: rotate(135deg) } /* 0.5 * ARCSIZE */
+ 25% { -webkit-transform: rotate(270deg) } /* 1 * ARCSIZE */
+ 37.5% { -webkit-transform: rotate(405deg) } /* 1.5 * ARCSIZE */
+ 50% { -webkit-transform: rotate(540deg) } /* 2 * ARCSIZE */
+ 62.5% { -webkit-transform: rotate(675deg) } /* 2.5 * ARCSIZE */
+ 75% { -webkit-transform: rotate(810deg) } /* 3 * ARCSIZE */
+ 87.5% { -webkit-transform: rotate(945deg) } /* 3.5 * ARCSIZE */
+ to { -webkit-transform: rotate(1080deg) } /* 4 * ARCSIZE */
+ }
+
+ @keyframes fill-unfill-rotate {
+ 12.5% { transform: rotate(135deg) } /* 0.5 * ARCSIZE */
+ 25% { transform: rotate(270deg) } /* 1 * ARCSIZE */
+ 37.5% { transform: rotate(405deg) } /* 1.5 * ARCSIZE */
+ 50% { transform: rotate(540deg) } /* 2 * ARCSIZE */
+ 62.5% { transform: rotate(675deg) } /* 2.5 * ARCSIZE */
+ 75% { transform: rotate(810deg) } /* 3 * ARCSIZE */
+ 87.5% { transform: rotate(945deg) } /* 3.5 * ARCSIZE */
+ to { transform: rotate(1080deg) } /* 4 * ARCSIZE */
+ }
+
+ @-webkit-keyframes layer-1-fade-in-out {
+ 0% { opacity: 1 }
+ 25% { opacity: 1 }
+ 26% { opacity: 0 }
+ 89% { opacity: 0 }
+ 90% { opacity: 1 }
+ to { opacity: 1 }
+ }
+
+ @keyframes layer-1-fade-in-out {
+ 0% { opacity: 1 }
+ 25% { opacity: 1 }
+ 26% { opacity: 0 }
+ 89% { opacity: 0 }
+ 90% { opacity: 1 }
+ to { opacity: 1 }
+ }
+
+ @-webkit-keyframes layer-2-fade-in-out {
+ 0% { opacity: 0 }
+ 15% { opacity: 0 }
+ 25% { opacity: 1 }
+ 50% { opacity: 1 }
+ 51% { opacity: 0 }
+ to { opacity: 0 }
+ }
+
+ @keyframes layer-2-fade-in-out {
+ 0% { opacity: 0 }
+ 15% { opacity: 0 }
+ 25% { opacity: 1 }
+ 50% { opacity: 1 }
+ 51% { opacity: 0 }
+ to { opacity: 0 }
+ }
+
+ @-webkit-keyframes layer-3-fade-in-out {
+ 0% { opacity: 0 }
+ 40% { opacity: 0 }
+ 50% { opacity: 1 }
+ 75% { opacity: 1 }
+ 76% { opacity: 0 }
+ to { opacity: 0 }
+ }
+
+ @keyframes layer-3-fade-in-out {
+ 0% { opacity: 0 }
+ 40% { opacity: 0 }
+ 50% { opacity: 1 }
+ 75% { opacity: 1 }
+ 76% { opacity: 0 }
+ to { opacity: 0 }
+ }
+
+ @-webkit-keyframes layer-4-fade-in-out {
+ 0% { opacity: 0 }
+ 65% { opacity: 0 }
+ 75% { opacity: 1 }
+ 90% { opacity: 1 }
+ to { opacity: 0 }
+ }
+
+ @keyframes layer-4-fade-in-out {
+ 0% { opacity: 0 }
+ 65% { opacity: 0 }
+ 75% { opacity: 1 }
+ 90% { opacity: 1 }
+ to { opacity: 0 }
+ }
+
+ .circle-clipper {
+ display: inline-block;
+ position: relative;
+ width: 50%;
+ height: 100%;
+ overflow: hidden;
+ border-color: inherit;
+ }
+
+ /**
+ * Patch the gap that appear between the two adjacent div.circle-clipper while the
+ * spinner is rotating (appears on Chrome 50, Safari 9.1.1, and Edge).
+ */
+ .spinner-layer::after {
+ left: 45%;
+ width: 10%;
+ border-top-style: solid;
+ }
+
+ .spinner-layer::after,
+ .circle-clipper::after {
+ content: '';
+ box-sizing: border-box;
+ position: absolute;
+ top: 0;
+ border-width: var(--paper-spinner-stroke-width, 3px);
+ border-color: inherit;
+ border-radius: 50%;
+ }
+
+ .circle-clipper::after {
+ bottom: 0;
+ width: 200%;
+ border-style: solid;
+ border-bottom-color: transparent !important;
+ }
+
+ .circle-clipper.left::after {
+ left: 0;
+ border-right-color: transparent !important;
+ -webkit-transform: rotate(129deg);
+ transform: rotate(129deg);
+ }
+
+ .circle-clipper.right::after {
+ left: -100%;
+ border-left-color: transparent !important;
+ -webkit-transform: rotate(-129deg);
+ transform: rotate(-129deg);
+ }
+
+ .active .gap-patch::after,
+ .active .circle-clipper::after {
+ -webkit-animation-duration: var(--paper-spinner-expand-contract-duration);
+ -webkit-animation-timing-function: cubic-bezier(0.4, 0.0, 0.2, 1);
+ -webkit-animation-iteration-count: infinite;
+ animation-duration: var(--paper-spinner-expand-contract-duration);
+ animation-timing-function: cubic-bezier(0.4, 0.0, 0.2, 1);
+ animation-iteration-count: infinite;
+ }
+
+ .active .circle-clipper.left::after {
+ -webkit-animation-name: left-spin;
+ animation-name: left-spin;
+ }
+
+ .active .circle-clipper.right::after {
+ -webkit-animation-name: right-spin;
+ animation-name: right-spin;
+ }
+
+ @-webkit-keyframes left-spin {
+ 0% { -webkit-transform: rotate(130deg) }
+ 50% { -webkit-transform: rotate(-5deg) }
+ to { -webkit-transform: rotate(130deg) }
+ }
+
+ @keyframes left-spin {
+ 0% { transform: rotate(130deg) }
+ 50% { transform: rotate(-5deg) }
+ to { transform: rotate(130deg) }
+ }
+
+ @-webkit-keyframes right-spin {
+ 0% { -webkit-transform: rotate(-130deg) }
+ 50% { -webkit-transform: rotate(5deg) }
+ to { -webkit-transform: rotate(-130deg) }
+ }
+
+ @keyframes right-spin {
+ 0% { transform: rotate(-130deg) }
+ 50% { transform: rotate(5deg) }
+ to { transform: rotate(-130deg) }
+ }
+
+ #spinnerContainer.cooldown {
+ -webkit-animation: container-rotate var(--paper-spinner-container-rotation-duration) linear infinite, fade-out var(--paper-spinner-cooldown-duration) cubic-bezier(0.4, 0.0, 0.2, 1);
+ animation: container-rotate var(--paper-spinner-container-rotation-duration) linear infinite, fade-out var(--paper-spinner-cooldown-duration) cubic-bezier(0.4, 0.0, 0.2, 1);
+ }
+
+ @-webkit-keyframes fade-out {
+ 0% { opacity: 1 }
+ to { opacity: 0 }
+ }
+
+ @keyframes fade-out {
+ 0% { opacity: 1 }
+ to { opacity: 0 }
+ }
+ </style>
+ </template>
+</dom-module>
+
+
+<dom-module id="paper-spinner-lite" assetpath="chrome://resources/polymer/v1_0/paper-spinner/">
+ <template strip-whitespace="">
+ <style include="paper-spinner-styles"></style>
+
+ <div id="spinnerContainer" class-name="[[__computeContainerClasses(active, __coolingDown)]]">
+ <div class="spinner-layer">
+ <div class="circle-clipper left"></div>
+ <div class="circle-clipper right"></div>
+ </div>
+ </div>
+ </template>
+
+ </dom-module>
+<dom-module id="cr-toolbar-search-field" assetpath="chrome://resources/cr_elements/cr_toolbar/">
+ <template>
+ <style>
+ :host {
+ align-items: center;
+ display: flex;
+ height: 40px;
+ transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1),
+ width 150ms cubic-bezier(0.4, 0, 0.2, 1);
+ width: 44px;
+ }
+
+ [hidden] {
+ display: none !important;
+ }
+
+ paper-icon-button {
+ height: 32px;
+ margin: 6px;
+ min-width: 32px;
+ padding: 6px;
+ width: 32px;
+ }
+
+ #icon {
+ --paper-icon-button-ink-color: white;
+ transition: margin 150ms, opacity 200ms;
+ }
+
+ #prompt {
+ opacity: 0;
+ }
+
+ paper-spinner-lite {
+ --paper-spinner-color: white;
+ height: 20px;
+ margin: 0 6px;
+ opacity: 0;
+ padding: 6px;
+ position: absolute;
+ width: 20px;
+ }
+
+ paper-spinner-lite[active] {
+ opacity: 1;
+ }
+
+ #prompt,
+ paper-spinner-lite {
+ transition: opacity 200ms;
+ }
+
+ paper-input-container {
+ --paper-input-container-input-color: white;
+ --paper-input-container-underline: {
+ display: none;
+ };
+ --paper-input-container-underline-focus: {
+ display: none;
+ };
+ --paper-input-container-label: {
+ color: inherit;
+ font-size: inherit;
+ };
+ -webkit-padding-start: 2px;
+ flex: 1;
+ }
+
+ input[type='search']::-webkit-search-decoration,
+ input[type='search']::-webkit-search-cancel-button,
+ input[type='search']::-webkit-search-results-button {
+ -webkit-appearance: none;
+ }
+
+ /** Wide layout. */
+ :host(:not([narrow])) {
+ -webkit-padding-end: 0;
+ background: rgba(0, 0, 0, 0.22);
+ border-radius: 2px;
+ cursor: text;
+ width: var(--cr-toolbar-field-width);
+ }
+
+ :host(:not([narrow]):not([showing-search])) #icon,
+ :host(:not([narrow]):not([showing-search])) #prompt {
+ opacity: 0.6;
+ }
+
+ :host([narrow]:not([showing-search])) paper-input-container {
+ display: none;
+ }
+
+ /* Search open. */
+ :host([showing-search][spinner-active]) #icon {
+ opacity: 0;
+ }
+
+ :host([narrow][showing-search]) {
+ width: 100%;
+ }
+
+ /*
+ * Margin needs to be animated to prevent jumping around during
+ * opening/closing. -webkit-margin-start is not animatable, so we have to
+ * use regular margin-left/right instead.
+ */
+ :host-context([dir=ltr]):host([narrow][showing-search]) #icon {
+ margin-left: 18px;
+ }
+
+ :host-context([dir=rtl]):host([narrow][showing-search]) #icon {
+ margin-right: 18px;
+ }
+ </style>
+ <paper-spinner-lite active="[[isSpinnerShown_(spinnerActive, showingSearch)]]">
+ </paper-spinner-lite>
+ <paper-icon-button id="icon" icon="cr:search" title="[[label]]" tabindex$="[[computeIconTabIndex_(narrow)]]">
+ </paper-icon-button>
+ <paper-input-container id="searchTerm" on-search="onSearchTermSearch" on-keydown="onSearchTermKeydown" no-label-float="">
+ <label id="prompt" for="searchInput">[[label]]</label>
+ <input is="iron-input" id="searchInput" type="search" on-blur="onInputBlur_" incremental="">
+ </paper-input-container>
+ <paper-icon-button icon="cr:cancel" id="clearSearch" title="[[clearLabel]]" hidden$="[[!hasSearchText_]]" on-tap="hideSearch_">
+ </paper-icon-button>
+ </template>
+ </dom-module>
+<dom-module id="cr-toolbar" assetpath="chrome://resources/cr_elements/cr_toolbar/">
+ <template>
+ <style>
+ :host {
+ --cr-toolbar-field-width: 580px;
+ color: #fff;
+ display: flex;
+ height: 56px;
+ }
+
+ h1 {
+ @apply(--layout-flex);
+ -webkit-margin-start: 6px;
+ font-size: 123%;
+ font-weight: 400;
+ text-overflow: ellipsis;
+ overflow: hidden;
+ white-space: nowrap;
+ }
+
+ #leftContent {
+ -webkit-margin-start: 18px;
+ align-items: center;
+ display: flex;
+ position: absolute;
+ transition: opacity 100ms;
+ }
+
+ #menuButton {
+ height: 32px;
+ margin-bottom: 6px;
+ margin-top: 6px;
+ min-width: 32px;
+ padding: 6px;
+ width: 32px;
+ }
+
+ :host(:not([show-menu])) #menuButton {
+ display: none;
+ }
+
+ #centeredContent {
+ -webkit-margin-start: var(--cr-toolbar-field-margin, 0);
+ -webkit-padding-end: 12px;
+ display: flex;
+ flex: 1 1 0;
+ justify-content: center;
+ }
+
+ :host(:not([narrow_])) #leftContent {
+ max-width: calc((100% - var(--cr-toolbar-field-width) - 18px) / 2);
+ }
+
+ :host([narrow_]) #centeredContent {
+ justify-content: flex-end;
+ }
+
+ :host([narrow_][showing-search_]) #leftContent {
+ opacity: 0;
+ }
+ </style>
+ <div id="leftContent">
+ <paper-icon-button id="menuButton" icon="cr:menu" on-tap="onMenuTap_">
+ </paper-icon-button>
+ <h1>[[pageName]]</h1>
+ </div>
+
+ <div id="centeredContent">
+ <cr-toolbar-search-field id="search" narrow="[[narrow_]]" label="[[searchPrompt]]" clear-label="[[clearLabel]]" spinner-active="[[spinnerActive]]" showing-search="{{showingSearch_}}">
+ </cr-toolbar-search-field>
+ <iron-media-query query="(max-width: 900px)" query-matches="{{narrow_}}">
+ </iron-media-query>
+ </div>
+ </template>
+ </dom-module>
+<iron-iconset-svg size="24" name="history">
+ <svg>
+ <defs>
+
+ <g id="chevron-left"><path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z"></path></g>
+ <g id="today"><path d="M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zM7 10h5v5H7z"></path></g>
+ </defs>
+ </svg>
+</iron-iconset-svg>
+<dom-module id="shared-style" assetpath="chrome://history/">
+ <template>
+ <style>
+ :root {
+ --card-border-color: rgba(0, 0, 0, 0.14);
+ --card-first-last-item-padding: 8px;
+ --card-max-width: 960px;
+ --card-min-width: 550px;
+ --card-padding-between: 20px;
+ --card-padding-side: 24px;
+ --card-sizing: {
+ margin: 0 auto;
+ max-width: var(--card-max-width);
+ min-width: var(--card-min-width);
+ padding: 0 var(--card-padding-side);
+ width: calc(100% - 2 * var(--card-padding-side));
+ };
+ --first-card-padding-top: 24px;
+ --item-height: 44px;
+ --primary-text-color: #333;
+ --secondary-text-color: #757575;
+ --side-bar-width: 256px;
+ --toolbar-grouped-height: 101px;
+ --toolbar-height: 56px;
+ }
+
+ [hidden] {
+ display: none !important;
+ }
+
+ .card-title {
+ @apply(--layout-center);
+ @apply(--layout-horizontal);
+ -webkit-padding-start: 20px;
+ border-bottom: 1px solid var(--card-border-color);
+ border-radius: 2px 2px 0 0;
+ color: var(--primary-text-color);
+ font-size: 14px;
+ font-weight: 500;
+ height: 48px;
+ }
+
+ .centered-message {
+ align-items: center;
+ color: #b4b4b4;
+ display: flex;
+ flex: 1;
+ font-size: 14px;
+ font-weight: 500;
+ height: 100%;
+ justify-content: center;
+ }
+
+ .menu-item {
+ -webkit-user-select: none;
+ cursor: pointer;
+ font: inherit;
+ white-space: nowrap;
+ }
+
+ .website-icon {
+ -webkit-margin-end: 16px;
+ background-repeat: no-repeat;
+ background-size: 16px;
+ height: 16px;
+ width: 16px;
+ }
+
+ .website-title {
+ color: var(--primary-text-color);
+ overflow: hidden;
+ text-decoration: none;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ }
+
+ button.icon-button {
+ height: 36px;
+ width: 36px;
+ }
+
+ button.icon-button iron-icon {
+ color: var(--secondary-text-color);
+ height: 20px;
+ width: 20px;
+ }
+ </style>
+ </template>
+</dom-module>
+<dom-module id="history-toolbar" assetpath="chrome://history/">
+ <template>
+ <style include="shared-style">
+ :host {
+ color: #fff;
+ display: block;
+ transition: background-color 150ms;
+ width: 100%;
+ }
+
+ cr-toolbar,
+ #overlay-buttons,
+ #overlay-wrapper,
+ #toolbar-container {
+ @apply(--layout-center);
+ @apply(--layout-horizontal);
+ width: 100%;
+ }
+
+ :host([items-selected_]) {
+ background: rgb(68, 136, 255);
+ }
+
+ #toolbar-container {
+ height: var(--toolbar-height);
+ }
+
+ cr-toolbar {
+ --cr-toolbar-field-margin: var(--side-bar-width);
+ }
+
+ cr-toolbar[show-menu] {
+ --cr-toolbar-field-margin: 0;
+ }
+
+ :host(:not([has-drawer])) #overlay-wrapper {
+ -webkit-margin-start: var(--side-bar-width);
+ }
+
+ #overlay-buttons {
+ margin: 0 auto;
+ max-width: var(--card-max-width);
+ padding: 0 var(--card-padding-side);
+ }
+
+ paper-button {
+ font-weight: 500;
+ }
+
+ #number-selected {
+ @apply(--layout-flex);
+ }
+
+ #cancel-icon-button {
+ -webkit-margin-end: 24px;
+ -webkit-margin-start: 2px;
+ height: 36px;
+ min-width: 36px;
+ width: 36px;
+ }
+
+ #grouped-nav-container paper-icon-button {
+ --paper-icon-button-ink-color: rgba(255, 255, 255, 0.4);
+ -webkit-margin-start: 24px;
+ flex: 0 0 auto;
+ }
+
+ paper-tab {
+ --paper-tab-ink: rgba(255, 255, 255, 0.4);
+ font-size: 13px;
+ text-transform: uppercase;
+ }
+
+ paper-tabs {
+ --paper-tabs-selection-bar-color: var(--google-blue-500);
+ height: calc(var(--toolbar-grouped-height) - var(--toolbar-height));
+ min-width: 300px;
+ }
+
+ #grouped-buttons-container {
+ @apply(--layout-center);
+ @apply(--layout-horizontal);
+ }
+
+ #grouped-range-buttons {
+ -webkit-margin-start: 32px;
+ }
+
+ #grouped-nav-container {
+ @apply(--layout-center);
+ @apply(--layout-end-justified);
+ @apply(--layout-flex);
+ @apply(--layout-horizontal);
+ -webkit-margin-end: 24px;
+ overflow: hidden;
+ transition: opacity 150ms;
+ }
+
+ :host([grouped-range='0']) #grouped-nav-container {
+ opacity: 0;
+ pointer-events: none;
+ }
+
+ #grouped-date {
+ flex: 0 1 auto;
+ opacity: 0.7;
+ overflow: hidden;
+ text-align: right;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ }
+
+ :host-context([dir=rtl]) .rtl-reversible {
+ transform: rotate(180deg);
+ }
+ </style>
+ <div id="toolbar-container">
+ <cr-toolbar id="main-toolbar" page-name="$i18n{title}" clear-label="$i18n{clearSearch}" search-prompt="$i18n{searchPrompt}" hidden$="[[itemsSelected_]]" spinner-active="[[spinnerActive]]" show-menu="[[hasDrawer]]" on-search-changed="onSearchChanged_">
+ </cr-toolbar>
+ <div id="overlay-wrapper" hidden$="[[!itemsSelected_]]">
+ <div id="overlay-buttons">
+ <paper-icon-button icon="cr:clear" id="cancel-icon-button" on-tap="onClearSelectionTap_"></paper-icon-button>
+ <div id="number-selected">[[numberOfItemsSelected_(count)]]</div>
+ <paper-button id="cancel-button" on-tap="onClearSelectionTap_">
+ $i18n{cancel}
+ </paper-button>
+ <paper-button id="delete-button" on-tap="onDeleteTap_">
+ $i18n{delete}
+ </paper-button>
+ </div>
+ </div>
+ </div>
+ <template is="dom-if" if="[[isGroupedMode]]">
+ <div id="grouped-buttons-container">
+ <paper-tabs attr-for-selected="value" selected="{{groupedRange}}" id="grouped-range-buttons">
+ <paper-tab value="0">$i18n{rangeAllTime}</paper-tab>
+ <paper-tab value="1">$i18n{rangeWeek}</paper-tab>
+ <paper-tab value="2">$i18n{rangeMonth}</paper-tab>
+ </paper-tabs>
+ <div id="grouped-nav-container">
+ <span id="grouped-date">
+ {{getHistoryInterval_(queryStartTime, queryEndTime)}}
+ </span>
+ <paper-icon-button icon="history:today" alt="$i18n{rangeToday}" title="$i18n{rangeToday}"></paper-icon-button>
+ <paper-icon-button icon="history:chevron-left" alt="$i18n{rangePrevious}" title="$i18n{rangePrevious}" class="rtl-reversible"></paper-icon-button>
+ <paper-icon-button icon="cr:chevron-right" alt="$i18n{rangeNext}" title="$i18n{rangeNext}" class="rtl-reversible"></paper-icon-button>
+ </div>
+ </div>
+ </template>
+ </template>
+ </dom-module>
+<dom-module id="cr-dialog" assetpath="chrome://resources/cr_elements/cr_dialog/">
+ <template>
+ <style>
+ :host {
+ border: 0;
+ border-radius: 2px;
+ bottom: 0;
+ color: inherit;
+ padding: 0;
+ top: 0;
+ }
+
+ :host::backdrop {
+ background-color: rgba(0, 0, 0, 0.6);
+ bottom: 0;
+ left: 0;
+ position: fixed;
+ right: 0;
+ top: 0;
+ }
+
+ .title-container {
+ align-items: center;
+ /* TODO(dbeam): should this be a --settings-separator-line? */
+ border-bottom: 1px solid rgba(0, 0, 0, 0.14);
+ display: flex;
+ min-height: 52px;
+ }
+
+ :host ::content .title {
+ font-size: 123.07%; /* (16px / 13px) * 100 */
+ }
+
+ #close {
+ --paper-icon-button: {
+ height: 40px;
+ width: 40px;
+ };
+ -webkit-margin-end: 6px;
+ /* <paper-icon-button> overrides --iron-icon-{height,width}, so this
+ * padding essentially reduces 40x40 to 20x20. */
+ padding: 10px;
+ }
+
+ .body-container {
+ display: flex;
+ flex-direction: column;
+ max-width: 800px;
+ min-width: 512px;
+ /* TODO(dbeam): use <paper-dialog-scrollable> to get dividers? */
+ overflow: auto;
+ }
+
+ :host ::content .body {
+ margin: 12px 0;
+ }
+
+ :host ::content .body,
+ :host ::content .title {
+ -webkit-padding-end: 24px;
+ -webkit-padding-start: 24px;
+ flex: 1;
+ }
+
+ :host ::content .button-container {
+ -webkit-padding-end: 16px;
+ -webkit-padding-start: 16px;
+ display: flex;
+ justify-content: flex-end;
+ margin-bottom: 12px;
+ margin-top: 12px;
+ }
+
+ :host ::content .button-container .cancel-button {
+ -webkit-margin-end: 8px;
+ color: var(--paper-grey-600);
+ }
+
+ :host ::content .footer {
+ background-color: var(--paper-grey-200);
+ border-bottom-left-radius: inherit;
+ border-bottom-right-radius: inherit;
+ margin: 0;
+ padding: 12px 20px;
+ }
+ </style>
+ <div class="title-container">
+ <content select=".title"></content>
+ <paper-icon-button icon="cr:clear" on-tap="cancel" id="close">
+ </paper-icon-button>
+ </div>
+ <div class="body-container">
+ <content select=".body"></content>
+ </div>
+ <content select=".button-container"></content>
+ <content select=".footer"></content>
+ </template>
+ </dom-module>
+<dom-module id="iron-overlay-backdrop" assetpath="chrome://resources/polymer/v1_0/iron-overlay-behavior/">
+
+ <template>
+ <style>
+ :host {
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ background-color: var(--iron-overlay-backdrop-background-color, #000);
+ opacity: 0;
+ transition: opacity 0.2s;
+ pointer-events: none;
+ @apply(--iron-overlay-backdrop);
+ }
+
+ :host(.opened) {
+ opacity: var(--iron-overlay-backdrop-opacity, 0.6);
+ pointer-events: auto;
+ @apply(--iron-overlay-backdrop-opened);
+ }
+ </style>
+
+ <content></content>
+ </template>
+
+</dom-module>
+
+<script src="chrome://resources/polymer/v1_0/web-animations-js/web-animations-next-lite.min.js"></script>
+
+
+<dom-module id="iron-dropdown" assetpath="chrome://resources/polymer/v1_0/iron-dropdown/">
+ <template>
+ <style>
+ :host {
+ position: fixed;
+ }
+
+ #contentWrapper ::content > * {
+ overflow: auto;
+ }
+
+ #contentWrapper.animating ::content > * {
+ overflow: hidden;
+ }
+ </style>
+
+ <div id="contentWrapper">
+ <content id="content" select=".dropdown-content"></content>
+ </div>
+ </template>
+
+ </dom-module>
+<dom-module id="cr-shared-menu" assetpath="chrome://resources/cr_elements/cr_shared_menu/">
+ <template>
+ <style>
+ #menu {
+ @apply(--shadow-elevation-2dp);
+ background-color: white;
+ overflow: hidden;
+ padding: 8px 0;
+ position: relative;
+ }
+ </style>
+ <iron-dropdown id="dropdown" allow-outside-scroll="" restore-focus-on-close="" vertical-align="auto" horizontal-align="right" opened="{{menuOpen}}" open-animation-config="[[openAnimationConfig]]" close-animation-config="[[closeAnimationConfig]]">
+ <div id="menu" class="dropdown-content" role="menu">
+ <content></content>
+ </div>
+ </iron-dropdown>
+ </template>
+ </dom-module>
+
+<style is="custom-style">
+ :root {
+ --cr-actionable: {
+ cursor: pointer;
+ };
+ --cr-focused-item-color: var(--google-grey-300);
+ --cr-separator-line: 1px solid rgba(0, 0, 0, 0.06);
+ }
+</style>
+
+<dom-module id="cr-shared-style" assetpath="chrome://resources/cr_elements/">
+ <template>
+ <style>
+ .action-button {
+ background: var(--google-blue-500);
+ color: white;
+ --paper-button-flat-keyboard-focus: {
+ background: rgb(58, 117, 215); /* 88% of --google-blue-500 */
+ };
+ }
+
+ .action-button[disabled] {
+ opacity: .25; /* TODO(dbeam): check this value with bettes. */
+ }
+
+ .cancel-button {
+ --paper-button-flat-keyboard-focus: {
+ background: rgba(0, 0, 0, .12);
+ };
+ }
+
+ .action-button,
+ .cancel-button {
+ font-weight: 500;
+ }
+
+ [actionable] {
+ @apply(--cr-actionable);
+ }
+ </style>
+ </template>
+</dom-module>
+
+
+<dom-module id="paper-item-shared-styles" assetpath="chrome://resources/polymer/v1_0/paper-item/">
+ <template>
+ <style>
+ :host, .paper-item {
+ display: block;
+ position: relative;
+ min-height: var(--paper-item-min-height, 48px);
+ padding: 0px 16px;
+ }
+
+ .paper-item {
+ @apply(--paper-font-subhead);
+ border:none;
+ outline: none;
+ background: white;
+ width: 100%;
+ text-align: left;
+ }
+
+ :host([hidden]), .paper-item[hidden] {
+ display: none !important;
+ }
+
+ :host(.iron-selected), .paper-item.iron-selected {
+ font-weight: var(--paper-item-selected-weight, bold);
+
+ @apply(--paper-item-selected);
+ }
+
+ :host([disabled]), .paper-item[disabled] {
+ color: var(--paper-item-disabled-color, --disabled-text-color);
+
+ @apply(--paper-item-disabled);
+ }
+
+ :host(:focus), .paper-item:focus {
+ position: relative;
+ outline: 0;
+
+ @apply(--paper-item-focused);
+ }
+
+ :host(:focus):before, .paper-item:focus:before {
+ @apply(--layout-fit);
+
+ background: currentColor;
+ content: '';
+ opacity: var(--dark-divider-opacity);
+ pointer-events: none;
+
+ @apply(--paper-item-focused-before);
+ }
+ </style>
+ </template>
+</dom-module>
+
+
+<dom-module id="paper-item" assetpath="chrome://resources/polymer/v1_0/paper-item/">
+ <template>
+ <style include="paper-item-shared-styles"></style>
+ <style>
+ :host {
+ @apply(--layout-horizontal);
+ @apply(--layout-center);
+ @apply(--paper-font-subhead);
+
+ @apply(--paper-item);
+ }
+ </style>
+
+ <content></content>
+ </template>
+
+ </dom-module>
+<dom-module id="iron-collapse" assetpath="chrome://resources/polymer/v1_0/iron-collapse/">
+
+ <template>
+
+ <style>
+ :host {
+ display: block;
+ transition-duration: var(--iron-collapse-transition-duration, 300ms);
+ overflow: visible;
+ }
+
+ :host(.iron-collapse-closed) {
+ display: none;
+ }
+
+ :host(:not(.iron-collapse-opened)) {
+ overflow: hidden;
+ }
+ </style>
+
+ <content></content>
+
+ </template>
+
+</dom-module>
+
+<dom-module id="paper-checkbox" assetpath="chrome://resources/polymer/v1_0/paper-checkbox/">
+ <template strip-whitespace="">
+ <style>
+ :host {
+ display: inline-block;
+ white-space: nowrap;
+ cursor: pointer;
+ --calculated-paper-checkbox-size: var(--paper-checkbox-size, 18px);
+ @apply(--paper-font-common-base);
+ line-height: 0;
+ -webkit-tap-highlight-color: transparent;
+ }
+
+ :host([hidden]) {
+ display: none !important;
+ }
+
+ :host(:focus) {
+ outline: none;
+ }
+
+ .hidden {
+ display: none;
+ }
+
+ #checkboxContainer {
+ display: inline-block;
+ position: relative;
+ width: var(--calculated-paper-checkbox-size);
+ height: var(--calculated-paper-checkbox-size);
+ min-width: var(--calculated-paper-checkbox-size);
+ margin: var(--paper-checkbox-margin, initial);
+ vertical-align: var(--paper-checkbox-vertical-align, middle);
+ background-color: var(--paper-checkbox-unchecked-background-color, transparent);
+ }
+
+ #ink {
+ position: absolute;
+
+ /* Center the ripple in the checkbox by negative offsetting it by
+ * (inkWidth - rippleWidth) / 2 */
+ top: calc(0px - (2.66 * var(--calculated-paper-checkbox-size) - var(--calculated-paper-checkbox-size)) / 2);
+ left: calc(0px - (2.66 * var(--calculated-paper-checkbox-size) - var(--calculated-paper-checkbox-size)) / 2);
+ width: calc(2.66 * var(--calculated-paper-checkbox-size));
+ height: calc(2.66 * var(--calculated-paper-checkbox-size));
+ color: var(--paper-checkbox-unchecked-ink-color, --primary-text-color);
+ opacity: 0.6;
+ pointer-events: none;
+ }
+
+ :host-context([dir="rtl"]) #ink {
+ right: calc(0px - (2.66 * var(--calculated-paper-checkbox-size) - var(--calculated-paper-checkbox-size)) / 2);
+ left: auto;
+ }
+
+ #ink[checked] {
+ color: var(--paper-checkbox-checked-ink-color, --primary-color);
+ }
+
+ #checkbox {
+ position: relative;
+ box-sizing: border-box;
+ height: 100%;
+ border: solid 2px;
+ border-color: var(--paper-checkbox-unchecked-color, --primary-text-color);
+ border-radius: 2px;
+ pointer-events: none;
+ -webkit-transition: background-color 140ms, border-color 140ms;
+ transition: background-color 140ms, border-color 140ms;
+ }
+
+ /* checkbox checked animations */
+ #checkbox.checked #checkmark {
+ -webkit-animation: checkmark-expand 140ms ease-out forwards;
+ animation: checkmark-expand 140ms ease-out forwards;
+ }
+
+ @-webkit-keyframes checkmark-expand {
+ 0% {
+ -webkit-transform: scale(0, 0) rotate(45deg);
+ }
+ 100% {
+ -webkit-transform: scale(1, 1) rotate(45deg);
+ }
+ }
+
+ @keyframes checkmark-expand {
+ 0% {
+ transform: scale(0, 0) rotate(45deg);
+ }
+ 100% {
+ transform: scale(1, 1) rotate(45deg);
+ }
+ }
+
+ #checkbox.checked {
+ background-color: var(--paper-checkbox-checked-color, --primary-color);
+ border-color: var(--paper-checkbox-checked-color, --primary-color);
+ }
+
+ #checkmark {
+ position: absolute;
+ width: 36%;
+ height: 70%;
+ border-style: solid;
+ border-top: none;
+ border-left: none;
+ border-right-width: calc(2/15 * var(--calculated-paper-checkbox-size));
+ border-bottom-width: calc(2/15 * var(--calculated-paper-checkbox-size));
+ border-color: var(--paper-checkbox-checkmark-color, white);
+ -webkit-transform-origin: 97% 86%;
+ transform-origin: 97% 86%;
+ box-sizing: content-box; /* protect against page-level box-sizing */
+ }
+
+ :host-context([dir="rtl"]) #checkmark {
+ -webkit-transform-origin: 50% 14%;
+ transform-origin: 50% 14%;
+ }
+
+ /* label */
+ #checkboxLabel {
+ position: relative;
+ display: inline-block;
+ vertical-align: middle;
+ padding-left: var(--paper-checkbox-label-spacing, 8px);
+ white-space: normal;
+ line-height: normal;
+ color: var(--paper-checkbox-label-color, --primary-text-color);
+ @apply(--paper-checkbox-label);
+ }
+
+ :host([checked]) #checkboxLabel {
+ color: var(--paper-checkbox-label-checked-color, --paper-checkbox-label-color);
+ @apply(--paper-checkbox-label-checked);
+ }
+
+ :host-context([dir="rtl"]) #checkboxLabel {
+ padding-right: var(--paper-checkbox-label-spacing, 8px);
+ padding-left: 0;
+ }
+
+ #checkboxLabel[hidden] {
+ display: none;
+ }
+
+ /* disabled state */
+
+ :host([disabled]) #checkbox {
+ opacity: 0.5;
+ border-color: var(--paper-checkbox-unchecked-color, --primary-text-color);
+ }
+
+ :host([disabled][checked]) #checkbox {
+ background-color: var(--paper-checkbox-unchecked-color, --primary-text-color);
+ opacity: 0.5;
+ }
+
+ :host([disabled]) #checkboxLabel {
+ opacity: 0.65;
+ }
+
+ /* invalid state */
+ #checkbox.invalid:not(.checked) {
+ border-color: var(--paper-checkbox-error-color, --error-color);
+ }
+ </style>
+
+ <div id="checkboxContainer">
+ <div id="checkbox" class$="[[_computeCheckboxClass(checked, invalid)]]">
+ <div id="checkmark" class$="[[_computeCheckmarkClass(checked)]]"></div>
+ </div>
+ </div>
+
+ <div id="checkboxLabel"><content></content></div>
+ </template>
+
+ </dom-module>
+<dom-module id="paper-icon-button-light" assetpath="chrome://resources/polymer/v1_0/paper-icon-button/">
+ <template strip-whitespace="">
+ <style>
+ :host {
+ vertical-align: middle;
+ color: inherit;
+ outline: none;
+ width: 24px;
+ height: 24px;
+ background: none;
+ margin: 0;
+ border: none;
+ padding: 0;
+
+ position: relative;
+ cursor: pointer;
+
+ /* NOTE: Both values are needed, since some phones require the value to be `transparent`. */
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+ -webkit-tap-highlight-color: transparent;
+ }
+
+ :host([disabled]) {
+ color: #9b9b9b;
+ pointer-events: none;
+ cursor: auto;
+ }
+
+ paper-ripple {
+ opacity: 0.6;
+ color: currentColor;
+ }
+ </style>
+ <content></content>
+ </template>
+ </dom-module>
+<dom-module id="history-searched-label" assetpath="chrome://history/">
+ <template>
+ <span id="container"></span>
+ </template>
+ </dom-module>
+<dom-module id="history-item" assetpath="chrome://history/">
+ <template>
+ <style include="shared-style">
+ :host {
+ display: block;
+ }
+
+ :host(:not([embedded])) #main-container {
+ background: #fff;
+ border-color: var(--card-border-color);
+ border-style: solid;
+ border-width: 0 1px;
+ }
+
+ :host(:not([embedded])) #sizing-container {
+ @apply(--card-sizing);
+ }
+
+ :host([is-first-item]) #main-container {
+ margin-top: var(--first-card-padding-top);
+ }
+
+ :host([is-card-start]) #main-container {
+ border-radius: 2px 2px 0 0;
+ border-top-width: 1px;
+ }
+
+ :host([is-card-end]) #main-container {
+ border-bottom-width: 2px;
+ border-radius: 0 0 2px 2px;
+ margin-bottom: var(--card-padding-between);
+ }
+
+ :host([is-card-start][is-card-end]) #main-container {
+ border-radius: 2px;
+ }
+
+ #date-accessed {
+ display: none;
+ }
+
+ :host([is-card-start]) #date-accessed {
+ display: flex;
+ }
+
+ #item-container {
+ @apply(--layout-center);
+ @apply(--layout-horizontal);
+ min-height: var(--item-height);
+ }
+
+ :host([is-card-start]) #item-container {
+ padding-top: var(--card-first-last-item-padding);
+ }
+
+ :host([is-card-end]) #item-container {
+ padding-bottom: var(--card-first-last-item-padding);
+ }
+
+ #title-and-domain {
+ @apply(--layout-center);
+ @apply(--layout-flex);
+ @apply(--layout-horizontal);
+ height: var(--item-height);
+ overflow: hidden;
+ }
+
+ paper-checkbox {
+ --paper-checkbox-checked-color: rgb(68, 136, 255);
+ --paper-checkbox-size: 16px;
+ --paper-checkbox-unchecked-color: var(--secondary-text-color);
+ height: 16px;
+ margin: 0 16px 0 20px;
+ padding: 2px;
+ width: 16px;
+ }
+
+ #time-accessed {
+ color: #646464;
+ min-width: 96px;
+ }
+
+ #domain {
+ -webkit-margin-start: 16px;
+ color: var(--secondary-text-color);
+ flex-shrink: 0;
+ }
+
+ #menu-button {
+ -webkit-margin-end: 12px;
+ }
+
+ #star-container {
+ -webkit-margin-end: 4px;
+ -webkit-margin-start: 12px;
+ width: 32px;
+ }
+
+ #bookmark-star {
+ color: rgb(68, 136, 255);
+ height: 32px;
+ width: 32px;
+ }
+
+ #bookmark-star iron-icon {
+ height: 16px;
+ width: 16px;
+ }
+
+ #time-gap-separator {
+ -webkit-border-start: 1px solid #888;
+ -webkit-margin-start: 77px;
+ height: 15px;
+ }
+ </style>
+
+ <div id="sizing-container">
+ <div id="main-container">
+ <div id="date-accessed" class="card-title">
+ [[cardTitle_(numberOfItems, item.dateRelativeDay, searchTerm)]]
+ </div>
+ <div id="item-container">
+ <paper-checkbox id="checkbox" on-tap="onCheckboxSelected_" checked="{{selected}}" disabled="[[selectionNotAllowed_()]]">
+ </paper-checkbox>
+ <span id="time-accessed">[[item.readableTimestamp]]</span>
+ <div class="website-icon" id="icon"></div>
+ <div id="title-and-domain">
+ <a href="[[item.url]]" id="title" class="website-title">
+ <history-searched-label title="[[cropItemTitle_(item.title)]]" search-term="[[searchTerm]]"></history-searched-label>
+ </a>
+ <span id="domain">[[item.domain]]</span>
+ </div>
+ <div id="star-container">
+ <template is="dom-if" if="[[item.starred]]">
+ <button is="paper-icon-button-light" id="bookmark-star" title="$i18n{removeBookmark}" on-tap="onRemoveBookmarkTap_">
+ <iron-icon icon="cr:star"></iron-icon>
+ </button>
+ </template>
+ </div>
+ <button is="paper-icon-button-light" id="menu-button" class="icon-button" title="$i18n{moreActionsButton}" on-tap="onMenuButtonTap_">
+ <iron-icon icon="cr:more-vert"></iron-icon>
+ </button>
+ </div>
+ <div id="time-gap-separator" hidden="[[!hasTimeGap]]"></div>
+ </div>
+ </div>
+ </template>
+ </dom-module>
+<dom-module id="history-grouped-list" assetpath="chrome://history/">
+ <template>
+ <style include="shared-style">
+ :host {
+ display: block;
+ overflow: auto;
+ position: relative;
+ }
+
+ #main-container {
+ @apply(--card-sizing);
+ align-items: center;
+ display: flex;
+ flex-direction: column;
+ padding-top: var(--first-card-padding-top);
+ }
+
+ .domain-heading {
+ align-items: center;
+ display: flex;
+ height: var(--item-height);
+ padding: 0 20px;
+ }
+
+ .domain-count {
+ color: rgb(151, 156, 160);
+ padding-left: 10px;
+ }
+
+ .domain-heading-text {
+ display: flex;
+ }
+
+ .group-container {
+ background: #fff;
+ border: 1px solid var(--card-border-color);
+ border-bottom-width: 2px;
+ border-radius: 2px;
+ margin-bottom: var(--card-padding-between);
+ max-width: var(--card-max-width);
+ min-width: var(--card-min-width);
+ width: 100%;
+ }
+
+ .card-title {
+ margin-bottom: var(--card-first-last-item-padding);
+ }
+
+ .domain-heading-text {
+ flex: 1 1 0;
+ }
+
+ .dropdown-indicator {
+ max-width: 16px;
+ }
+
+ history-item {
+ padding-left: 20px;
+ }
+ </style>
+ <div id="no-results" class="centered-message" hidden$="[[hasResults_(groupedHistoryData_.length)]]">
+ [[noResultsMessage_(searchedTerm, querying)]]
+ </div>
+ <div id="main-container" hidden$="[[!hasResults_(groupedHistoryData_.length)]]">
+ <template is="dom-repeat" items="[[groupedHistoryData_]]" as="group" initial-count="1" index-as="groupIndex">
+ <div class="group-container">
+ <div class="card-title">
+ [[group.title]]
+ </div>
+
+ <template is="dom-repeat" items="[[group.domains]]" as="domain" initial-count="10" index-as="domainIndex">
+ <div>
+ <div class="domain-heading" on-tap="toggleDomainExpanded_">
+ <div class="domain-heading-text">
+ <div class="website-icon" style="[[getWebsiteIconStyle_(domain)]]"></div>
+ <span>[[domain.domain]]</span>
+ <span class="domain-count">[[domain.visits.length]]</span>
+ </div>
+ <iron-icon icon="[[getDropdownIcon_(domain.expanded)]]" class="dropdown-indicator"></iron-icon>
+ </div>
+ <iron-collapse opened="{{domain.expanded}}" id="collapse">
+ <template is="dom-if" if="[[domain.rendered]]">
+ <template is="dom-repeat" items="[[domain.visits]]" as="item" initial-count="5" index-as="itemIndex">
+ <history-item item="[[item]]" selected="{{item.selected}}" has-time-gap="[[needsTimeGap_(
+ groupIndex, domainIndex, itemIndex)]]" search-term="[[searchedTerm]]" number-of-items="[[historyData.length]]" embedded="">
+ </history-item>
+ </template>
+ </template>
+ </iron-collapse>
+ </div>
+ </template>
+ </div>
+ </template>
+ </div>
+ </template>
+ </dom-module>
+<dom-module id="iron-list" assetpath="chrome://resources/polymer/v1_0/iron-list/">
+ <template>
+ <style>
+ :host {
+ display: block;
+ position: relative;
+ }
+
+ @media only screen and (-webkit-max-device-pixel-ratio: 1) {
+ :host {
+ will-change: transform;
+ }
+ }
+
+ #items {
+ @apply(--iron-list-items-container);
+ position: relative;
+ }
+
+ :host(:not([grid])) #items > ::content > * {
+ width: 100%;
+ };
+
+ #items > ::content > * {
+ box-sizing: border-box;
+ margin: 0;
+ position: absolute;
+ top: 0;
+ will-change: transform;
+ }
+ </style>
+
+ <array-selector id="selector" items="{{items}}" selected="{{selectedItems}}" selected-item="{{selectedItem}}">
+ </array-selector>
+
+ <div id="items">
+ <content></content>
+ </div>
+
+ </template>
+</dom-module>
+
+<dom-module id="iron-scroll-threshold" assetpath="chrome://resources/polymer/v1_0/iron-scroll-threshold/">
+ <template>
+ <style>
+ :host {
+ display: block;
+ }
+ </style>
+
+ <content></content>
+
+ </template>
+</dom-module>
+
+<dom-module id="history-list" assetpath="chrome://history/">
+ <template>
+ <style include="shared-style">
+ :host {
+ display: block;
+ }
+
+ #infinite-list {
+ height: 100%;
+ }
+
+ history-item {
+ --history-item-padding-side: var(--card-padding-side);
+ }
+ </style>
+ <div id="no-results" class="centered-message" hidden$="[[hasResults(historyData_.length)]]">
+ {{noResultsMessage_(searchedTerm, querying)}}
+ </div>
+ <iron-list items="{{historyData_}}" as="item" id="infinite-list" hidden$="[[!hasResults(historyData_.length)]]">
+ <template>
+ <history-item item="[[item]]" selected="{{item.selected}}" is-first-item="[[isFirstItem_(index)]]" is-card-start="[[isCardStart_(item, index, historyData_.length)]]" is-card-end="[[isCardEnd_(item, index, historyData_.length)]]" has-time-gap="[[needsTimeGap_(item, index, historyData_.length)]]" search-term="[[searchedTerm]]" number-of-items="[[historyData_.length]]">
+ </history-item>
+ </template>
+ </iron-list>
+ <iron-scroll-threshold id="scroll-threshold" scroll-target="infinite-list" lower-threshold="500" on-lower-threshold="loadMoreData_">
+ </iron-scroll-threshold>
+ </template>
+ </dom-module>
+<dom-module id="history-list-container" assetpath="chrome://history/">
+ <template>
+ <style include="shared-style cr-shared-style">
+ :host {
+ display: block;
+ height: 100%;
+ overflow: hidden;
+ }
+
+ #content,
+ #content > * {
+ height: 100%;
+ }
+
+ #dialog .body {
+ white-space: pre-wrap;
+ }
+ </style>
+ <iron-pages id="content" attr-for-selected="id" selected="[[selectedPage_]]">
+ <history-list id="infinite-list" querying="[[queryState.querying]]" searched-term="[[queryResult.info.term]]"></history-list>
+ <template is="dom-if" if="[[grouped]]">
+ <history-grouped-list id="grouped-list" range="[[queryState.range]]" query-start-time="[[queryResult.info.queryStartTime]]" query-end-time="[[queryResult.info.queryEndTime]]" searched-term="[[queryResult.info.term]]">
+ </history-grouped-list>
+ </template>
+ </iron-pages>
+
+ <dialog is="cr-dialog" id="dialog">
+ <div class="title">$i18n{removeSelected}</div>
+ <div class="body">$i18n{deleteWarning}</div>
+ <div class="button-container">
+ <paper-button class="cancel-button" on-tap="onDialogCancelTap_">
+ $i18n{cancel}
+ </paper-button>
+ <paper-button class="action-button" on-tap="onDialogConfirmTap_" autofocus="">
+ $i18n{deleteConfirm}
+ </paper-button>
+ </div>
+ </dialog>
+
+ <cr-shared-menu id="sharedMenu">
+ <paper-item id="menuMoreButton" class="menu-item" on-tap="onMoreFromSiteTap_">
+ $i18n{moreFromSite}
+ </paper-item>
+ <paper-item id="menuRemoveButton" class="menu-item" on-tap="onRemoveFromHistoryTap_">
+ $i18n{removeFromHistory}
+ </paper-item>
+ </cr-shared-menu>
+ </template>
+ </dom-module>
+<dom-module id="history-synced-device-card" assetpath="chrome://history/">
+ <template>
+ <style include="shared-style">
+ :host {
+ @apply(--card-sizing);
+ display: block;
+ padding-bottom: var(--card-padding-between);
+ }
+
+ #card-heading {
+ @apply(--layout-justified);
+ cursor: pointer;
+ }
+
+ #icon {
+ -webkit-margin-start: 20px;
+ }
+
+ #tab-item-list {
+ padding: 8px 0;
+ }
+
+ #last-update-time {
+ color: var(--secondary-text-color);
+ }
+
+ #right-buttons {
+ -webkit-margin-end: 4px;
+ }
+
+ #menu-button {
+ -webkit-margin-end: 8px;
+ }
+
+ #collapse {
+ border-bottom: 1px solid var(--card-border-color);
+ overflow: hidden;
+ }
+
+ #history-item-container {
+ background: #fff;
+ border: 1px solid var(--card-border-color);
+ border-radius: 2px;
+ }
+
+ #item-container {
+ @apply(--layout-center);
+ @apply(--layout-horizontal);
+ min-height: var(--item-height);
+ }
+
+ #window-separator {
+ background-color: var(--card-border-color);
+ height: 1px;
+ margin: 5px auto;
+ width: 80%;
+ }
+ </style>
+ <div id="history-item-container">
+ <div class="card-title" id="card-heading" aria-expanded$="[[cardOpen_]]" aria-controls="collapse" on-tap="toggleTabCard">
+ <div>
+ [[device]]
+ <span id="last-update-time">[[lastUpdateTime]]</span>
+ </div>
+ <div id="right-buttons">
+ <button is="paper-icon-button-light" id="menu-button" class="icon-button" on-tap="onMenuButtonTap_">
+ <iron-icon icon="cr:more-vert"></iron-icon>
+ </button>
+ <button is="paper-icon-button-light" class="icon-button" title$="[[getCollapseTitle_(cardOpen_)]]">
+ <iron-icon icon="cr:expand-less" id="dropdown-indicator">
+ </iron-icon>
+ </button>
+ </div>
+ </div>
+
+ <iron-collapse opened="{{cardOpen_}}" id="collapse">
+ <div id="tab-item-list">
+ <template is="dom-repeat" items="[[tabs]]" as="tab" id="tab-list">
+ <div id="item-container">
+ <div id="icon" class="website-icon"></div>
+ <a href="[[tab.url]]" class="website-title" title="[[tab.title]]" on-click="openTab_">
+ <history-searched-label title="[[tab.title]]" search-term="[[searchTerm]]"></history-searched-label>
+ </a>
+ </div>
+ <div id="window-separator" hidden$="[[!isWindowSeparatorIndex_(index, separatorIndexes)]]">
+ </div>
+ </template>
+ </div>
+ </iron-collapse>
+ </div>
+ </template>
+ </dom-module>
+<dom-module id="history-synced-device-manager" assetpath="chrome://history/">
+ <template>
+ <style include="shared-style">
+ :host {
+ display: block;
+ overflow: auto;
+ }
+
+ #illustration {
+ background: -webkit-image-set(
+ url("chrome://history/images/100/sign_in_promo.png") 1x,
+ url("chrome://history/images/200/sign_in_promo.png") 2x)
+ no-repeat center center;
+ height: 222px;
+ margin-top: 100px;
+ width: 594px;
+ }
+
+ #no-synced-tabs {
+ height: 100%;
+ }
+
+ #sign-in-guide {
+ align-items: center;
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ overflow-x: hidden;
+ text-align: center;
+ }
+
+ #sign-in-promo {
+ color: var(--primary-text-color);
+ font-size: 28px;
+ margin-top: 40px;
+ }
+
+ #sign-in-promo-desc {
+ color: #848484;
+ font-size: 16px;
+ margin-top: 10px;
+ }
+
+ #sign-in-button {
+ background-color: var(--google-blue-500);
+ color: white;
+ font-size: 14px;
+ margin-top: 24px;
+ }
+
+ #synced-device-list {
+ padding-top: var(--first-card-padding-top);
+ }
+ </style>
+ <div id="synced-device-list" hidden="[[!syncedDevices_.length]]">
+ <template is="dom-repeat" items="[[syncedDevices_]]" as="syncedDevice">
+ <history-synced-device-card device="[[syncedDevice.device]]" last-update-time="[[syncedDevice.lastUpdateTime]]" tabs="[[syncedDevice.tabs]]" separator-indexes="[[syncedDevice.separatorIndexes]]" search-term="[[searchTerm]]" session-tag="[[syncedDevice.tag]]">
+ </history-synced-device-card>
+ </template>
+ </div>
+ <div id="no-synced-tabs" class="centered-message" hidden="[[!showNoSyncedMessage(signInState_, syncedDevices_.length,
+ guestSession_)]]">
+ [[noSyncedTabsMessage(fetchingSyncedTabs_)]]
+ </div>
+ <div id="sign-in-guide" hidden="[[!showSignInGuide(signInState_, guestSession_)]]">
+ <div id="illustration"></div>
+ <div id="sign-in-promo">$i18n{signInPromo}</div>
+ <div id="sign-in-promo-desc">$i18n{signInPromoDesc}</div>
+ <paper-button id="sign-in-button" on-tap="onSignInTap_">
+ $i18n{signInButton}
+ </paper-button>
+ </div>
+
+ <cr-shared-menu id="menu">
+ <paper-item class="menu-item" on-tap="onOpenAllTap_">
+ $i18n{openAll}
+ </paper-item>
+ <paper-item class="menu-item" on-tap="onDeleteSessionTap_">
+ $i18n{deleteSession}
+ </paper-item>
+ </cr-shared-menu>
+ </template>
+ </dom-module>
+<dom-module id="history-side-bar" assetpath="chrome://history/">
+ <template>
+ <style include="shared-style">
+ :host {
+ display: block;
+ height: 100%;
+ padding-top: 5px;
+ width: var(--side-bar-width);
+ }
+
+ div.separator {
+ background-color: rgba(0, 0, 0, 0.08);
+ height: 1px;
+ margin: 8px 0;
+ }
+
+ #clear-browsing-data {
+ text-transform: uppercase;
+ }
+
+ iron-selector {
+ -webkit-user-select: none;
+ background-color: transparent;
+ color: #5a5a5a;
+ }
+
+ iron-selector > a {
+ @apply(--paper-font-subhead);
+ -webkit-padding-start: 24px;
+ align-items: center;
+ box-sizing: border-box;
+ color: inherit;
+ cursor: pointer;
+ display: flex;
+ font-size: 14px;
+ font-weight: 500;
+ min-height: 48px;
+ position: relative;
+ text-decoration: none;
+ }
+
+ iron-selector > a.iron-selected {
+ color: var(--google-blue-500);
+ font-weight: 500;
+ }
+
+ #footer {
+ bottom: 0;
+ color: var(--paper-grey-600);
+ position: absolute;
+ width: var(--side-bar-width);
+ }
+
+ :host([drawer]) #footer {
+ /* This compensates the 120px by which app-drawer protrudes under
+ * the viewport. */
+ bottom: 120px;
+ }
+
+ #footer-text {
+ -webkit-padding-end: 16px;
+ -webkit-padding-start: 24px;
+ line-height: 20px;
+ margin: 24px 0;
+ }
+
+ #footer a {
+ color: var(--google-blue-700);
+ text-decoration: none;
+ }
+ </style>
+
+ <iron-selector id="menu" selected="{{selectedPage}}" selectable=".page-item" attr-for-selected="path" fallback-selection="history" on-iron-activate="onSelectorActivate_">
+ <a href="/[[getQueryString_(route)]]" class="page-item" path="history">
+ $i18n{historyMenuItem}
+ <paper-ripple></paper-ripple>
+ </a>
+ <a href="/syncedTabs[[getQueryString_(route)]]" class="page-item" path="syncedTabs">
+ $i18n{openTabsMenuItem}
+ <paper-ripple></paper-ripple>
+ </a>
+ <div class="separator"></div>
+ <a href="chrome://settings/clearBrowserData" on-tap="onClearBrowsingDataTap_" id="clear-browsing-data">
+ $i18n{clearBrowsingData}
+ <paper-ripple></paper-ripple>
+ </a>
+ <div id="footer" hidden="[[!showFooter]]">
+ <div class="separator"></div>
+ <div id="footer-text">$i18nRaw{sidebarFooter}</div>
+ </div>
+ </iron-selector>
+ </template>
+ </dom-module>
+<link rel="import" href="chrome://resources/html/polymer.html">
+<style>
+/* Copyright 2016 The Chromium Authors. All rights reserved.
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file. */
+
+:root {
+ /* This is a custom, Chrome-specific color that does not have a --paper or
+ * --google equivalent. */
+ --md-background-color: rgb(241, 241, 241);
+ /* This is --google-blue-700, rewritten as a native custom property for speed.
+ */
+ --md-toolbar-color: rgb(51, 103, 214);
+}
+
+</style>
+
+<dom-module id="history-app" assetpath="chrome://history/">
+ <template>
+ <style no-process="">
+ history-toolbar {
+ background: var(--md-toolbar-color);
+ }
+ </style>
+ <style include="shared-style">
+ :host {
+ display: block;
+ height: 100%;
+ overflow: hidden;
+ }
+
+ /* Sizing this with flex causes slow load performance, see
+ crbug.com/618153. */
+ #main-container {
+ height: calc(100% - var(--toolbar-height));
+ }
+
+ :host([grouped_]) #main-container {
+ height: calc(100% - var(--toolbar-grouped-height));
+ }
+
+ #content-side-bar {
+ float: left;
+ }
+
+ #content,
+ #content > * {
+ height: 100%;
+ }
+
+ #drawer-header {
+ align-items: center;
+ border-bottom: 1px solid rgba(0, 0, 0, 0.08);
+ display: flex;
+ height: var(--toolbar-height);
+ margin-bottom: 5px;
+ }
+
+ h1 {
+ -webkit-padding-start: 24px;
+ color: rgb(66, 66, 66);
+ font-size: 123%;
+ font-weight: 400;
+ }
+ </style>
+ <app-location route="{{route_}}"></app-location>
+ <app-route route="{{route_}}" pattern="/:page" data="{{routeData_}}" query-params="{{queryParams_}}">
+ </app-route>
+ <history-toolbar id="toolbar" spinner-active="[[shouldShowSpinner_(queryState_.querying,
+ queryState_.incremental,
+ queryState_.searchTerm)]]" is-grouped-mode="{{grouped_}}" grouped-range="{{queryState_.range}}" search-term="{{queryState_.searchTerm}}" query-start-time="[[queryResult_.info.queryStartTime]]" query-end-time="[[queryResult_.info.queryEndTime]]" has-drawer="[[hasDrawer_]]">
+ </history-toolbar>
+
+ <div id="main-container">
+ <history-side-bar id="content-side-bar" selected-page="[[selectedPage_]]" route="[[route_]]" show-footer="[[showSidebarFooter]]" hidden$="[[hasDrawer_]]">
+ </history-side-bar>
+ <iron-pages id="content" attr-for-selected="path" fallback-selection="history" selected="[[getSelectedPage_(selectedPage_, items)]]" items="{{items}}">
+ <history-list-container id="history" query-state="{{queryState_}}" query-result="[[queryResult_]]" grouped="[[grouped_]]" path="history">
+ </history-list-container>
+ <template is="dom-if" if="[[syncedTabsSelected_(selectedPage_)]]">
+ <history-synced-device-manager id="synced-devices" session-list="[[queryResult_.sessionList]]" search-term="[[queryState_.searchTerm]]" path="syncedTabs">
+ </history-synced-device-manager>
+ </template>
+ </iron-pages>
+ </div>
+
+ <template is="dom-if" if="[[hasDrawer_]]">
+ <app-drawer id="drawer" swipe-open="" align="start" tabindex="0">
+ <div id="drawer-header">
+ <h1>$i18n{title}</h1>
+ </div>
+ <history-side-bar id="drawer-side-bar" selected-page="[[selectedPage_]]" route="[[route_]]" show-footer="[[showSidebarFooter]]" drawer="">
+ </history-side-bar>
+ </app-drawer>
+ </template>
+
+ <iron-media-query query="(max-width: 1023px)" query-matches="{{hasDrawer_}}">
+ </iron-media-query>
+ </template>
+ </dom-module>
+</div>
+ <history-app></history-app>
+
+ <div id="app-shim">
+ <span id="loading-toolbar">$i18n{title}</span>
+ <span id="loading-message">$i18n{loading}</span>
+ </div>
+
+<if expr="is_macosx">
+ <command id="find-command" shortcut="Meta|f"></command>
+</if>
+<if expr="not is_macosx">
+ <command id="find-command" shortcut="Ctrl|f"></command>
+</if>
+ <command id="delete-command" shortcut="Delete Backspace"></command>
+ <command id="slash-command" shortcut="/"></command>
+
+ <script src="chrome://history/strings.js"></script>
+ <script src="crisper.js"></script></body></html>
« no previous file with comments | « chrome/browser/resources/md_history/vulcanize.py ('k') | chrome/browser/resources/vulcanize_readme.md » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698