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

Unified Diff: chrome/browser/resources/local_ntp/most_visited_util.js

Issue 512583002: [Local NTP] Implement style updates for Material Design (Closed) Base URL: http://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 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
Index: chrome/browser/resources/local_ntp/most_visited_util.js
diff --git a/chrome/browser/resources/local_ntp/most_visited_util.js b/chrome/browser/resources/local_ntp/most_visited_util.js
index 91aa804e4d0654075ba1e2848982c543ffa742a6..b6e26748430c4496c79c3d25d442a91ce195380f 100644
--- a/chrome/browser/resources/local_ntp/most_visited_util.js
+++ b/chrome/browser/resources/local_ntp/most_visited_util.js
@@ -162,6 +162,38 @@ function createMostVisitedLink(params, href, title, text, direction, provider) {
/**
+ * Returns the color to display string with, depending on whether title is
+ * displayed, the current theme, and URL parameters.
+ * @param {Object.<string, string>} params URL parameters specifying style.
+ * @param {boolean} isTitle if the style is for the Most Visited Title.
+ * @return {string} The color to use.
Mathieu 2014/08/27 14:54:53 nit: can you mention output format
huangs 2014/08/27 18:13:52 Done.
+ */
+function getTextColor(params, isTitle) {
+ // 'RRGGBBAA' color format overrides everything.
+ if ('c' in params && params.c.match(/^[0-9A-Fa-f]{8}$/)) {
+ // Extract the 4 pairs of hex digits, map to number, then form rgba().
+ var t = params.c.match(/(..)(..)(..)(..)/).slice(1).map(function(s) {
+ return parseInt(s, 16);
+ });
+ return 'rgba(' + t[0] + ',' + t[1] + ',' + t[2] + ',' + t[3] / 255 + ')';
+ }
+
+ // For backward compatibility with server-side NTP, look at themes directly
Mathieu 2014/08/27 14:54:53 nit: have you tested with server ntp to make sure
huangs 2014/08/27 18:13:52 Yeah it's easy to test.
+ // and use param.c for non-title or as fallback.
+ var apiHandle = chrome.embeddedSearch.newTabPage;
+ var themeInfo = apiHandle.themeBackgroundInfo;
+ var c = '#777';
+ if (isTitle && themeInfo && !themeInfo.usingDefaultTheme) {
+ // read from theme directly
+ c = convertArrayToRGBAColor(themeInfo.textColorRgba) || c;
+ } else if ('c' in params) {
+ c = convertToHexColor(parseInt(params.c, 16)) || c;
+ }
+ return c;
+}
+
+
+/**
* Decodes most visited styles from URL parameters.
* - c: A hexadecimal number interpreted as a hex color code.
* - f: font-family.
@@ -174,18 +206,10 @@ function createMostVisitedLink(params, href, title, text, direction, provider) {
*/
function getMostVisitedStyles(params, isTitle) {
var styles = {
- color: '#777',
+ color: getTextColor(params, isTitle), // Handles 'c' in params.
fontFamily: '',
fontSize: 11
};
- var apiHandle = chrome.embeddedSearch.newTabPage;
- var themeInfo = apiHandle.themeBackgroundInfo;
- if (isTitle && themeInfo && !themeInfo.usingDefaultTheme) {
- styles.color = convertArrayToRGBAColor(themeInfo.textColorRgba) ||
- styles.color;
- } else if ('c' in params) {
- styles.color = convertToHexColor(parseInt(params.c, 16)) || styles.color;
- }
if ('f' in params && /^[-0-9a-zA-Z ,]+$/.test(params.f))
styles.fontFamily = params.f;
if ('fs' in params && isFinite(parseInt(params.fs, 10)))

Powered by Google App Engine
This is Rietveld 408576698