Bug 1257667 - Pre: Allow retrieving GeckoApplication's RefWatcher for leak-spotting r?sebastian draft
authorAndrzej Hunt <andrzej@ahunt.org>
Thu, 17 Mar 2016 13:54:00 -0700
changeset 341856 6ae8936372ab432a162aea846228325616f62241
parent 338556 1832f51ba1a518c64fdb2f3affeb2b470e89d0c9
child 341857 b92305221cbcfac1e247ca0c4fd13ded9d6a575a
push id13306
push userbmo:ahunt@mozilla.com
push dateThu, 17 Mar 2016 22:24:03 +0000
reviewerssebastian
bugs1257667
milestone47.0a1
Bug 1257667 - Pre: Allow retrieving GeckoApplication's RefWatcher for leak-spotting r?sebastian MozReview-Commit-ID: GmGxDt72ljq
mobile/android/base/java/org/mozilla/gecko/GeckoApplication.java
--- a/mobile/android/base/java/org/mozilla/gecko/GeckoApplication.java
+++ b/mobile/android/base/java/org/mozilla/gecko/GeckoApplication.java
@@ -20,39 +20,47 @@ import org.mozilla.gecko.util.ThreadUtil
 import android.app.Application;
 import android.content.Context;
 import android.content.SharedPreferences;
 import android.content.res.Configuration;
 import android.os.SystemClock;
 import android.util.Log;
 
 import com.squareup.leakcanary.LeakCanary;
+import com.squareup.leakcanary.RefWatcher;
 
 import java.io.File;
 
 public class GeckoApplication extends Application 
     implements ContextGetter {
     private static final String LOG_TAG = "GeckoApplication";
 
     private static volatile GeckoApplication instance;
 
     private boolean mInBackground;
     private boolean mPausedGecko;
 
     private LightweightTheme mLightweightTheme;
 
+    private RefWatcher mRefWatcher;
+
     public GeckoApplication() {
         super();
         instance = this;
     }
 
     public static GeckoApplication get() {
         return instance;
     }
 
+    public static RefWatcher getRefWatcher(Context context) {
+        GeckoApplication app = (GeckoApplication) context.getApplicationContext();
+        return app.mRefWatcher;
+    }
+
     @Override
     public Context getContext() {
         return this;
     }
 
     @Override
     public SharedPreferences getSharedPreferences() {
         return GeckoSharedPrefs.forApp(this);
@@ -124,17 +132,17 @@ public class GeckoApplication extends Ap
 
         mInBackground = false;
     }
 
     @Override
     public void onCreate() {
         Log.i(LOG_TAG, "zerdatime " + SystemClock.uptimeMillis() + " - Fennec application start");
 
-        LeakCanary.install(this);
+        mRefWatcher = LeakCanary.install(this);
 
         final Context context = getApplicationContext();
         HardwareUtils.init(context);
         Clipboard.init(context);
         FilePicker.init(context);
         DownloadsIntegration.init();
         HomePanelsManager.getInstance().init(context);