summaryrefslogtreecommitdiffstats
path: root/webkit/glue
diff options
context:
space:
mode:
authortony@chromium.org <tony@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-05-11 18:05:56 +0000
committertony@chromium.org <tony@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-05-11 18:05:56 +0000
commit2c841f7bb90c00ee360e110983af7f330f5c6958 (patch)
treea06a9df37e314f77ff2c7d17754d6f3cf1f0a56c /webkit/glue
parent344f421534d9fb73559c30dea6ce508ed24d28e3 (diff)
downloadchromium_src-2c841f7bb90c00ee360e110983af7f330f5c6958.zip
chromium_src-2c841f7bb90c00ee360e110983af7f330f5c6958.tar.gz
chromium_src-2c841f7bb90c00ee360e110983af7f330f5c6958.tar.bz2
Add scale factor and 2x resources from webkit and plumb through to ContentClient.
BUG=124158 TEST=Run debug chrome with --default-device-scale-factor=2 and view a textarea with scrollbars. The previously blank assets are now there and chrome no longer crashes. Review URL: https://chromiumcodereview.appspot.com/10383006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@136610 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/glue')
-rw-r--r--webkit/glue/webkit_glue_unittest.cc5
-rw-r--r--webkit/glue/webkitplatformsupport_impl.cc135
-rw-r--r--webkit/glue/webkitplatformsupport_impl.h6
3 files changed, 85 insertions, 61 deletions
diff --git a/webkit/glue/webkit_glue_unittest.cc b/webkit/glue/webkit_glue_unittest.cc
index 5971bc7..39b6208 100644
--- a/webkit/glue/webkit_glue_unittest.cc
+++ b/webkit/glue/webkit_glue_unittest.cc
@@ -104,6 +104,11 @@ class TestWebKitPlatformSupport
return base::StringPiece();
}
+ virtual base::StringPiece GetImageResource(int resource_id,
+ float scale_factor) OVERRIDE {
+ return base::StringPiece();
+ }
+
virtual void GetPlugins(bool,
std::vector<webkit::WebPluginInfo,
std::allocator<webkit::WebPluginInfo> >*) OVERRIDE {
diff --git a/webkit/glue/webkitplatformsupport_impl.cc b/webkit/glue/webkitplatformsupport_impl.cc
index 5b9267d..0849f76 100644
--- a/webkit/glue/webkitplatformsupport_impl.cc
+++ b/webkit/glue/webkitplatformsupport_impl.cc
@@ -381,80 +381,89 @@ WebData loadAudioSpatializationResource(WebKitPlatformSupportImpl* platform,
struct DataResource {
const char* name;
int id;
+ float scale_factor;
};
const DataResource kDataResources[] = {
- { "missingImage", IDR_BROKENIMAGE },
+ { "missingImage", IDR_BROKENIMAGE, 1.0 },
+ { "missingImage@2x", IDR_BROKENIMAGE, 2.0 },
#if defined(OS_ANDROID)
- { "mediaFullscreen", IDR_MEDIA_FULLSCREEN_BUTTON },
+ { "mediaFullscreen", IDR_MEDIA_FULLSCREEN_BUTTON, 1.0 },
#endif
- { "mediaPause", IDR_MEDIA_PAUSE_BUTTON },
- { "mediaPlay", IDR_MEDIA_PLAY_BUTTON },
- { "mediaPlayDisabled", IDR_MEDIA_PLAY_BUTTON_DISABLED },
- { "mediaSoundDisabled", IDR_MEDIA_SOUND_DISABLED },
- { "mediaSoundFull", IDR_MEDIA_SOUND_FULL_BUTTON },
- { "mediaSoundNone", IDR_MEDIA_SOUND_NONE_BUTTON },
- { "mediaSliderThumb", IDR_MEDIA_SLIDER_THUMB },
- { "mediaVolumeSliderThumb", IDR_MEDIA_VOLUME_SLIDER_THUMB },
- { "mediaplayerPause", IDR_MEDIAPLAYER_PAUSE_BUTTON },
- { "mediaplayerPauseHover", IDR_MEDIAPLAYER_PAUSE_BUTTON_HOVER },
- { "mediaplayerPauseDown", IDR_MEDIAPLAYER_PAUSE_BUTTON_DOWN },
- { "mediaplayerPlay", IDR_MEDIAPLAYER_PLAY_BUTTON },
- { "mediaplayerPlayHover", IDR_MEDIAPLAYER_PLAY_BUTTON_HOVER },
- { "mediaplayerPlayDown", IDR_MEDIAPLAYER_PLAY_BUTTON_DOWN },
- { "mediaplayerPlayDisabled", IDR_MEDIAPLAYER_PLAY_BUTTON_DISABLED },
- { "mediaplayerSoundLevel3", IDR_MEDIAPLAYER_SOUND_LEVEL3_BUTTON },
- { "mediaplayerSoundLevel3Hover", IDR_MEDIAPLAYER_SOUND_LEVEL3_BUTTON_HOVER },
- { "mediaplayerSoundLevel3Down", IDR_MEDIAPLAYER_SOUND_LEVEL3_BUTTON_DOWN },
- { "mediaplayerSoundLevel2", IDR_MEDIAPLAYER_SOUND_LEVEL2_BUTTON },
+ { "mediaPause", IDR_MEDIA_PAUSE_BUTTON, 1.0 },
+ { "mediaPlay", IDR_MEDIA_PLAY_BUTTON, 1.0 },
+ { "mediaPlayDisabled", IDR_MEDIA_PLAY_BUTTON_DISABLED, 1.0 },
+ { "mediaSoundDisabled", IDR_MEDIA_SOUND_DISABLED, 1.0 },
+ { "mediaSoundFull", IDR_MEDIA_SOUND_FULL_BUTTON, 1.0 },
+ { "mediaSoundNone", IDR_MEDIA_SOUND_NONE_BUTTON, 1.0 },
+ { "mediaSliderThumb", IDR_MEDIA_SLIDER_THUMB, 1.0 },
+ { "mediaVolumeSliderThumb", IDR_MEDIA_VOLUME_SLIDER_THUMB, 1.0 },
+ { "mediaplayerPause", IDR_MEDIAPLAYER_PAUSE_BUTTON, 1.0 },
+ { "mediaplayerPauseHover", IDR_MEDIAPLAYER_PAUSE_BUTTON_HOVER, 1.0 },
+ { "mediaplayerPauseDown", IDR_MEDIAPLAYER_PAUSE_BUTTON_DOWN, 1.0 },
+ { "mediaplayerPlay", IDR_MEDIAPLAYER_PLAY_BUTTON, 1.0 },
+ { "mediaplayerPlayHover", IDR_MEDIAPLAYER_PLAY_BUTTON_HOVER, 1.0 },
+ { "mediaplayerPlayDown", IDR_MEDIAPLAYER_PLAY_BUTTON_DOWN, 1.0 },
+ { "mediaplayerPlayDisabled", IDR_MEDIAPLAYER_PLAY_BUTTON_DISABLED, 1.0 },
+ { "mediaplayerSoundLevel3", IDR_MEDIAPLAYER_SOUND_LEVEL3_BUTTON, 1.0 },
+ { "mediaplayerSoundLevel3Hover",
+ IDR_MEDIAPLAYER_SOUND_LEVEL3_BUTTON_HOVER, 1.0 },
+ { "mediaplayerSoundLevel3Down",
+ IDR_MEDIAPLAYER_SOUND_LEVEL3_BUTTON_DOWN, 1.0 },
+ { "mediaplayerSoundLevel2", IDR_MEDIAPLAYER_SOUND_LEVEL2_BUTTON, 1.0 },
{ "mediaplayerSoundLevel2Hover",
- IDR_MEDIAPLAYER_SOUND_LEVEL2_BUTTON_HOVER },
- { "mediaplayerSoundLevel2Down", IDR_MEDIAPLAYER_SOUND_LEVEL2_BUTTON_DOWN },
- { "mediaplayerSoundLevel1", IDR_MEDIAPLAYER_SOUND_LEVEL1_BUTTON },
+ IDR_MEDIAPLAYER_SOUND_LEVEL2_BUTTON_HOVER, 1.0 },
+ { "mediaplayerSoundLevel2Down",
+ IDR_MEDIAPLAYER_SOUND_LEVEL2_BUTTON_DOWN, 1.0 },
+ { "mediaplayerSoundLevel1", IDR_MEDIAPLAYER_SOUND_LEVEL1_BUTTON, 1.0 },
{ "mediaplayerSoundLevel1Hover",
- IDR_MEDIAPLAYER_SOUND_LEVEL1_BUTTON_HOVER },
- { "mediaplayerSoundLevel1Down", IDR_MEDIAPLAYER_SOUND_LEVEL1_BUTTON_DOWN },
- { "mediaplayerSoundLevel0", IDR_MEDIAPLAYER_SOUND_LEVEL0_BUTTON },
+ IDR_MEDIAPLAYER_SOUND_LEVEL1_BUTTON_HOVER, 1.0 },
+ { "mediaplayerSoundLevel1Down",
+ IDR_MEDIAPLAYER_SOUND_LEVEL1_BUTTON_DOWN, 1.0 },
+ { "mediaplayerSoundLevel0", IDR_MEDIAPLAYER_SOUND_LEVEL0_BUTTON, 1.0 },
{ "mediaplayerSoundLevel0Hover",
- IDR_MEDIAPLAYER_SOUND_LEVEL0_BUTTON_HOVER },
- { "mediaplayerSoundLevel0Down", IDR_MEDIAPLAYER_SOUND_LEVEL0_BUTTON_DOWN },
- { "mediaplayerSoundDisabled", IDR_MEDIAPLAYER_SOUND_DISABLED },
- { "mediaplayerSliderThumb", IDR_MEDIAPLAYER_SLIDER_THUMB },
- { "mediaplayerSliderThumbHover", IDR_MEDIAPLAYER_SLIDER_THUMB_HOVER },
- { "mediaplayerSliderThumbDown", IDR_MEDIAPLAYER_SLIDER_THUMB_DOWN },
- { "mediaplayerVolumeSliderThumb", IDR_MEDIAPLAYER_VOLUME_SLIDER_THUMB },
+ IDR_MEDIAPLAYER_SOUND_LEVEL0_BUTTON_HOVER, 1.0 },
+ { "mediaplayerSoundLevel0Down",
+ IDR_MEDIAPLAYER_SOUND_LEVEL0_BUTTON_DOWN, 1.0 },
+ { "mediaplayerSoundDisabled", IDR_MEDIAPLAYER_SOUND_DISABLED, 1.0 },
+ { "mediaplayerSliderThumb", IDR_MEDIAPLAYER_SLIDER_THUMB, 1.0 },
+ { "mediaplayerSliderThumbHover", IDR_MEDIAPLAYER_SLIDER_THUMB_HOVER, 1.0 },
+ { "mediaplayerSliderThumbDown", IDR_MEDIAPLAYER_SLIDER_THUMB_DOWN, 1.0 },
+ { "mediaplayerVolumeSliderThumb", IDR_MEDIAPLAYER_VOLUME_SLIDER_THUMB, 1.0 },
{ "mediaplayerVolumeSliderThumbHover",
- IDR_MEDIAPLAYER_VOLUME_SLIDER_THUMB_HOVER },
+ IDR_MEDIAPLAYER_VOLUME_SLIDER_THUMB_HOVER, 1.0 },
{ "mediaplayerVolumeSliderThumbDown",
- IDR_MEDIAPLAYER_VOLUME_SLIDER_THUMB_DOWN },
+ IDR_MEDIAPLAYER_VOLUME_SLIDER_THUMB_DOWN, 1.0 },
{ "mediaplayerVolumeSliderThumbDisabled",
- IDR_MEDIAPLAYER_VOLUME_SLIDER_THUMB_DISABLED },
- { "mediaplayerFullscreen", IDR_MEDIAPLAYER_FULLSCREEN_BUTTON },
- { "mediaplayerFullscreenHover", IDR_MEDIAPLAYER_FULLSCREEN_BUTTON_HOVER },
- { "mediaplayerFullscreenDown", IDR_MEDIAPLAYER_FULLSCREEN_BUTTON_DOWN },
+ IDR_MEDIAPLAYER_VOLUME_SLIDER_THUMB_DISABLED, 1.0 },
+ { "mediaplayerFullscreen", IDR_MEDIAPLAYER_FULLSCREEN_BUTTON, 1.0 },
+ { "mediaplayerFullscreenHover",
+ IDR_MEDIAPLAYER_FULLSCREEN_BUTTON_HOVER, 1.0 },
+ { "mediaplayerFullscreenDown", IDR_MEDIAPLAYER_FULLSCREEN_BUTTON_DOWN, 1.0 },
{ "mediaplayerFullscreenDisabled",
- IDR_MEDIAPLAYER_FULLSCREEN_BUTTON_DISABLED },
+ IDR_MEDIAPLAYER_FULLSCREEN_BUTTON_DISABLED, 1.0 },
#if defined(OS_MACOSX)
- { "overhangPattern", IDR_OVERHANG_PATTERN },
+ { "overhangPattern", IDR_OVERHANG_PATTERN, 1.0 },
#endif
- { "panIcon", IDR_PAN_SCROLL_ICON },
- { "searchCancel", IDR_SEARCH_CANCEL },
- { "searchCancelPressed", IDR_SEARCH_CANCEL_PRESSED },
- { "searchMagnifier", IDR_SEARCH_MAGNIFIER },
- { "searchMagnifierResults", IDR_SEARCH_MAGNIFIER_RESULTS },
- { "textAreaResizeCorner", IDR_TEXTAREA_RESIZER },
- { "tickmarkDash", IDR_TICKMARK_DASH },
- { "inputSpeech", IDR_INPUT_SPEECH },
- { "inputSpeechRecording", IDR_INPUT_SPEECH_RECORDING },
- { "inputSpeechWaiting", IDR_INPUT_SPEECH_WAITING },
- { "americanExpressCC", IDR_AUTOFILL_CC_AMEX },
- { "dinersCC", IDR_AUTOFILL_CC_DINERS },
- { "discoverCC", IDR_AUTOFILL_CC_DISCOVER },
- { "genericCC", IDR_AUTOFILL_CC_GENERIC },
- { "jcbCC", IDR_AUTOFILL_CC_JCB },
- { "masterCardCC", IDR_AUTOFILL_CC_MASTERCARD },
- { "soloCC", IDR_AUTOFILL_CC_SOLO },
- { "visaCC", IDR_AUTOFILL_CC_VISA },
+ { "panIcon", IDR_PAN_SCROLL_ICON, 1.0 },
+ { "searchCancel", IDR_SEARCH_CANCEL, 1.0 },
+ { "searchCancelPressed", IDR_SEARCH_CANCEL_PRESSED, 1.0 },
+ { "searchMagnifier", IDR_SEARCH_MAGNIFIER, 1.0 },
+ { "searchMagnifierResults", IDR_SEARCH_MAGNIFIER_RESULTS, 1.0 },
+ { "textAreaResizeCorner", IDR_TEXTAREA_RESIZER, 1.0 },
+ { "textAreaResizeCorner@2x", IDR_TEXTAREA_RESIZER, 2.0 },
+ { "tickmarkDash", IDR_TICKMARK_DASH, 1.0 },
+ { "inputSpeech", IDR_INPUT_SPEECH, 1.0 },
+ { "inputSpeechRecording", IDR_INPUT_SPEECH_RECORDING, 1.0 },
+ { "inputSpeechWaiting", IDR_INPUT_SPEECH_WAITING, 1.0 },
+ { "americanExpressCC", IDR_AUTOFILL_CC_AMEX, 1.0 },
+ { "dinersCC", IDR_AUTOFILL_CC_DINERS, 1.0 },
+ { "discoverCC", IDR_AUTOFILL_CC_DISCOVER, 1.0 },
+ { "genericCC", IDR_AUTOFILL_CC_GENERIC, 1.0 },
+ { "jcbCC", IDR_AUTOFILL_CC_JCB, 1.0 },
+ { "masterCardCC", IDR_AUTOFILL_CC_MASTERCARD, 1.0 },
+ { "soloCC", IDR_AUTOFILL_CC_SOLO, 1.0 },
+ { "visaCC", IDR_AUTOFILL_CC_VISA, 1.0 },
};
} // namespace
@@ -470,9 +479,13 @@ WebData WebKitPlatformSupportImpl::loadResource(const char* name) {
if (StartsWithASCII(name, "IRC_Composite", true))
return loadAudioSpatializationResource(this, name);
+ // TODO(flackr): We should use a better than linear search here, a trie would
+ // be ideal.
for (size_t i = 0; i < arraysize(kDataResources); ++i) {
if (!strcmp(name, kDataResources[i].name)) {
- base::StringPiece resource = GetDataResource(kDataResources[i].id);
+ base::StringPiece resource =
+ GetImageResource(kDataResources[i].id,
+ kDataResources[i].scale_factor);
return WebData(resource.data(), resource.size());
}
}
diff --git a/webkit/glue/webkitplatformsupport_impl.h b/webkit/glue/webkitplatformsupport_impl.h
index 26fd537..c58eb86 100644
--- a/webkit/glue/webkitplatformsupport_impl.h
+++ b/webkit/glue/webkitplatformsupport_impl.h
@@ -121,6 +121,12 @@ class WEBKIT_GLUE_EXPORT WebKitPlatformSupportImpl :
// specified as BINDATA in the relevant .rc file.
virtual base::StringPiece GetDataResource(int resource_id) = 0;
+ // Returns the raw data for an image resource with a scale factor as close as
+ // is available to |scale_factor|. This resource must have been specified as
+ // BINDATA in the relevant .rc file.
+ virtual base::StringPiece GetImageResource(int resource_id,
+ float scale_factor) = 0;
+
// Returns the list of plugins.
virtual void GetPlugins(bool refresh,
std::vector<webkit::WebPluginInfo>* plugins) = 0;