diff options
author | mnaganov@chromium.org <mnaganov@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-31 01:09:56 +0000 |
---|---|---|
committer | mnaganov@chromium.org <mnaganov@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-31 01:09:56 +0000 |
commit | d8b3bb420d803158b4020a9b88189decf60c3497 (patch) | |
tree | 52e99c896f3ce26acce1a5bc54e141f95f78ebcc | |
parent | 0784e881de49244307172fe579c6702c75ff7af5 (diff) | |
download | chromium_src-d8b3bb420d803158b4020a9b88189decf60c3497.zip chromium_src-d8b3bb420d803158b4020a9b88189decf60c3497.tar.gz chromium_src-d8b3bb420d803158b4020a9b88189decf60c3497.tar.bz2 |
[Android WebView] Wire up Blink's UseLegacyBackgroundSizeShorthandBehavior setting
R=benm@chromium.org
BUG=277157
TEST=AwSettingsTest#testUseLegacyBackgroundSizeShorthandBehavior
Review URL: https://chromiumcodereview.appspot.com/23483005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@220710 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | android_webview/java/src/org/chromium/android_webview/AwSettings.java | 8 | ||||
-rw-r--r-- | android_webview/javatests/src/org/chromium/android_webview/test/AwSettingsTest.java | 30 | ||||
-rw-r--r-- | android_webview/native/aw_settings.cc | 5 | ||||
-rw-r--r-- | content/public/common/common_param_traits_macros.h | 1 | ||||
-rw-r--r-- | content/renderer/web_preferences.cc | 2 | ||||
-rw-r--r-- | webkit/common/webpreferences.cc | 1 | ||||
-rw-r--r-- | webkit/common/webpreferences.h | 1 |
7 files changed, 42 insertions, 6 deletions
diff --git a/android_webview/java/src/org/chromium/android_webview/AwSettings.java b/android_webview/java/src/org/chromium/android_webview/AwSettings.java index 0247ed4..deee0a597 100644 --- a/android_webview/java/src/org/chromium/android_webview/AwSettings.java +++ b/android_webview/java/src/org/chromium/android_webview/AwSettings.java @@ -82,7 +82,7 @@ public class AwSettings { private String mDefaultVideoPosterURL; private float mInitialPageScalePercent = 0; - private final boolean mSupportDeprecatedTargetDensityDPI; + private final boolean mSupportLegacyQuirks; private final boolean mPasswordEchoEnabled; @@ -197,7 +197,7 @@ public class AwSettings { mPasswordEchoEnabled = Settings.System.getInt(context.getContentResolver(), Settings.System.TEXT_SHOW_PASSWORD, 1) == 1; - mSupportDeprecatedTargetDensityDPI = supportsLegacyQuirks; + mSupportLegacyQuirks = supportsLegacyQuirks; } // Defer initializing the native side until a native WebContents instance is set. } @@ -1036,8 +1036,8 @@ public class AwSettings { } @CalledByNative - private boolean getSupportDeprecatedTargetDensityDPILocked() { - return mSupportDeprecatedTargetDensityDPI; + private boolean getSupportLegacyQuirksLocked() { + return mSupportLegacyQuirks; } /** diff --git a/android_webview/javatests/src/org/chromium/android_webview/test/AwSettingsTest.java b/android_webview/javatests/src/org/chromium/android_webview/test/AwSettingsTest.java index d82af60..10acd47 100644 --- a/android_webview/javatests/src/org/chromium/android_webview/test/AwSettingsTest.java +++ b/android_webview/javatests/src/org/chromium/android_webview/test/AwSettingsTest.java @@ -2504,6 +2504,36 @@ public class AwSettingsTest extends AwTestBase { } } + @SmallTest + @Feature({"AndroidWebView", "Preferences"}) + // background shorthand property must not override background-size when + // it's already set. + public void testUseLegacyBackgroundSizeShorthandBehavior() throws Throwable { + final TestAwContentsClient contentClient = new TestAwContentsClient(); + final AwTestContainerView testContainerView = + createAwTestContainerViewOnMainSync(contentClient); + final AwContents awContents = testContainerView.getAwContents(); + AwSettings settings = getAwSettingsOnUiThread(awContents); + CallbackHelper onPageFinishedHelper = contentClient.getOnPageFinishedHelper(); + final String expectedBackgroundSize = "cover"; + final String page = "<html><head>" + + "<script>" + + "function getBackgroundSize() {" + + " var e = document.getElementById('test'); " + + " e.style.backgroundSize = '" + expectedBackgroundSize + "';" + + " e.style.background = 'center red url(dummy://test.png) no-repeat border-box'; " + + " return e.style.backgroundSize; " + + "}" + + "</script></head>" + + "<body onload='document.title=getBackgroundSize()'>" + + " <div id='test'> </div>" + + "</body></html>"; + settings.setJavaScriptEnabled(true); + loadDataSync(awContents, onPageFinishedHelper, page, "text/html", false); + String actualBackgroundSize = getTitleOnUiThread(awContents); + assertEquals(expectedBackgroundSize, actualBackgroundSize); + } + static class ViewPair { private final AwContents contents0; private final TestAwContentsClient client0; diff --git a/android_webview/native/aw_settings.cc b/android_webview/native/aw_settings.cc index f47b20b..408eca0 100644 --- a/android_webview/native/aw_settings.cc +++ b/android_webview/native/aw_settings.cc @@ -203,8 +203,9 @@ void AwSettings::UpdateWebkitPreferencesLocked(JNIEnv* env, jobject obj) { prefs.default_video_poster_url = url.obj() ? GURL(ConvertJavaStringToUTF8(url)) : GURL(); - prefs.support_deprecated_target_density_dpi = - Java_AwSettings_getSupportDeprecatedTargetDensityDPILocked(env, obj); + bool support_quirks = Java_AwSettings_getSupportLegacyQuirksLocked(env, obj); + prefs.support_deprecated_target_density_dpi = support_quirks; + prefs.use_legacy_background_size_shorthand_behavior = support_quirks; prefs.password_echo_enabled = Java_AwSettings_getPasswordEchoEnabled(env, obj); diff --git a/content/public/common/common_param_traits_macros.h b/content/public/common/common_param_traits_macros.h index 8dfab64..0504b74 100644 --- a/content/public/common/common_param_traits_macros.h +++ b/content/public/common/common_param_traits_macros.h @@ -202,6 +202,7 @@ IPC_STRUCT_TRAITS_BEGIN(WebPreferences) IPC_STRUCT_TRAITS_MEMBER(user_gesture_required_for_media_playback) IPC_STRUCT_TRAITS_MEMBER(default_video_poster_url) IPC_STRUCT_TRAITS_MEMBER(support_deprecated_target_density_dpi) + IPC_STRUCT_TRAITS_MEMBER(use_legacy_background_size_shorthand_behavior) IPC_STRUCT_TRAITS_MEMBER(use_wide_viewport) #endif IPC_STRUCT_TRAITS_END() diff --git a/content/renderer/web_preferences.cc b/content/renderer/web_preferences.cc index 2f2383f..76b7943 100644 --- a/content/renderer/web_preferences.cc +++ b/content/renderer/web_preferences.cc @@ -335,6 +335,8 @@ void ApplyWebPreferences(const WebPreferences& prefs, WebView* web_view) { ASCIIToUTF16(prefs.default_video_poster_url.spec())); settings->setSupportDeprecatedTargetDensityDPI( prefs.support_deprecated_target_density_dpi); + settings->setUseLegacyBackgroundSizeShorthandBehavior( + prefs.use_legacy_background_size_shorthand_behavior); settings->setUseWideViewport(prefs.use_wide_viewport); #endif diff --git a/webkit/common/webpreferences.cc b/webkit/common/webpreferences.cc index 47bcc07..de32085 100644 --- a/webkit/common/webpreferences.cc +++ b/webkit/common/webpreferences.cc @@ -127,6 +127,7 @@ WebPreferences::WebPreferences() double_tap_to_zoom_enabled(true), user_gesture_required_for_media_playback(true), support_deprecated_target_density_dpi(false), + use_legacy_background_size_shorthand_behavior(false), use_wide_viewport(true) #endif { diff --git a/webkit/common/webpreferences.h b/webkit/common/webpreferences.h index b9285b2..a720855 100644 --- a/webkit/common/webpreferences.h +++ b/webkit/common/webpreferences.h @@ -170,6 +170,7 @@ struct WEBKIT_COMMON_EXPORT WebPreferences { bool user_gesture_required_for_media_playback; GURL default_video_poster_url; bool support_deprecated_target_density_dpi; + bool use_legacy_background_size_shorthand_behavior; bool use_wide_viewport; #endif |