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

Side by Side Diff: chrome/browser/resources/ntp4/md_incognito_tab.js

Issue 2905433002: Refresh the Incognito NTP layout on default font size change (Closed)
Patch Set: classList.toggle Created 3 years, 7 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 unified diff | Download patch
« no previous file with comments | « no previous file | chrome/browser/ui/webui/ntp/new_tab_ui.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Handle the bookmark bar and theme change requests from the C++ side.
6 var ntp = {
7 /** @param {string} attached */
8 setBookmarkBarAttached: function(attached) {
9 document.documentElement.setAttribute('bookmarkbarattached', attached);
10 },
11
12 /** @param {!{hasCustomBackground: boolean}} themeData */
13 themeChanged: function(themeData) {
14 document.documentElement.setAttribute('hascustombackground',
15 themeData.hasCustomBackground);
16 $('incognitothemecss').href =
17 'chrome://theme/css/incognito_new_tab_theme.css?' + Date.now();
18 },
19 };
20
21 // Let the width of two lists of bulletpoints in a horizontal alignment 5 // Let the width of two lists of bulletpoints in a horizontal alignment
22 // determine the maximum content width. 6 // determine the maximum content width.
23 window.addEventListener('load', function() { 7 function recomputeLayoutWidth() {
24 var bulletpoints = document.querySelectorAll('.bulletpoints'); 8 var bulletpoints = document.querySelectorAll('.bulletpoints');
25 var content = document.querySelector('.content'); 9 var content = document.querySelector('.content');
26 10
27 // Unless this is the first load of the Incognito NTP in this session and 11 // Unless this is the first load of the Incognito NTP in this session and
28 // with this font size, we already have the maximum content width determined. 12 // with this font size, we already have the maximum content width determined.
29 var fontSize = window.getComputedStyle(document.body).fontSize; 13 var fontSize = window.getComputedStyle(document.body).fontSize;
30 var maxWidth = localStorage[fontSize] || 14 var maxWidth = localStorage[fontSize] ||
31 (bulletpoints[0].offsetWidth + bulletpoints[1].offsetWidth + 15 (bulletpoints[0].offsetWidth + bulletpoints[1].offsetWidth +
32 40 /* margin */ + 2 /* offsetWidths may be rounded down */); 16 40 /* margin */ + 2 /* offsetWidths may be rounded down */);
33 17
34 // Save the data for quicker access when the NTP is reloaded. Note that since 18 // Save the data for quicker access when the NTP is reloaded. Note that since
35 // we're in the Incognito mode, the local storage is ephemeral and the data 19 // we're in the Incognito mode, the local storage is ephemeral and the data
36 // will be discarded when the session ends. 20 // will be discarded when the session ends.
37 localStorage[fontSize] = maxWidth; 21 localStorage[fontSize] = maxWidth;
38 22
39 // Limit the maximum width to 600px. That might force the two lists 23 // Limit the maximum width to 600px. That might force the two lists
40 // of bulletpoints under each other, in which case we must swap the left 24 // of bulletpoints under each other, in which case we must swap the left
41 // and right margin. 25 // and right margin.
42 if (maxWidth > 600) { 26 var MAX_ALLOWED_WIDTH = 600;
43 maxWidth = 600; 27 var tooWide = maxWidth > MAX_ALLOWED_WIDTH;
44 28 bulletpoints[1].classList.toggle('tooWide', tooWide);
Dan Beam 2017/05/25 01:02:39 classes should be dash-form
msramek 2017/05/25 01:49:35 Done.
45 bulletpoints[1].classList.add('tooWide'); 29 if (tooWide)
46 } 30 maxWidth = MAX_ALLOWED_WIDTH;
47 31
48 content.style.maxWidth = maxWidth + "px"; 32 content.style.maxWidth = maxWidth + "px";
49 }); 33 }
34
35 window.addEventListener('load', recomputeLayoutWidth);
36
37 // Handle the bookmark bar, theme, and font size change requests
38 // from the C++ side.
39 var ntp = {
40 /** @param {string} attached */
41 setBookmarkBarAttached: function(attached) {
42 document.documentElement.setAttribute('bookmarkbarattached', attached);
43 },
44
45 /** @param {!{hasCustomBackground: boolean}} themeData */
46 themeChanged: function(themeData) {
47 document.documentElement.setAttribute('hascustombackground',
48 themeData.hasCustomBackground);
49 $('incognitothemecss').href =
50 'chrome://theme/css/incognito_new_tab_theme.css?' + Date.now();
51 },
52
53 defaultFontSizeChanged: function() {
54 setTimeout(recomputeLayoutWidth, 100);
Dan Beam 2017/05/25 01:02:39 why are you doing this on a 100ms delay? can we u
msramek 2017/05/25 01:49:35 No, that's still too soon. There is simply a dela
Dan Beam 2017/05/25 03:11:27 for what it's worth, there's a very very low chanc
55 }
56 };
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/ui/webui/ntp/new_tab_ui.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698