diff --git a/res/xml/development_prefs.xml b/res/xml/development_prefs.xml
index 54eb878..bec8863 100644
--- a/res/xml/development_prefs.xml
+++ b/res/xml/development_prefs.xml
@@ -80,11 +80,6 @@
         android:fragment="com.android.settings.webview.WebViewAppPicker" />
 
     <SwitchPreference
-        android:key="enable_webview_multiprocess"
-        android:title="@string/enable_webview_multiprocess"
-        android:summary="@string/enable_webview_multiprocess_desc" />
-
-    <SwitchPreference
         android:key="color_temperature"
         android:title="@string/color_temperature"
         android:summary="@string/color_temperature_desc" />
diff --git a/src/com/android/settings/development/DevelopmentSettings.java b/src/com/android/settings/development/DevelopmentSettings.java
index 376005c..ea0adb9 100644
--- a/src/com/android/settings/development/DevelopmentSettings.java
+++ b/src/com/android/settings/development/DevelopmentSettings.java
@@ -127,7 +127,6 @@
     private static final String ENABLE_TERMINAL = "enable_terminal";
     private static final String KEEP_SCREEN_ON = "keep_screen_on";
     private static final String BT_HCI_SNOOP_LOG = "bt_hci_snoop_log";
-    private static final String WEBVIEW_MULTIPROCESS_KEY = "enable_webview_multiprocess";
     private static final String ENABLE_OEM_UNLOCK = "oem_unlock_enable";
     private static final String HDCP_CHECKING_KEY = "hdcp_checking";
     private static final String HDCP_CHECKING_PROPERTY = "persist.sys.hdcp_checking";
@@ -318,7 +317,6 @@
     private ListPreference mOverlayDisplayDevices;
 
     private WebViewAppPreferenceController mWebViewAppPrefController;
-    private SwitchPreference mWebViewMultiprocess;
 
     private ListPreference mSimulateColorSpace;
 
@@ -495,7 +493,6 @@
             mLogpersist = null;
         }
         mUsbConfiguration = addListPreference(USB_CONFIGURATION_KEY);
-        mWebViewMultiprocess = findAndInitSwitchPref(WEBVIEW_MULTIPROCESS_KEY);
         mBluetoothDisableAbsVolume = findAndInitSwitchPref(BLUETOOTH_DISABLE_ABSOLUTE_VOLUME_KEY);
         mBluetoothEnableInbandRinging = findAndInitSwitchPref(BLUETOOTH_ENABLE_INBAND_RINGING_KEY);
         if (!BluetoothHeadset.isInbandRingingSupported(getContext())) {
@@ -812,7 +809,6 @@
         updateForceResizableOptions();
         Preference webViewAppPref = findPreference(mWebViewAppPrefController.getPreferenceKey());
         mWebViewAppPrefController.updateState(webViewAppPref);
-        updateWebViewMultiprocessOptions();
         updateOemUnlockOptions();
         if (mColorTemperaturePreference != null) {
             updateColorTemperature();
@@ -850,21 +846,6 @@
         pokeSystemProperties();
     }
 
-    private void updateWebViewMultiprocessOptions() {
-        try {
-            updateSwitchPreference(mWebViewMultiprocess,
-                                   mWebViewUpdateService.isMultiProcessEnabled());
-        } catch (RemoteException e) {
-        }
-    }
-
-    private void writeWebViewMultiprocessOptions() {
-        try {
-            mWebViewUpdateService.enableMultiProcess(mWebViewMultiprocess.isChecked());
-        } catch (RemoteException e) {
-        }
-    }
-
     private void updateHdcpValues() {
         ListPreference hdcpChecking = (ListPreference) findPreference(HDCP_CHECKING_KEY);
         if (hdcpChecking != null) {
@@ -2548,8 +2529,6 @@
             writeBluetoothDisableAbsVolumeOptions();
         } else if (preference == mBluetoothEnableInbandRinging) {
             writeBluetoothEnableInbandRingingOptions();
-        } else if (preference == mWebViewMultiprocess) {
-            writeWebViewMultiprocessOptions();
         } else if (SHORTCUT_MANAGER_RESET_KEY.equals(preference.getKey())) {
             resetShortcutManagerThrottling();
         } else {
