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

Unified Diff: components/dom_distiller/core/viewer.cc

Issue 430473007: Font Family Preferences for Distilled Pages (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: synced 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
« no previous file with comments | « components/dom_distiller/core/viewer.h ('k') | components/dom_distiller/core/viewer_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/dom_distiller/core/viewer.cc
diff --git a/components/dom_distiller/core/viewer.cc b/components/dom_distiller/core/viewer.cc
index 7e0eb285951e30de96f6a208f16c71feab5a07cc..57d547320558cdde5e4f44f212c234aa658fa6ee 100644
--- a/components/dom_distiller/core/viewer.cc
+++ b/components/dom_distiller/core/viewer.cc
@@ -34,11 +34,21 @@ const char kDarkJsTheme[] = "dark";
const char kLightJsTheme[] = "light";
const char kSepiaJsTheme[] = "sepia";
-// CSS classes. Must agree with classes in distilledpage.css.
+// CSS Theme classes. Must agree with classes in distilledpage.css.
const char kDarkCssClass[] = "dark";
const char kLightCssClass[] = "light";
const char kSepiaCssClass[] = "sepia";
+// JS FontFamilies. Must agree with useFontFamily() in dom_distiller_viewer.js.
+const char kSerifJsFontFamily[] = "serif";
+const char kSansSerifJsFontFamily[] = "sans-serif";
+const char kMonospaceJsFontFamily[] = "monospace";
+
+// CSS FontFamily classes. Must agree with classes in distilledpage.css.
+const char kSerifCssClass[] = "serif";
+const char kSansSerifCssClass[] = "sans-serif";
+const char kMonospaceCssClass[] = "monospace";
+
// Maps themes to JS themes.
const std::string GetJsTheme(DistilledPagePrefs::Theme theme) {
if (theme == DistilledPagePrefs::DARK) {
@@ -50,7 +60,7 @@ const std::string GetJsTheme(DistilledPagePrefs::Theme theme) {
}
// Maps themes to CSS classes.
-const std::string GetCssClass(DistilledPagePrefs::Theme theme) {
+const std::string GetThemeCssClass(DistilledPagePrefs::Theme theme) {
if (theme == DistilledPagePrefs::DARK) {
return kDarkCssClass;
} else if (theme == DistilledPagePrefs::SEPIA) {
@@ -59,12 +69,33 @@ const std::string GetCssClass(DistilledPagePrefs::Theme theme) {
return kLightCssClass;
}
+// Maps font families to JS font families.
+const std::string GetJsFontFamily(DistilledPagePrefs::FontFamily font_family) {
+ if (font_family == DistilledPagePrefs::SERIF) {
+ return kSerifJsFontFamily;
+ } else if (font_family == DistilledPagePrefs::MONOSPACE) {
+ return kMonospaceJsFontFamily;
+ }
+ return kSansSerifJsFontFamily;
+}
+
+// Maps fontFamilies to CSS fontFamily classes.
+const std::string GetFontCssClass(DistilledPagePrefs::FontFamily font_family) {
+ if (font_family == DistilledPagePrefs::SERIF) {
+ return kSerifCssClass;
+ } else if (font_family == DistilledPagePrefs::MONOSPACE) {
+ return kMonospaceCssClass;
+ }
+ return kSansSerifCssClass;
+}
+
std::string ReplaceHtmlTemplateValues(
const std::string& title,
const std::string& content,
const std::string& loading_indicator_class,
const std::string& original_url,
- const DistilledPagePrefs::Theme theme) {
+ const DistilledPagePrefs::Theme theme,
+ const DistilledPagePrefs::FontFamily font_family) {
base::StringPiece html_template =
ResourceBundle::GetSharedInstance().GetRawDataResource(
IDR_DOM_DISTILLER_VIEWER_HTML);
@@ -72,7 +103,8 @@ std::string ReplaceHtmlTemplateValues(
substitutions.push_back(title); // $1
substitutions.push_back(kViewerCssPath); // $2
substitutions.push_back(kViewerJsPath); // $3
- substitutions.push_back(GetCssClass(theme)); // $4
+ substitutions.push_back(GetThemeCssClass(theme) + " " +
+ GetFontCssClass(font_family)); // $4
substitutions.push_back(content); // $5
substitutions.push_back(loading_indicator_class); // $6
substitutions.push_back(original_url); // $7
@@ -107,23 +139,22 @@ const std::string GetToggleLoadingIndicatorJs(const bool is_last_page) {
const std::string GetUnsafePartialArticleHtml(
const DistilledPageProto* page_proto,
- const DistilledPagePrefs::Theme theme) {
+ const DistilledPagePrefs::Theme theme,
+ const DistilledPagePrefs::FontFamily font_family) {
DCHECK(page_proto);
std::string title = net::EscapeForHTML(page_proto->title());
std::ostringstream unsafe_output_stream;
unsafe_output_stream << page_proto->html();
std::string unsafe_article_html = unsafe_output_stream.str();
std::string original_url = page_proto->url();
- return ReplaceHtmlTemplateValues(title,
- unsafe_article_html,
- "visible",
- original_url,
- theme);
+ return ReplaceHtmlTemplateValues(
+ title, unsafe_article_html, "visible", original_url, theme, font_family);
}
const std::string GetUnsafeArticleHtml(
const DistilledArticleProto* article_proto,
- const DistilledPagePrefs::Theme theme) {
+ const DistilledPagePrefs::Theme theme,
+ const DistilledPagePrefs::FontFamily font_family) {
DCHECK(article_proto);
std::string title;
std::string unsafe_article_html;
@@ -146,19 +177,19 @@ const std::string GetUnsafeArticleHtml(
original_url = article_proto->pages(0).url();
}
- return ReplaceHtmlTemplateValues(title,
- unsafe_article_html,
- "hidden",
- original_url,
- theme);
+ return ReplaceHtmlTemplateValues(
+ title, unsafe_article_html, "hidden", original_url, theme, font_family);
}
-const std::string GetErrorPageHtml(const DistilledPagePrefs::Theme theme) {
+const std::string GetErrorPageHtml(
+ const DistilledPagePrefs::Theme theme,
+ const DistilledPagePrefs::FontFamily font_family) {
std::string title = l10n_util::GetStringUTF8(
IDS_DOM_DISTILLER_VIEWER_FAILED_TO_FIND_ARTICLE_TITLE);
std::string content = l10n_util::GetStringUTF8(
IDS_DOM_DISTILLER_VIEWER_FAILED_TO_FIND_ARTICLE_CONTENT);
- return ReplaceHtmlTemplateValues(title, content, "hidden", "", theme);
+ return ReplaceHtmlTemplateValues(
+ title, content, "hidden", "", theme, font_family);
}
const std::string GetCss() {
@@ -213,6 +244,11 @@ const std::string GetDistilledPageThemeJs(DistilledPagePrefs::Theme theme) {
return "useTheme('" + GetJsTheme(theme) + "');";
}
+const std::string GetDistilledPageFontFamilyJs(
+ DistilledPagePrefs::FontFamily font_family) {
+ return "useFontFamily('" + GetJsFontFamily(font_family) + "');";
+}
+
} // namespace viewer
} // namespace dom_distiller
« no previous file with comments | « components/dom_distiller/core/viewer.h ('k') | components/dom_distiller/core/viewer_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698