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

Unified Diff: android_webview/native/aw_contents.cc

Issue 23609051: [Android WebView] Use bitmap fonts (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Default hinting again Created 7 years, 3 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 | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: android_webview/native/aw_contents.cc
diff --git a/android_webview/native/aw_contents.cc b/android_webview/native/aw_contents.cc
index 91753e7496befdb393d1b1398ec6e3e3c8fde683..ce3678fc43cd9faaf7891d3673406ebf771285c0 100644
--- a/android_webview/native/aw_contents.cc
+++ b/android_webview/native/aw_contents.cc
@@ -51,6 +51,7 @@
#include "third_party/skia/include/core/SkPicture.h"
#include "ui/base/l10n/l10n_util_android.h"
#include "ui/gfx/android/java_bitmap.h"
+#include "ui/gfx/font_render_params_linux.h"
#include "ui/gfx/image/image.h"
struct AwDrawSWFunctionTable;
@@ -111,6 +112,46 @@ class AwContentsUserData : public base::SupportsUserData::Data {
base::subtle::Atomic32 g_instance_count = 0;
+// TODO(boliu): Deduplicate with chrome/ code.
+content::RendererPreferencesHintingEnum GetRendererPreferencesHintingEnum(
+ gfx::FontRenderParams::Hinting hinting) {
+ switch (hinting) {
+ case gfx::FontRenderParams::HINTING_NONE:
+ return content::RENDERER_PREFERENCES_HINTING_NONE;
+ case gfx::FontRenderParams::HINTING_SLIGHT:
+ return content::RENDERER_PREFERENCES_HINTING_SLIGHT;
+ case gfx::FontRenderParams::HINTING_MEDIUM:
+ return content::RENDERER_PREFERENCES_HINTING_MEDIUM;
+ case gfx::FontRenderParams::HINTING_FULL:
+ return content::RENDERER_PREFERENCES_HINTING_FULL;
+ default:
+ NOTREACHED() << "Unhandled hinting style " << hinting;
+ return content::RENDERER_PREFERENCES_HINTING_SYSTEM_DEFAULT;
+ }
+}
+
+// TODO(boliu): Deduplicate with chrome/ code.
+content::RendererPreferencesSubpixelRenderingEnum
+GetRendererPreferencesSubpixelRenderingEnum(
+ gfx::FontRenderParams::SubpixelRendering subpixel_rendering) {
+ switch (subpixel_rendering) {
+ case gfx::FontRenderParams::SUBPIXEL_RENDERING_NONE:
+ return content::RENDERER_PREFERENCES_SUBPIXEL_RENDERING_NONE;
+ case gfx::FontRenderParams::SUBPIXEL_RENDERING_RGB:
+ return content::RENDERER_PREFERENCES_SUBPIXEL_RENDERING_RGB;
+ case gfx::FontRenderParams::SUBPIXEL_RENDERING_BGR:
+ return content::RENDERER_PREFERENCES_SUBPIXEL_RENDERING_BGR;
+ case gfx::FontRenderParams::SUBPIXEL_RENDERING_VRGB:
+ return content::RENDERER_PREFERENCES_SUBPIXEL_RENDERING_VRGB;
+ case gfx::FontRenderParams::SUBPIXEL_RENDERING_VBGR:
+ return content::RENDERER_PREFERENCES_SUBPIXEL_RENDERING_VBGR;
+ default:
+ NOTREACHED() << "Unhandled subpixel rendering style "
+ << subpixel_rendering;
+ return content::RENDERER_PREFERENCES_SUBPIXEL_RENDERING_SYSTEM_DEFAULT;
+ }
+}
+
} // namespace
// static
@@ -218,10 +259,19 @@ void AwContents::InitAutofillIfNecessary(bool enabled) {
void AwContents::SetAndroidWebViewRendererPrefs() {
content::RendererPreferences* prefs =
web_contents_->GetMutableRendererPrefs();
- prefs->hinting = content::RENDERER_PREFERENCES_HINTING_SLIGHT;
prefs->tap_multiple_targets_strategy =
content::TAP_MULTIPLE_TARGETS_STRATEGY_NONE;
- prefs->use_subpixel_positioning = true;
+
+ // TODO(boliu): Deduplicate with chrome/ code.
+ const gfx::FontRenderParams& params = gfx::GetDefaultWebKitFontRenderParams();
+ prefs->should_antialias_text = params.antialiasing;
+ prefs->use_subpixel_positioning = params.subpixel_positioning;
+ prefs->hinting = GetRendererPreferencesHintingEnum(params.hinting);
+ prefs->use_autohinter = params.autohinter;
+ prefs->use_bitmaps = params.use_bitmaps;
+ prefs->subpixel_rendering =
+ GetRendererPreferencesSubpixelRenderingEnum(params.subpixel_rendering);
+
content::RenderViewHost* host = web_contents_->GetRenderViewHost();
if (host)
host->SyncRendererPrefs();
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698