diff options
author | tony@chromium.org <tony@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-11 18:05:56 +0000 |
---|---|---|
committer | tony@chromium.org <tony@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-11 18:05:56 +0000 |
commit | 2c841f7bb90c00ee360e110983af7f330f5c6958 (patch) | |
tree | a06a9df37e314f77ff2c7d17754d6f3cf1f0a56c /webkit/glue | |
parent | 344f421534d9fb73559c30dea6ce508ed24d28e3 (diff) | |
download | chromium_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.cc | 5 | ||||
-rw-r--r-- | webkit/glue/webkitplatformsupport_impl.cc | 135 | ||||
-rw-r--r-- | webkit/glue/webkitplatformsupport_impl.h | 6 |
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; |