forked from kiwibrowser/classic_ntp
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathindex.html
562 lines (518 loc) · 77.5 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
<!doctype html>
<html>
<script>
// If we are not in Kiwi Browser, we emulate output
// of native APIs from Kiwi Browser's extension system
// This new tab page is different when Incognito is on
// You can also change window.chrome.embeddedSearch.newTabPage.isIncognito to true or false
if (typeof window.chrome.embeddedSearch == "undefined") {
window.chrome = {"embeddedSearch":{"searchBox":{"rtl":false,"isFocused":false,"isKeyCaptureEnabled":false},"newTabPage":{"isInputInProgress":false,"isIncognito":false,"themeBackgroundInfo":{"usingDefaultTheme":true,"colorRgba":"rgba(0,0,0,0)","backgroundColorRgba":[0,0,0,0],"textColorRgba":[0,0,0,0],"linkColorRgba":[0,0,0,0],"textColorLightRgba":[0,0,0,0],"headerColorRgba":[0,0,0,0],"sectionBorderColorRgba":[0,0,0,0],"alternateLogo":false}}}}
chrome.embeddedSearch.newTabPage.mostVisitedAvailable = true;
chrome.embeddedSearch.newTabPage.mostVisited = [{"rid":"google","faviconUrl":"https://www.google.com/favicon.ico"}];
chrome.embeddedSearch.newTabPage.getMostVisitedItemData = function (rid) { return {url: {"google": "https://google.com"}[rid] }; }
}
</script>
<!-- Copyright 2019 Geometry OU / Kiwi Browser -->
<!-- Licensed under https://creativecommons.org/licenses/by-nc-sa/4.0/ -->
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<meta name="theme-color" content="#ffffff">
<title>Kiwi Browser NTP</title>
<link rel="stylesheet" href="./theme.css"></link>
<link rel="stylesheet" href="./local_ntp.css"></link>
<link rel="stylesheet" href="./voice.css"></link>
<link rel="stylesheet" href="./custom-backgrounds.css"></link>
<link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet">
<script src="./voice.js"
{{LOCAL_NTP_VOICE_INTEGRITY}}></script>
<script src="./custom-backgrounds.js"
{{LOCAL_NTP_CUSTOM_BG_INTEGRITY}}></script>
<meta charset="utf-8">
<meta name="google" value="notranslate">
</head>
<!-- Remember to update the test HTML files in chrome/test/data/local_ntp/
whenever making changes to this file.-->
<body>
<style>
.ntpOverlay {
position: fixed;
top: 0;
left: 0;
height: 100%;
width: 100%;
z-index: 9999999999;
background-color: rgba(255,255,255,1);
}
.centeredBlock {
position: absolute;
margin: auto;
top: 0;
right: 0;
bottom: 0;
left: 0;
width: 90%;
height: 70%;
background-color: #efefef;
border-radius: 26px;
text-align: center;
-webkit-box-shadow: 6px 23px 26px -17px rgba(219,219,219,1);
-moz-box-shadow: 6px 23px 26px -17px rgba(219,219,219,1);
box-shadow: 6px 23px 26px -17px rgba(219,219,219,1);
padding-top: 40px;
}
</style>
<script>
function changeThemeColor(targetColor) {
var metaThemeColor = document.querySelector("meta[name=theme-color]");
metaThemeColor.setAttribute("content", targetColor);
document.getElementById('ntpOverlay').style.backgroundColor = targetColor;
}
function goToPage2()
{
document.getElementById('ntpSlide1').style.display='none';
document.getElementById('ntpSlide2').style.display='block';
document.getElementById('centeredBlock').style.backgroundColor='#282828';
changeThemeColor('#000');
}
</script>
<div style="position: absolute; top: 0px; right: 5px; z-index: 99999999">
<div class="plus-item" role="button" aria-label="Add new tile" title="Add new tile" id="add-button">+</div>
</div>
<div id="ntp-contents">
<div id="logo" style="display: none;">
<!-- The logo that is displayed in the absence of a doodle. -->
<div id="logo-default" title="Google"></div>
<!-- Logo displayed when theme prevents doodles. Doesn't fade. -->
<div id="logo-non-white" title="Google"></div>
<!-- A doodle, if any: its link and image. -->
<div id="logo-doodle">
<button id="logo-doodle-button">
<img id="logo-doodle-image"></img>
</button>
<iframe id="logo-doodle-iframe" scrolling="no"></iframe>
<!-- A spinner, visible on dark-themed NTPs, prompting the doodle -->
<button id="logo-doodle-notifier">
<div class="outer ball0"><div class="inner"></div></div>
<div class="outer ball1"><div class="inner"></div></div>
<div class="outer ball2"><div class="inner"></div></div>
<div class="outer ball3"><div class="inner"></div></div>
</button>
</div>
</div>
<div id="fakebox-container" style="display: none;">
<div id="fakebox">
<div id="fakebox-text"></div>
<input id="fakebox-input" autocomplete="off" tabindex="-1" type="url"
aria-hidden="true">
<div id="fakebox-cursor"></div>
<button id="fakebox-microphone" hidden></button>
</div>
</div>
<style>
.full-hidden {
opacity: 0 !important;
position: absolute !important;
top: -9999999px;
left: -9999999px;
z-index: -99999;
width: 100vw !important;
}
.closeImgInvisible {
display: none;
}
</style>
<div id="fake-bookmarks-grid" style="display: none">
</div>
<div id="bookmarks-grid" class="full-hidden">
</div>
<div id="incognito" style="display: none">
<div style="text-align: center;"><img style="width: 100%; max-width: 1024px" src="data:image/jpeg;base64,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dCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAxNC0wOC0wNVQxMzozNzoxMi0wNDowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxNC0wOC0wNVQxMzozNzozOS0wNDowMCIgeG1wOk1vZGlmeURhdGU9IjIwMTQtMDgtMDVUMTM6Mzc6MzktMDQ6MDAiIGRjOmZvcm1hdD0iaW1hZ2UvanBlZyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCNzVDMTJBMEI2MUNFNDExOTM3OEMzMTZCOEYxQ0RBQSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCNTVDMTJBMEI2MUNFNDExOTM3OEMzMTZCOEYxQ0RBQSIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOkI1NUMxMkEwQjYxQ0U0MTE5Mzc4QzMxNkI4RjFDREFBIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0ic1JHQiBJRUM2MTk2Ni0yLjEiPiA8eG1wTU06SGlzdG9yeT4gPHJkZjpTZXE+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjcmVhdGVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOkI1NUMxMkEwQjYxQ0U0MTE5Mzc4QzMxNkI4RjFDREFBIiBzdEV2dDp3aGVuPSIyMDE0LTA4LTA1VDEzOjM3OjEyLTA0OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKSIvPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6QjY1QzEyQTBCNjFDRTQxMTkzNzhDMzE2QjhGMUNEQUEiIHN0RXZ0OndoZW49IjIwMTQtMDgtMDVUMTM6Mzc6MzktMDQ6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDUzYgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJjb252ZXJ0ZWQiIHN0RXZ0OnBhcmFtZXRlcnM9ImZyb20gYXBwbGljYXRpb24vdm5kLmFkb2JlLnBob3Rvc2hvcCB0byBpbWFnZS9qcGVnIi8+IDxyZGY6bGkgc3RFdnQ6YWN0aW9uPSJkZXJpdmVkIiBzdEV2dDpwYXJhbWV0ZXJzPSJjb252ZXJ0ZWQgZnJvbSBhcHBsaWNhdGlvbi92bmQuYWRvYmUucGhvdG9zaG9wIHRvIGltYWdlL2pwZWciLz4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOkI3NUMxMkEwQjYxQ0U0MTE5Mzc4QzMxNkI4RjFDREFBIiBzdEV2dDp3aGVuPSIyMDE0LTA4LTA1VDEzOjM3OjM5LTA0OjAwIiBzdEV2dDpzb2Z0d2FyZUFnZW50PSJBZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKSIgc3RFdnQ6Y2hhbmdlZD0iLyIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QjY1QzEyQTBCNjFDRTQxMTkzNzhDMzE2QjhGMUNEQUEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QjU1QzEyQTBCNjFDRTQxMTkzNzhDMzE2QjhGMUNEQUEiIHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpCNTVDMTJBMEI2MUNFNDExOTM3OEMzMTZCOEYxQ0RBQSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3hwYWNrZXQgZW5kPSJ3Ij8+/9sAQwAGBAQFBAQGBQUFBgYGBwkOCQkICAkSDQ0KDhUSFhYVEhQUFxohHBcYHxkUFB0nHR8iIyUlJRYcKSwoJCshJCUk/8AACwgCQAQAAQERAP/EABwAAQADAAMBAQAAAAAAAAAAAAABAgMFBgcECP/EAEsQAAIBAgEFCgoIBQQCAgMBAAABAgMRBAUSEyExBiIyM0FRUnGh0QcWF0JUYYGRk+EUFSNVYnKxwTRTc4OiNWOCkiRDsvAlRPFF/9oACAEBAAA/AOCcktrDaW12CknsaZJDkltaRJDnFbWiNJDpIsmnsZDko7WkRpIdJFtoIc4ra0RpIdIlNPY0xnxXnInaCFJPY7jOjzrURpI9JDSR6SGkj0kWurXK6SK85EqUZbGiQVz49JFgQ5JbXYKSex3JK6SH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" />
<br />
<span style="color: #555;"><h2>Private mode</h2></span>
</div>
</div>
<script>
var instant_grid_done = false;
function instant_grid()
{
instant_grid_done = true;
console.log('Calling instant grid generation');
if (typeof localStorage.cachedGrid != "undefined") {
document.getElementById('fake-bookmarks-grid').innerHTML = localStorage.cachedGrid;
document.getElementById('fake-bookmarks-grid').style.cssText = localStorage.cachedGridStyle;
document.getElementById('fake-bookmarks-grid').style.display = 'block';
}
}
if (typeof window.chrome.embeddedSearch != "undefined" && window.chrome.embeddedSearch.newTabPage.isIncognito)
{
document.body.style.backgroundColor='black';
document.getElementById('incognito').style.display='block';
document.getElementById('add-button').style.display='none';
}
else
{
try {
instant_grid();
window.setTimeout(function () { if (!instant_grid_done) instant_grid(); }, 1);
}
catch (err) {
console.log("Instant init failed, retrying later");
}
}
</script>
<style>
@-webkit-keyframes shadow-inset-center {
0% {
box-shadow: 0 0 0 0 rgba(0, 0, 0, 0);
}
100% {
box-shadow: 0 0 14px 0px rgba(0, 0, 0, 0.5);
}
}
@keyframes shadow-inset-center {
0% {
box-shadow: 0 0 0 0 rgba(0, 0, 0, 0);
}
100% {
box-shadow: 0 0 14px 0px rgba(0, 0, 0, 0.5);
}
}
</style>
<script>
var closeImg = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAMAAAD04JH5AAAAA3NCSVQICAjb4U/gAAAACXBIWXMAACNvAAAjbwE1/Af7AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAANVQTFRF////11pK11pK11pK11pK11pK11pK11pK11pK11pK11pK11pK11pK11pK11pK11pK11pK11pK11pK11pK11pK11pK11pK11pK11pK11pK11pK11pK11pK11pK11pK11pK11pK11pK11pK11pK11pK11pK11pK11pK11pK11pK11pK11pK11pK11pK11pK11pK11pK11pK11pK11pK11pK11pK11pK11pK2F9P2WBR2WJT2mVW33pt5ZSJ5peN6J+V6KGY/PHv/PHw/PPy/PTz/fb1////fP+U/wAAADd0Uk5TAAEDBAYLDA4VHB4fNDg8PUJDR0pbc3yCg4SGiImVlqWnq661uLq/wsPFy9DT2d7m6+zt8/n6/uYUS2MAAANwSURBVHjazVvnWiJBEBwjBjwRCSfgkWHJectAUnTf/5FuDeehIhN3euv3fFu1aaa7upsxFUSiiXS+7LS6/fG432055Xw6EY0wKziI52o9bESvlosfBEq+H7tqTLAVk8bv2H5A9GfXQwhheH1mnv001YEEOqlTo/TRkgtJuKWoMfrzCpRQOTdCf1GHMuoX2vTHRWiheKxFv5ccQROj5J46/682DKD9S5F+N+PCCNzMrtLbd2AMjsKXcDmAQQwuJel3si6Mws3uSJ06BRhHQeKMOqwiAFQPRfmPmggEzSMx/pMOAkLnROj+A+P3FQg8g8MmAkST+x3sVxEoqpx/YaeAgFHYvh9kETiyW/dfN3gB7pZd+XgACxj8eDLtOrAC56fTOQNLyPwQ/7i2BLgbY6S9NqyhvSlOTMIikhv+gJFNAaPvf0IRVlH8lv/AMr7mTHXbAupf8k9Yx+fMtWJfQOVT/g8CrPsHJe7q28XsRvzad8v5PXdRac1/4W7C9yvPe5iK8k8fPW91y92Q/7s4Ke4l556PJ0EF06eX1QvuutSHAH4cvPTEFbzxezN+jPzhvwm81EdhBe/8DwKfzD8371r8tvgKhBf6+PMeiQ9hToEMP4ZvMXpM5tPiXFqKH4i9CriCMQWS/Lh6FdCAKQWy/Gi8+u8TGFIgzY/Ji7sfl9i+t1LI8wNxX0AOZhSo8CPnC6jBiAIlftR8AT2YUKDGjx5jEdljfCOVIj8QUYhFNpAp8/tRSQL6CtT5kWBpaCvQ4Eea5aGrQIcfeVaGpgItfpSZoinxQavHD4e1oKXg+VmLHy3WhZ4CPX50WR/6CtT50Wdj9dRm+vb4vWd1fozpBZC/AvKPkPw3JN+IyLdi8sOI/DgmD0jIQzLyoJQ8LKdPTMhTM/LklDw9Jzco6C0acpOK3KYjNypFrNqbB1mr9vGOv/RM3KyeyZvVS+7CjoRdv5C36+fcdSmJgsXtyn+o4gUL/4WtuCWTtYKFQMnmfr68E97gcDNbcAsm6yUb+qIVedmOvnBJXrqlL16Tl+/pGxjIWzjom1jI23joG5noW7nIm9no2/noGxrpWzrJm1rp23rpG5vpW7vpm9vp2/vpBxzoRzzoh1xCMOZDP+hEP+oVgmE3+nG/EAw8hmDkMwRDryEY+w3B4HMYRr9DMPwexPj/X+Yt8H/u7e31AAAAAElFTkSuQmCC';
document.getElementById('add-button').addEventListener('click', create_new_item);
var longpress = false;
var presstimer = null;
var longtarget = null;
var iseditable = false;
function load_more_news()
{
localStorage.lastOffsetRendered = last_offset_rendered;
render_gnews(localStorage.cachedGNews, last_offset_rendered, 10);
}
function process_cancel(e) {
console.log('We received process_cancel');
console.log(e);
if (iseditable)
{
e.preventDefault();
return ;
}
if (presstimer !== null) {
clearTimeout(presstimer);
presstimer = null;
}
this.classList.remove("longpress");
};
function process_body_click(e) {
if (iseditable) {
toggle_edit_mode();
e.preventDefault();
}
}
function process_click(e) {
console.log('We received process_click');
console.log(e);
if (iseditable)
return ;
e.preventDefault();
if (presstimer !== null) {
clearTimeout(presstimer);
presstimer = null;
}
this.classList.remove("longpress");
if (longpress) {
return false;
}
};
function process_start(e) {
if (iseditable)
return ;
// e.preventDefault();
if (e.type === "click" && e.button !== 0) {
return;
}
longpress = false;
this.classList.add("longpress");
presstimer = setTimeout(function() {
toggle_edit_mode();
longpress = true;
}, 550);
return false;
};
function arrayBufferToBase64(buffer) {
var binary = '';
var bytes = [].slice.call(new Uint8Array(buffer));
bytes.forEach((b) => binary += String.fromCharCode(b));
return window.btoa(binary);
};
function invalidate_image(item)
{
console.log("Invalidating item: " + item.title);
var parser = document.createElement('a');
parser.href = item.title;
var rootDomain = psl.get(parser.hostname);
console.log("Invalidating rootDomain: " + rootDomain);
item.src = "data:image/svg+xml;base64," + btoa(jdenticon.toSvg(parser.hostname, 64));
localStorage.setItem('icon-' + rootDomain, item.src);
}
function remove_favorite(e)
{
console.log("Removing favorite");
console.log(e);
item = e.target;
item = item.parentNode;
console.log("Removing item");
globalGrid.disconnect(item);
}
function add_favorite(item)
{
var parser = document.createElement('a');
parser.href = item.url;
// Our intent is buzz.blogspot.com to stay buzz.blogspot.com
// and m.wikipedia.org to become wikipedia.org
var rootDomain = psl.get(parser.hostname);
var innerDiv = document.createElement('div');
innerDiv.className = 'grid-item';
var cachedImage = localStorage.getItem('icon-' + rootDomain);
var imageUri = null;
var randomId = Math.random().toString(36).substr(2, 9) + Math.random().toString(36).substr(2, 9) + Math.random().toString(36).substr(2, 9);
if (cachedImage != null) {
imageUri = cachedImage;
console.log('Loading icon for ' + rootDomain + ' from cache');
} else {
console.log('Fetching icon for ' + rootDomain);
loadingImage = "data:image/svg+xml;base64," + btoa('<svg width="85px" height="85px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid" class="lds-tail"> <defs> <filter id="tail-0.a4db4fdd84ecd" x="-100%" y="-100%" width="300%" height="300%" color-interpolation-filters="sRGB"> <feGaussianBlur in="SourceGraphic" stdDeviation="3"></feGaussianBlur> <feColorMatrix mode="matrix" values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 60 -40" result="cm"></feColorMatrix> </filter> </defs> <g ng-attr-filter="url(#{{config.filterid}})" filter="url(#tail-0.a4db4fdd84ecd)" transform="rotate(54 50 50)"> <animateTransform attributeName="transform" type="rotate" calcMode="linear" values="0 50 50;360 50 50" keyTimes="0;1" dur="4s" begin="0s" repeatCount="indefinite"></animateTransform> <g transform="rotate(333.474 50 50)"> <g ng-attr-transform="translate(50 {{config.cy}})" transform="translate(50 19.6)"> <circle cx="0" cy="0" r="19" ng-attr-fill="{{config.fill}}" ng-attr-transform="scale({{config.scale}})" fill="#ff7c81" transform="scale(0.48)"></circle> </g> <animateTransform attributeName="transform" calcMode="spline" type="rotate" values="0 50 50;360 50 50" keyTimes="0;1" ng-attr-dur="{{config.speed2}}" keySplines="0.13333333333333333 0 0.03333333333333333 1" repeatCount="indefinite" dur="1"></animateTransform> </g> <g transform="rotate(331.178 50 50)"> <g ng-attr-transform="translate(50 {{config.cy}})" transform="translate(50 19.6)"> <circle cx="0" cy="0" r="18" ng-attr-fill="{{config.fill}}" ng-attr-transform="scale({{config.scale}})" fill="#ff7c81" transform="scale(0.48)"></circle> </g> <animateTransform attributeName="transform" calcMode="spline" type="rotate" values="0 50 50;360 50 50" keyTimes="0;1" ng-attr-dur="{{config.speed2}}" keySplines="0.16666666666666669 0 0.06666666666666667 1" repeatCount="indefinite" dur="1"></animateTransform> </g> <g transform="rotate(328.576 50.0001 50)"> <g ng-attr-transform="translate(50 {{config.cy}})" transform="translate(50 19.6)"> <circle cx="0" cy="0" r="17" ng-attr-fill="{{config.fill}}" ng-attr-transform="scale({{config.scale}})" fill="#ff7c81" transform="scale(0.48)"></circle> </g> <animateTransform attributeName="transform" calcMode="spline" type="rotate" values="0 50 50;360 50 50" keyTimes="0;1" ng-attr-dur="{{config.speed2}}" keySplines="0.2 0 0.1 1" repeatCount="indefinite" dur="1"></animateTransform> </g> <g transform="rotate(325.612 50 50)"> <g ng-attr-transform="translate(50 {{config.cy}})" transform="translate(50 19.6)"> <circle cx="0" cy="0" r="16" ng-attr-fill="{{config.fill}}" ng-attr-transform="scale({{config.scale}})" fill="#ff7c81" transform="scale(0.48)"></circle> </g> <animateTransform attributeName="transform" calcMode="spline" type="rotate" values="0 50 50;360 50 50" keyTimes="0;1" ng-attr-dur="{{config.speed2}}" keySplines="0.23333333333333334 0 0.13333333333333333 1" repeatCount="indefinite" dur="1"></animateTransform> </g> <g transform="rotate(322.212 50 50)"> <g ng-attr-transform="translate(50 {{config.cy}})" transform="translate(50 19.6)"> <circle cx="0" cy="0" r="15" ng-attr-fill="{{config.fill}}" ng-attr-transform="scale({{config.scale}})" fill="#ff7c81" transform="scale(0.48)"></circle> </g> <animateTransform attributeName="transform" calcMode="spline" type="rotate" values="0 50 50;360 50 50" keyTimes="0;1" ng-attr-dur="{{config.speed2}}" keySplines="0.26666666666666666 0 0.16666666666666666 1" repeatCount="indefinite" dur="1"></animateTransform> </g> <g transform="rotate(318.287 50 50)"> <g ng-attr-transform="translate(50 {{config.cy}})" transform="translate(50 19.6)"> <circle cx="0" cy="0" r="14" ng-attr-fill="{{config.fill}}" ng-attr-transform="scale({{config.scale}})" fill="#ff7c81" transform="scale(0.48)"></circle> </g> <animateTransform attributeName="transform" calcMode="spline" type="rotate" values="0 50 50;360 50 50" keyTimes="0;1" ng-attr-dur="{{config.speed2}}" keySplines="0.30000000000000004 0 0.2 1" repeatCount="indefinite" dur="1"></animateTransform> </g> <g transform="rotate(314.708 50 50)"> <g ng-attr-transform="translate(50 {{config.cy}})" transform="translate(50 19.6)"> <circle cx="0" cy="0" r="13" ng-attr-fill="{{config.fill}}" ng-attr-transform="scale({{config.scale}})" fill="#ff7c81" transform="scale(0.48)"></circle> </g> <animateTransform attributeName="transform" calcMode="spline" type="rotate" values="0 50 50;360 50 50" keyTimes="0;1" ng-attr-dur="{{config.speed2}}" keySplines="0.33333333333333337 0 0.23333333333333334 1" repeatCount="indefinite" dur="1"></animateTransform> </g> <g transform="rotate(309.018 50 50)"> <g ng-attr-transform="translate(50 {{config.cy}})" transform="translate(50 19.6)"> <circle cx="0" cy="0" r="12" ng-attr-fill="{{config.fill}}" ng-attr-transform="scale({{config.scale}})" fill="#ff7c81" transform="scale(0.48)"></circle> </g> <animateTransform attributeName="transform" calcMode="spline" type="rotate" values="0 50 50;360 50 50" keyTimes="0;1" ng-attr-dur="{{config.speed2}}" keySplines="0.3666666666666667 0 0.26666666666666666 1" repeatCount="indefinite" dur="1"></animateTransform> </g> <g transform="rotate(302.443 50 50)"> <g ng-attr-transform="translate(50 {{config.cy}})" transform="translate(50 19.6)"> <circle cx="0" cy="0" r="11" ng-attr-fill="{{config.fill}}" ng-attr-transform="scale({{config.scale}})" fill="#ff7c81" transform="scale(0.48)"></circle> </g> <animateTransform attributeName="transform" calcMode="spline" type="rotate" values="0 50 50;360 50 50" keyTimes="0;1" ng-attr-dur="{{config.speed2}}" keySplines="0.4 0 0.3 1" repeatCount="indefinite" dur="1"></animateTransform> </g> <g transform="rotate(294.767 50 50)"> <g ng-attr-transform="translate(50 {{config.cy}})" transform="translate(50 19.6)"> <circle cx="0" cy="0" r="10" ng-attr-fill="{{config.fill}}" ng-attr-transform="scale({{config.scale}})" fill="#ff7c81" transform="scale(0.48)"></circle> </g> <animateTransform attributeName="transform" calcMode="spline" type="rotate" values="0 50 50;360 50 50" keyTimes="0;1" ng-attr-dur="{{config.speed2}}" keySplines="0.43333333333333335 0 0.3333333333333333 1" repeatCount="indefinite" dur="1"></animateTransform> </g> <g transform="rotate(285.715 50 50)"> <g ng-attr-transform="translate(50 {{config.cy}})" transform="translate(50 19.6)"> <circle cx="0" cy="0" r="9" ng-attr-fill="{{config.fill}}" ng-attr-transform="scale({{config.scale}})" fill="#ff7c81" transform="scale(0.48)"></circle> </g> <animateTransform attributeName="transform" calcMode="spline" type="rotate" values="0 50 50;360 50 50" keyTimes="0;1" ng-attr-dur="{{config.speed2}}" keySplines="0.4666666666666667 0 0.36666666666666664 1" repeatCount="indefinite" dur="1"></animateTransform> </g> <g transform="rotate(274.96 50 50)"> <g ng-attr-transform="translate(50 {{config.cy}})" transform="translate(50 19.6)"> <circle cx="0" cy="0" r="8" ng-attr-fill="{{config.fill}}" ng-attr-transform="scale({{config.scale}})" fill="#ff7c81" transform="scale(0.48)"></circle> </g> <animateTransform attributeName="transform" calcMode="spline" type="rotate" values="0 50 50;360 50 50" keyTimes="0;1" ng-attr-dur="{{config.speed2}}" keySplines="0.5 0 0.4 1" repeatCount="indefinite" dur="1"></animateTransform> </g> <g transform="rotate(263.29 50 50)"> <g ng-attr-transform="translate(50 {{config.cy}})" transform="translate(50 19.6)"> <circle cx="0" cy="0" r="7" ng-attr-fill="{{config.fill}}" ng-attr-transform="scale({{config.scale}})" fill="#ff7c81" transform="scale(0.48)"></circle> </g> <animateTransform attributeName="transform" calcMode="spline" type="rotate" values="0 50 50;360 50 50" keyTimes="0;1" ng-attr-dur="{{config.speed2}}" keySplines="0.5333333333333333 0 0.43333333333333335 1" repeatCount="indefinite" dur="1"></animateTransform> </g> <g transform="rotate(247.243 50 50)"> <g ng-attr-transform="translate(50 {{config.cy}})" transform="translate(50 19.6)"> <circle cx="0" cy="0" r="6" ng-attr-fill="{{config.fill}}" ng-attr-transform="scale({{config.scale}})" fill="#ff7c81" transform="scale(0.48)"></circle> </g> <animateTransform attributeName="transform" calcMode="spline" type="rotate" values="0 50 50;360 50 50" keyTimes="0;1" ng-attr-dur="{{config.speed2}}" keySplines="0.5666666666666667 0 0.4666666666666667 1" repeatCount="indefinite" dur="1"></animateTransform> </g> <g transform="rotate(233.28 50 50)"> <g ng-attr-transform="translate(50 {{config.cy}})" transform="translate(50 19.6)"> <circle cx="0" cy="0" r="5" ng-attr-fill="{{config.fill}}" ng-attr-transform="scale({{config.scale}})" fill="#ff7c81" transform="scale(0.48)"></circle> </g> <animateTransform attributeName="transform" calcMode="spline" type="rotate" values="0 50 50;360 50 50" keyTimes="0;1" ng-attr-dur="{{config.speed2}}" keySplines="0.6 0 0.5 1" repeatCount="indefinite" dur="1"></animateTransform> </g> <g transform="rotate(210.448 50 50)"> <g ng-attr-transform="translate(50 {{config.cy}})" transform="translate(50 19.6)"> <circle cx="0" cy="0" r="4" ng-attr-fill="{{config.fill}}" ng-attr-transform="scale({{config.scale}})" fill="#ff7c81" transform="scale(0.48)"></circle> </g> <animateTransform attributeName="transform" calcMode="spline" type="rotate" values="0 50 50;360 50 50" keyTimes="0;1" ng-attr-dur="{{config.speed2}}" keySplines="0.6333333333333333 0 0.5333333333333333 1" repeatCount="indefinite" dur="1"></animateTransform> </g> <g transform="rotate(189.723 50 50)"> <g ng-attr-transform="translate(50 {{config.cy}})" transform="translate(50 19.6)"> <circle cx="0" cy="0" r="3" ng-attr-fill="{{config.fill}}" ng-attr-transform="scale({{config.scale}})" fill="#ff7c81" transform="scale(0.48)"></circle> </g> <animateTransform attributeName="transform" calcMode="spline" type="rotate" values="0 50 50;360 50 50" keyTimes="0;1" ng-attr-dur="{{config.speed2}}" keySplines="0.6666666666666666 0 0.5666666666666667 1" repeatCount="indefinite" dur="1"></animateTransform> </g> <g transform="rotate(167.547 50 50)"> <g ng-attr-transform="translate(50 {{config.cy}})" transform="translate(50 19.6)"> <circle cx="0" cy="0" r="2" ng-attr-fill="{{config.fill}}" ng-attr-transform="scale({{config.scale}})" fill="#ff7c81" transform="scale(0.48)"></circle> </g> <animateTransform attributeName="transform" calcMode="spline" type="rotate" values="0 50 50;360 50 50" keyTimes="0;1" ng-attr-dur="{{config.speed2}}" keySplines="0.7 0 0.6 1" repeatCount="indefinite" dur="1"></animateTransform> </g> <g transform="rotate(151.39 50 50)"> <g ng-attr-transform="translate(50 {{config.cy}})" transform="translate(50 19.6)"> <circle cx="0" cy="0" r="1" ng-attr-fill="{{config.fill}}" ng-attr-transform="scale({{config.scale}})" fill="#ff7c81" transform="scale(0.48)"></circle> </g> <animateTransform attributeName="transform" calcMode="spline" type="rotate" values="0 50 50;360 50 50" keyTimes="0;1" ng-attr-dur="{{config.speed2}}" keySplines="0.7333333333333333 0 0.6333333333333333 1" repeatCount="indefinite" dur="1"></animateTransform> </g> <g transform="rotate(134.242 50 50)"> <g ng-attr-transform="translate(50 {{config.cy}})" transform="translate(50 19.6)"> <circle cx="0" cy="0" r="0" ng-attr-fill="{{config.fill}}" ng-attr-transform="scale({{config.scale}})" fill="#ff7c81" transform="scale(0.48)"></circle> </g> <animateTransform attributeName="transform" calcMode="spline" type="rotate" values="0 50 50;360 50 50" keyTimes="0;1" ng-attr-dur="{{config.speed2}}" keySplines="0.7666666666666666 0 0.6666666666666666 1" repeatCount="indefinite" dur="1"></animateTransform> </g> </g> </svg>');
imageUri = loadingImage;
try {
fetch('https://logos.kiwibrowser.com/' + rootDomain).then(function(response) {
return response.arrayBuffer();
})
.then(function(answer) {
localStorage.setItem('icon-' + rootDomain, 'data:image/png;base64,' + arrayBufferToBase64(answer));
document.getElementById('icon' + randomId).src = 'data:image/png;base64,' + arrayBufferToBase64(answer);
console.log('Icon for ' + rootDomain + ' is now fetched');
});
} catch (err) {
console.log('Fetch failed for: ' + err.message);
}
}
innerDiv.innerHTML = '<img id="closeImg" src="' + closeImg + '" class="closeImg closeImgInvisible" height="20" width="20" style="position: absolute; right: 0px; border: 0px;" /><a id="tile_target" href="' + item.url + '"><img border="0" class="grid-image" title="' + item.url + '" src="' + imageUri + '" id="icon' + randomId + '" onError="invalidate_image(this)" width="64" style="max-height: 64px; border-radius: 4px;" /><span style="width: 60px; line-height: 15px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; display: inline-block">' + rootDomain + '</span></a>';
innerDiv.style.minHeight = '64px';
innerDiv.querySelector('#closeImg').addEventListener("touchstart", remove_favorite);
innerDiv.querySelector('#tile_target').addEventListener("touchstart", process_start);
document.body.addEventListener("click", process_body_click);
innerDiv.querySelector('#tile_target').addEventListener("touchend", process_cancel);
document.getElementById('bookmarks-grid').appendChild(innerDiv);
}
var globalGrid = false;
var bookmarksGrid = document.getElementById("bookmarks-grid");
function save_grid_snapshot()
{
if (!document.getElementById('bookmarks-grid').style.cssText)
return ;
// Maximum 1 update per 0.1s (100ms)
if ((typeof localStorage.cachedGridUpdate == "undefined") || ((Date.now() / 1000) - localStorage.cachedGridUpdate) >= 0.1) {
localStorage.cachedGrid = document.getElementById('bookmarks-grid').innerHTML;
localStorage.cachedGridStyle = document.getElementById('bookmarks-grid').style.cssText;
console.log("Saving grid snapshot and style is " + localStorage.cachedGridStyle);
localStorage.cachedGridUpdate = (Date.now() / 1000);
}
}
function add_to_storage(el)
{
var storedItems = JSON.parse(localStorage.storedItems);
offset = storedItems.length;
var url = el.querySelector('#tile_target').href;
storedItems[offset] = {url: url}
localStorage.storedItems = JSON.stringify(storedItems);
console.log("Add to storage, adding to offset " + offset + " the URL: " + url);
}
function swap_if_ready()
{
if (bookmarksGrid.style.cssText.includes("height"))
{
document.getElementById('fake-bookmarks-grid').style.display='none';
bookmarksGrid.classList.remove("full-hidden");
}
}
function fetch_tiles_from_most_visited()
{
if (typeof localStorage.useCustomTiles == "undefined" || localStorage.useCustomTiles == "false") {
if (typeof window.chrome.embeddedSearch != "undefined" && chrome.embeddedSearch.newTabPage.mostVisitedAvailable) {
localStorage.storedItems = JSON.stringify([]);
var pages = chrome.embeddedSearch.newTabPage.mostVisited;
var storedItems = JSON.parse(localStorage.storedItems);
for (var i = 0; i < Math.min(8, pages.length); ++i) {
offset = storedItems.length;
console.log('Loading most visited: ' + pages[i].rid);
storedItems[offset] = {url: chrome.embeddedSearch.newTabPage.getMostVisitedItemData(pages[i].rid).url}
add_favorite(storedItems[offset]);
}
localStorage.storedItems = JSON.stringify(storedItems);
}
}
}
function toggle_edit_mode()
{
if (globalGrid.isDragifierOn()) {
iseditable = false;
globalGrid.dragifierOff();
Array.prototype.forEach.call(document.getElementsByClassName("grid-item"), function (el) { el.style.WebkitAnimation = 'none'; });
Array.prototype.forEach.call(document.getElementsByClassName('closeImg'), function (el) { el.classList.add('closeImgInvisible'); });
} else {
iseditable = true;
globalGrid.dragifierOn();
Array.prototype.forEach.call(document.getElementsByClassName("grid-item"), function (el) { el.style.WebkitAnimation = 'shadow-inset-center 0.4s cubic-bezier(0.250, 0.460, 0.450, 0.940) both'; });
Array.prototype.forEach.call(document.getElementsByClassName('closeImg'), function (el) { el.classList.remove('closeImgInvisible'); });
}
window.setTimeout(function () { save_grid_snapshot(); }, 100);
}
window.onclick = function(event) {
if (!event.target.matches('.dropbtn') && !event.target.matches('#locale') && !event.target.matches('.arrow-down')) {
var dropdowns = document.getElementsByClassName("dropdown-content");
var i;
for (i = 0; i < dropdowns.length; i++) {
var openDropdown = dropdowns[i];
if (openDropdown.classList.contains('show')) {
openDropdown.classList.remove('show');
}
}
}
}
function create_new_item()
{
preconnectTo('https://logos.kiwibrowser.com');
var url = prompt("Введите адрес веб-сайта:", "https://");
url = url.trim();
url = url.replace(' ', '.');
var parser = document.createElement('a');
parser.href = url;
// Our intent is buzz.blogspot.com to stay buzz.blogspot.com
// and m.wikipedia.org to become wikipedia.org
var rootDomain = psl.get(parser.hostname);
if (!rootDomain)
return ;
if (typeof localStorage.storedItems == "undefined" || localStorage.storedItems == "")
localStorage.storedItems = JSON.stringify([]);
var storedItems = JSON.parse(localStorage.storedItems);
offset = storedItems.length;
storedItems[offset] = {url: url}
add_favorite(storedItems[offset]);
localStorage.storedItems = JSON.stringify(storedItems);
globalGrid.toggle("scaleWithFade");
globalGrid.appendNew();
window.setTimeout(function () { save_grid_snapshot(); }, 200);
window.setTimeout(function () { save_grid_snapshot(); }, 800);
localStorage.useCustomTiles = "true";
}
</script>
<script>
function preconnectTo(url) {
var hint = document.createElement("link");
hint.rel = "preconnect";
hint.href = url;
document.head.appendChild(hint);
}
</script>
<div id="most-visited" style="display: none;">
<!-- The container for the tiles. The MV iframe goes in here. -->
<div id="mv-tiles"></div>
<!-- Notification shown when a tile is blacklisted. -->
<div id="mv-notice-container">
<div id="mv-notice" class="mv-notice-hide" role="alert">
<span id="mv-msg"></span>
<!-- Links in the notification. -->
<span id="mv-notice-links">
<span id="mv-undo" class="ripple" tabindex="0" role="button"></span>
<span id="mv-restore" class="ripple" tabindex="0" role="button">
</span>
<div id="mv-notice-x" tabindex="0" role="button"></div>
</span>
</div>
</div>
</div>
<div id="attribution"><div id="attribution-text"></div></div>
<div id="edit-bg" tabindex="0" hidden>
<button id="edit-bg-gear"></button>
</div>
<div id="edit-bg-overlay">
<div id="edit-bg-dialog">
<div id="edit-bg-title"></div>
<div id="edit-bg-google-photos" class="bg-option" tabindex="0" hidden>
<div class="bg-option-img"></div>
<div id="edit-bg-google-photos-text" class="bg-option-text"></div>
</div>
<div id="edit-bg-default-wallpapers" class="bg-option" tabindex="0">
<div class="bg-option-img"></div>
<div id="edit-bg-default-wallpapers-text" class="bg-option-text">
</div>
</div>
<div id="edit-bg-upload-image" class="bg-option" tabindex="0" hidden>
<div class="bg-option-img"></div>
<div id="edit-bg-upload-image-text" class="bg-option-text"></div>
</div>
<div id="edit-bg-restore-default" class="bg-option" tabindex="0">
<div class="bg-option-img"></div>
<div id="edit-bg-restore-default-text" class="bg-option-text"></div>
</div>
</div>
</div>
</div>
<dialog id="bg-sel-menu-overlay">
<div id="bg-sel-menu">
<div id="bg-sel-title-bar">
<div id="bg-sel-back"></div>
<div id="bg-sel-title"></div>
</div>
<div id="bg-sel-tiles"></div>
<div id="bg-sel-footer">
<label id="bg-daily-refresh" class="switch">
<input type="checkbox">
<span class="toggle"></span>
</label>
<div id="bg-sel-refresh-text"></div>
<div id="bg-sel-footer-done"></div>
</div>
</div>
</dialog>
<dialog id="voice-overlay-dialog" class="overlay-dialog">
<div id="voice-overlay" class="overlay-hidden">
<button id="voice-close-button" class="close-button">×</button>
<div id="voice-outer" class="outer">
<div class="inner-container">
<div id="voice-button-container" class="button-container">
<!-- The audio level animation. -->
<span id="voice-level" class="level"></span>
<!-- The microphone button. -->
<span id="voice-button" class="button">
<!-- The microphone icon (in CSS). -->
<div class="microphone">
<span class="receiver"></span>
<div class="wrapper">
<span class="stem"></span>
<span class="shell"></span>
</div>
</div>
</span>
</div>
<div class="text-container">
<!-- Low confidence text underneath high confidence text. -->
<span id="voice-text-i" class="voice-text"></span>
<!-- High confidence text on top of low confidence text. -->
<span id="voice-text-f" class="voice-text"></span>
</div>
</div>
</div>
</div>
</dialog>
<div style="clear: both;"></div>
<br />
<br />
<script>
</script>
<br /> <br />
<script async defer src="./local_ntp.js"
{{LOCAL_NTP_INTEGRITY}}></script>
</body>
</html>