[MDM] Refactor of restriction initialization
Original design of the MDM Restriction subclasses was
lazily initialized singletons. This worked fine for restrictions
that only altered UI elements, but in cases where the UI element
hadn't been constructed yet (so it didnt call getInstance() for
the MDM restriction), MDM messages were being lost.
The cure for this is to forget about the lazy initialization
design, and simply initialize the All the MDM subclass singletons
at browser init time (after the engine has been initialized).
Change-Id: Ibe31bd2d11df550dd0176a6a74958db250fd93bd
diff --git a/src/com/android/browser/BrowserSettings.java b/src/com/android/browser/BrowserSettings.java
index 995f84a..753b1c8 100644
--- a/src/com/android/browser/BrowserSettings.java
+++ b/src/com/android/browser/BrowserSettings.java
@@ -31,9 +31,16 @@
import android.webkit.WebStorage;
import com.android.browser.homepages.HomeProvider;
+import com.android.browser.mdm.AutoFillRestriction;
+import com.android.browser.mdm.DevToolsRestriction;
import com.android.browser.mdm.DoNotTrackRestriction;
+import com.android.browser.mdm.EditBookmarksRestriction;
+import com.android.browser.mdm.IncognitoRestriction;
+import com.android.browser.mdm.ManagedBookmarksRestriction;
import com.android.browser.mdm.ProxyRestriction;
import com.android.browser.mdm.SearchEngineRestriction;
+import com.android.browser.mdm.ThirdPartyCookiesRestriction;
+import com.android.browser.mdm.URLFilterRestriction;
import com.android.browser.platformsupport.Browser;
import com.android.browser.provider.BrowserProvider;
import com.android.browser.search.SearchEngine;
@@ -176,9 +183,18 @@
if (mNeedsSharedSync) {
syncSharedSettings();
}
- // Instantiate ProxyRestriction after engine initialization
- // to ensure ProxyChangeListener is already created.
+
+ // Instantiate all MDM Restriction Singletons.
+ AutoFillRestriction.getInstance();
+ DevToolsRestriction.getInstance();
+ DoNotTrackRestriction.getInstance();
+ EditBookmarksRestriction.getInstance();
+ IncognitoRestriction.getInstance();
+ ManagedBookmarksRestriction.getInstance();
ProxyRestriction.getInstance();
+ SearchEngineRestriction.getInstance();
+ ThirdPartyCookiesRestriction.getInstance();
+ URLFilterRestriction.getInstance();
}
public void startManagingSettings(final WebSettings settings) {