Bug 1627797 - Add UA String override to GVE. r=snorp

Differential Revision: https://phabricator.services.mozilla.com/D69864

--HG--
extra : moz-landing-system : lando
This commit is contained in:
Agi Sferro 2020-04-06 20:42:05 +00:00
parent 777045b2f1
commit a4cb5f4bab
3 changed files with 36 additions and 1 deletions

View File

@ -387,6 +387,7 @@ public class GeckoViewActivity
private boolean mEnableRemoteDebugging;
private boolean mKillProcessOnDestroy;
private boolean mDesktopMode;
private String mUserAgentOverride;
private TabSession mPopupSession;
private View mPopupView;
private int mPreferredColorScheme;
@ -440,6 +441,8 @@ public class GeckoViewActivity
int colorScheme = Integer.parseInt(preferences.getString(
getString(R.string.key_preferred_color_scheme),
Integer.toString(GeckoRuntimeSettings.COLOR_SCHEME_SYSTEM)));
String userAgentOverride = preferences.getString(
getString(R.string.key_user_agent_override), "");
if (mEnableRemoteDebugging != remoteDebugging) {
if (sGeckoRuntime != null) {
@ -477,6 +480,16 @@ public class GeckoViewActivity
currentSession.reload();
}
}
if (!userAgentOverride.equals(mUserAgentOverride)) {
mUserAgentOverride = !userAgentOverride.isEmpty() ? userAgentOverride : null;
for (final TabSession session : mTabSessionManager.getSessions()) {
session.getSettings().setUserAgentOverride(mUserAgentOverride);
}
if (currentSession != null) {
currentSession.reload();
}
}
}
@Override
@ -752,6 +765,7 @@ public class GeckoViewActivity
TabSession session = mTabSessionManager.newSession(new GeckoSessionSettings.Builder()
.usePrivateMode(mUsePrivateBrowsing)
.fullAccessibilityTree(mFullAccessibilityTree)
.userAgentOverride(mUserAgentOverride)
.viewportMode(mDesktopMode
? GeckoSessionSettings.VIEWPORT_MODE_DESKTOP
: GeckoSessionSettings.VIEWPORT_MODE_MOBILE)

View File

@ -54,6 +54,7 @@
<string name="key_autoplay">autoplay</string>
<string name="key_remote_debugging">remote_debugging</string>
<string name="key_preferred_color_scheme">preferred_color_scheme</string>
<string name="key_user_agent_override">user_agent_override</string>
<string-array name="pref_preferred_color_scheme_display_names">
<item>Follow System Preference</item>
@ -66,4 +67,15 @@
<item>1</item>
</string-array>
<string-array name="user_agent_override_display_names">
<item>Default</item>
<item>Chrome 80 on Android</item>
<item>Safari 12 on iPhone</item>
</string-array>
<string-array name="user_agent_override_values">
<item></item>
<item>Mozilla/5.0 (Linux; Android 10; Z832 Build/MMB29M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.162 Mobile Safari/537.36</item>
<item>Mozilla/5.0 (iPhone; CPU OS 10_15_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.1 Mobile/14E304 Safari/605.1.15</item>
</string-array>
</resources>

View File

@ -15,7 +15,16 @@
app:title="Preferred Color Scheme"
app:summary="%s"
app:entries="@array/pref_preferred_color_scheme_display_names"
app:entryValues="@array/pref_preferred_color_scheme_values">
app:entryValues="@array/pref_preferred_color_scheme_values"
app:defaultValue="-1">
</ListPreference>
<ListPreference
app:key="@string/key_user_agent_override"
app:title="User Agent String Override"
app:summary="%s"
app:entries="@array/user_agent_override_display_names"
app:entryValues="@array/user_agent_override_values"
app:defaultValue="">
</ListPreference>
</PreferenceScreen>