Commit 0681ba03 authored by derat@chromium.org's avatar derat@chromium.org

Reland r285145: Remove RendererPreferences font-rendering enums.

This reverts r285292, but avoids modifying
RendererPreference::subpixel_positioning's default value, as
it appears to be used by layout tests on Android.

BUG=285292
TBR=msw@chromium.org,boliu@chromium.org,jln@chromium.org,jochen@chromium.org

Review URL: https://codereview.chromium.org/417953006

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@285850 0039d316-1c4b-4281-b951-d872f2087c98
parent 1b634d0b
......@@ -30,46 +30,6 @@ namespace android_webview {
namespace {
// 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;
}
}
void PopulateFixedRendererPreferences(RendererPreferences* prefs) {
prefs->tap_multiple_targets_strategy =
content::TAP_MULTIPLE_TARGETS_STRATEGY_NONE;
......@@ -79,11 +39,10 @@ void PopulateFixedRendererPreferences(RendererPreferences* prefs) {
(gfx::GetFontRenderParams(gfx::FontRenderParamsQuery(true), NULL)));
prefs->should_antialias_text = params.antialiasing;
prefs->use_subpixel_positioning = params.subpixel_positioning;
prefs->hinting = GetRendererPreferencesHintingEnum(params.hinting);
prefs->hinting = params.hinting;
prefs->use_autohinter = params.autohinter;
prefs->use_bitmaps = params.use_bitmaps;
prefs->subpixel_rendering =
GetRendererPreferencesSubpixelRenderingEnum(params.subpixel_rendering);
prefs->subpixel_rendering = params.subpixel_rendering;
}
void PopulateFixedWebPreferences(WebPreferences* web_prefs) {
......
......@@ -27,50 +27,6 @@
namespace renderer_preferences_util {
namespace {
#if defined(OS_LINUX) || defined(OS_ANDROID)
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;
}
}
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;
}
}
#endif // defined(OS_LINUX) || defined(OS_ANDROID)
} // namespace
void UpdateFromSystemSettings(
content::RendererPreferences* prefs, Profile* profile) {
const PrefService* pref_service = profile->GetPrefs();
......@@ -136,11 +92,10 @@ void UpdateFromSystemSettings(
(gfx::GetFontRenderParams(gfx::FontRenderParamsQuery(true), NULL)));
prefs->should_antialias_text = params.antialiasing;
prefs->use_subpixel_positioning = params.subpixel_positioning;
prefs->hinting = GetRendererPreferencesHintingEnum(params.hinting);
prefs->hinting = params.hinting;
prefs->use_autohinter = params.autohinter;
prefs->use_bitmaps = params.use_bitmaps;
prefs->subpixel_rendering =
GetRendererPreferencesSubpixelRenderingEnum(params.subpixel_rendering);
prefs->subpixel_rendering = params.subpixel_rendering;
#endif
#if !defined(OS_MACOSX)
......
......@@ -78,8 +78,8 @@ IPC_ENUM_TRAITS(content::FileChooserParams::Mode)
IPC_ENUM_TRAITS(content::MenuItem::Type)
IPC_ENUM_TRAITS(content::NavigationGesture)
IPC_ENUM_TRAITS(content::PageZoom)
IPC_ENUM_TRAITS(content::RendererPreferencesHintingEnum)
IPC_ENUM_TRAITS(content::RendererPreferencesSubpixelRenderingEnum)
IPC_ENUM_TRAITS(gfx::FontRenderParams::Hinting)
IPC_ENUM_TRAITS(gfx::FontRenderParams::SubpixelRendering)
IPC_ENUM_TRAITS_MAX_VALUE(content::TapMultipleTargetsStrategy,
content::TAP_MULTIPLE_TARGETS_STRATEGY_MAX)
IPC_ENUM_TRAITS(content::StopFindAction)
......
......@@ -5,6 +5,7 @@
#include "content/public/common/renderer_preferences.h"
#include "third_party/skia/include/core/SkColor.h"
#include "ui/gfx/font_render_params.h"
namespace {
// The touchpad / touchscreen fling profiles are a matched set
......@@ -21,11 +22,10 @@ namespace content {
RendererPreferences::RendererPreferences()
: can_accept_load_drops(true),
should_antialias_text(true),
hinting(RENDERER_PREFERENCES_HINTING_SYSTEM_DEFAULT),
hinting(gfx::FontRenderParams::HINTING_MEDIUM),
use_autohinter(false),
use_bitmaps(false),
subpixel_rendering(
RENDERER_PREFERENCES_SUBPIXEL_RENDERING_SYSTEM_DEFAULT),
subpixel_rendering(gfx::FontRenderParams::SUBPIXEL_RENDERING_NONE),
use_subpixel_positioning(false),
focus_ring_color(SkColorSetARGB(255, 229, 151, 0)),
thumb_active_color(SkColorSetRGB(244, 244, 244)),
......
......@@ -17,26 +17,10 @@
#include "content/common/content_export.h"
#include "third_party/skia/include/core/SkColor.h"
#include "ui/gfx/font_render_params.h"
namespace content {
enum RendererPreferencesHintingEnum {
RENDERER_PREFERENCES_HINTING_SYSTEM_DEFAULT = 0,
RENDERER_PREFERENCES_HINTING_NONE,
RENDERER_PREFERENCES_HINTING_SLIGHT,
RENDERER_PREFERENCES_HINTING_MEDIUM,
RENDERER_PREFERENCES_HINTING_FULL,
};
enum RendererPreferencesSubpixelRenderingEnum {
RENDERER_PREFERENCES_SUBPIXEL_RENDERING_SYSTEM_DEFAULT = 0,
RENDERER_PREFERENCES_SUBPIXEL_RENDERING_NONE,
RENDERER_PREFERENCES_SUBPIXEL_RENDERING_RGB,
RENDERER_PREFERENCES_SUBPIXEL_RENDERING_BGR,
RENDERER_PREFERENCES_SUBPIXEL_RENDERING_VRGB,
RENDERER_PREFERENCES_SUBPIXEL_RENDERING_VBGR,
};
enum TapMultipleTargetsStrategy {
TAP_MULTIPLE_TARGETS_STRATEGY_ZOOM = 0,
TAP_MULTIPLE_TARGETS_STRATEGY_POPUP,
......@@ -59,7 +43,7 @@ struct CONTENT_EXPORT RendererPreferences {
// The level of hinting to use when rendering text.
// Currently only used by Linux.
RendererPreferencesHintingEnum hinting;
gfx::FontRenderParams::Hinting hinting;
// Whether auto hinter should be used. Currently only used by Linux.
bool use_autohinter;
......@@ -70,7 +54,7 @@ struct CONTENT_EXPORT RendererPreferences {
// The type of subpixel rendering to use for text.
// Currently only used by Linux.
RendererPreferencesSubpixelRenderingEnum subpixel_rendering;
gfx::FontRenderParams::SubpixelRendering subpixel_rendering;
// Whether subpixel positioning should be used, permitting fractional X
// positions for glyphs. Currently only used by Linux.
......
......@@ -11,19 +11,20 @@ using blink::WebFontRendering;
namespace content {
static SkPaint::Hinting RendererPreferencesToSkiaHinting(
namespace {
SkPaint::Hinting RendererPreferencesToSkiaHinting(
const RendererPreferences& prefs) {
if (!prefs.should_antialias_text) {
// When anti-aliasing is off, GTK maps all non-zero hinting settings to
// 'Normal' hinting so we do the same. Otherwise, folks who have 'Slight'
// hinting selected will see readable text in everything expect Chromium.
switch (prefs.hinting) {
case RENDERER_PREFERENCES_HINTING_NONE:
case gfx::FontRenderParams::HINTING_NONE:
return SkPaint::kNo_Hinting;
case RENDERER_PREFERENCES_HINTING_SYSTEM_DEFAULT:
case RENDERER_PREFERENCES_HINTING_SLIGHT:
case RENDERER_PREFERENCES_HINTING_MEDIUM:
case RENDERER_PREFERENCES_HINTING_FULL:
case gfx::FontRenderParams::HINTING_SLIGHT:
case gfx::FontRenderParams::HINTING_MEDIUM:
case gfx::FontRenderParams::HINTING_FULL:
return SkPaint::kNormal_Hinting;
default:
NOTREACHED();
......@@ -32,32 +33,25 @@ static SkPaint::Hinting RendererPreferencesToSkiaHinting(
}
switch (prefs.hinting) {
case RENDERER_PREFERENCES_HINTING_SYSTEM_DEFAULT:
return SkPaint::kNormal_Hinting;
case RENDERER_PREFERENCES_HINTING_NONE:
return SkPaint::kNo_Hinting;
case RENDERER_PREFERENCES_HINTING_SLIGHT:
return SkPaint::kSlight_Hinting;
case RENDERER_PREFERENCES_HINTING_MEDIUM:
return SkPaint::kNormal_Hinting;
case RENDERER_PREFERENCES_HINTING_FULL:
return SkPaint::kFull_Hinting;
case gfx::FontRenderParams::HINTING_NONE: return SkPaint::kNo_Hinting;
case gfx::FontRenderParams::HINTING_SLIGHT: return SkPaint::kSlight_Hinting;
case gfx::FontRenderParams::HINTING_MEDIUM: return SkPaint::kNormal_Hinting;
case gfx::FontRenderParams::HINTING_FULL: return SkPaint::kFull_Hinting;
default:
NOTREACHED();
return SkPaint::kNormal_Hinting;
}
}
static SkFontHost::LCDOrder RendererPreferencesToSkiaLCDOrder(
RendererPreferencesSubpixelRenderingEnum subpixel) {
switch (subpixel) {
case RENDERER_PREFERENCES_SUBPIXEL_RENDERING_SYSTEM_DEFAULT:
case RENDERER_PREFERENCES_SUBPIXEL_RENDERING_NONE:
case RENDERER_PREFERENCES_SUBPIXEL_RENDERING_RGB:
case RENDERER_PREFERENCES_SUBPIXEL_RENDERING_VRGB:
SkFontHost::LCDOrder RendererPreferencesToSkiaLCDOrder(
const RendererPreferences& prefs) {
switch (prefs.subpixel_rendering) {
case gfx::FontRenderParams::SUBPIXEL_RENDERING_NONE:
case gfx::FontRenderParams::SUBPIXEL_RENDERING_RGB:
case gfx::FontRenderParams::SUBPIXEL_RENDERING_VRGB:
return SkFontHost::kRGB_LCDOrder;
case RENDERER_PREFERENCES_SUBPIXEL_RENDERING_BGR:
case RENDERER_PREFERENCES_SUBPIXEL_RENDERING_VBGR:
case gfx::FontRenderParams::SUBPIXEL_RENDERING_BGR:
case gfx::FontRenderParams::SUBPIXEL_RENDERING_VBGR:
return SkFontHost::kBGR_LCDOrder;
default:
NOTREACHED();
......@@ -65,17 +59,15 @@ static SkFontHost::LCDOrder RendererPreferencesToSkiaLCDOrder(
}
}
static SkFontHost::LCDOrientation
RendererPreferencesToSkiaLCDOrientation(
RendererPreferencesSubpixelRenderingEnum subpixel) {
switch (subpixel) {
case RENDERER_PREFERENCES_SUBPIXEL_RENDERING_SYSTEM_DEFAULT:
case RENDERER_PREFERENCES_SUBPIXEL_RENDERING_NONE:
case RENDERER_PREFERENCES_SUBPIXEL_RENDERING_RGB:
case RENDERER_PREFERENCES_SUBPIXEL_RENDERING_BGR:
SkFontHost::LCDOrientation RendererPreferencesToSkiaLCDOrientation(
const RendererPreferences& prefs) {
switch (prefs.subpixel_rendering) {
case gfx::FontRenderParams::SUBPIXEL_RENDERING_NONE:
case gfx::FontRenderParams::SUBPIXEL_RENDERING_RGB:
case gfx::FontRenderParams::SUBPIXEL_RENDERING_BGR:
return SkFontHost::kHorizontal_LCDOrientation;
case RENDERER_PREFERENCES_SUBPIXEL_RENDERING_VRGB:
case RENDERER_PREFERENCES_SUBPIXEL_RENDERING_VBGR:
case gfx::FontRenderParams::SUBPIXEL_RENDERING_VRGB:
case gfx::FontRenderParams::SUBPIXEL_RENDERING_VBGR:
return SkFontHost::kVertical_LCDOrientation;
default:
NOTREACHED();
......@@ -83,34 +75,20 @@ static SkFontHost::LCDOrientation
}
}
static bool RendererPreferencesToAntiAliasFlag(
const RendererPreferences& prefs) {
return prefs.should_antialias_text;
}
static bool RendererPreferencesToSubpixelRenderingFlag(
const RendererPreferences& prefs) {
if (prefs.subpixel_rendering !=
RENDERER_PREFERENCES_SUBPIXEL_RENDERING_SYSTEM_DEFAULT &&
prefs.subpixel_rendering !=
RENDERER_PREFERENCES_SUBPIXEL_RENDERING_NONE) {
return true;
}
return false;
}
} // namespace
void RenderViewImpl::UpdateFontRenderingFromRendererPrefs() {
const RendererPreferences& prefs = renderer_preferences_;
WebFontRendering::setHinting(RendererPreferencesToSkiaHinting(prefs));
WebFontRendering::setAutoHint(prefs.use_autohinter);
WebFontRendering::setUseBitmaps(prefs.use_bitmaps);
WebFontRendering::setLCDOrder(
RendererPreferencesToSkiaLCDOrder(prefs.subpixel_rendering));
WebFontRendering::setLCDOrder(RendererPreferencesToSkiaLCDOrder(prefs));
WebFontRendering::setLCDOrientation(
RendererPreferencesToSkiaLCDOrientation(prefs.subpixel_rendering));
WebFontRendering::setAntiAlias(RendererPreferencesToAntiAliasFlag(prefs));
RendererPreferencesToSkiaLCDOrientation(prefs));
WebFontRendering::setAntiAlias(prefs.should_antialias_text);
WebFontRendering::setSubpixelRendering(
RendererPreferencesToSubpixelRenderingFlag(prefs));
prefs.subpixel_rendering !=
gfx::FontRenderParams::SUBPIXEL_RENDERING_NONE);
WebFontRendering::setSubpixelPositioning(prefs.use_subpixel_positioning);
}
......
......@@ -9,10 +9,10 @@ namespace gfx {
FontRenderParams::FontRenderParams()
: antialiasing(true),
subpixel_positioning(true),
autohinter(true),
use_bitmaps(true),
hinting(HINTING_SLIGHT),
subpixel_rendering(SUBPIXEL_RENDERING_RGB) {
autohinter(false),
use_bitmaps(false),
hinting(HINTING_MEDIUM),
subpixel_rendering(SUBPIXEL_RENDERING_NONE) {
}
FontRenderParams::~FontRenderParams() {}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment