mozilla-mobile / fenix

⚠️ Fenix (Firefox for Android) moved to a new repository. It is now developed and maintained as part of: https://github.com/mozilla-mobile/firefox-android
https://github.com/mozilla-mobile/firefox-android
Mozilla Public License 2.0
6.47k stars 1.27k forks source link

Address current LeakCanary reports #747

Closed cadeyrn closed 4 years ago

cadeyrn commented 5 years ago

A good follow-up is https://github.com/mozilla-mobile/fenix/issues/4506 to prevent future memory leaks.

What

We have reports of a memory leak and we should fix memory leaks because they lead to out-of-memory crashes.

Impact

If we do not resolve this issue, there's a chance the user crashes. These are easy to detect as shown below.

Acceptance criteria


I got two LeakCanary reports.

  1. ReportFragment was never GCed but no leak detected
  2. HomeActivity was never GCed but no leak detected

I attached a ZIP with the two .hprof files.

archive.zip

Device information

┆Issue is synchronized with this Jira Task

colintheshots commented 5 years ago

We'll take a look. There appear to be an increasing number of leaks lately.

cadeyrn commented 5 years ago

I have two new LeakCanary reports with ReportFragment and HomeActivity involved. While the previous reports were "never GCed but no leak detected" reports, this time the reports are "excluded leak" reports.

Fenix version: Fenix revision 8b793cd43ea0b816fece4266c2dbc990e24ceae1

``` In org.mozilla.fenix.debug:1.0.1910:1. * EXCLUDED LEAK. * androidx.lifecycle.ReportFragment has leaked: * thread HandlerThread. (named 'queued-work-looper') * ↳ Message.obj , matching exclusion field android.os.Message#obj * ↳ SessionBottomSheetFragment.onArchive * ↳ HomeFragment$openSessionMenu$$inlined$also$lambda$1.this$0 (anonymous subclass of kotlin.jvm.internal.Lambda) * ↳ HomeFragment.!(sessionsComponent)! * ↳ SessionsComponent.!(container)! * ↳ LinearLayout.mContext * ↳ HomeActivity.mFragments * ↳ FragmentController.mHost * ↳ Activity$HostCallbacks.mFragmentManager * ↳ FragmentManagerImpl.mAdded * ↳ ArrayList.elementData * ↳ array Object[].[0] * ↳ ReportFragment * Reference Key: 2a746aad-e297-4f4d-856f-46b89e36620a * Device: HTC htc HTC U11 ocndugl_00401 * Android Version: 8.0.0 API: 26 LeakCanary: 1.6.3 31007b4 * Durations: watch=5034ms, gc=188ms, heap dump=923ms, analysis=8153ms * Details: * Instance of android.os.HandlerThread | static $classOverhead = byte[424]@1884402137 (0x7051b1d9) | mHandler = null | mLooper = android.os.Looper@323493408 (0x13481e20) | mPriority = -2 | mTid = 13033 | blocker = null | blockerLock = java.lang.Object@331460176 (0x13c1ae50) | contextClassLoader = dalvik.system.PathClassLoader@323603216 (0x1349cb10) | daemon = false | eetop = 0 | group = java.lang.ThreadGroup@1878098720 (0x6ff18320) | inheritableThreadLocals = null | inheritedAccessControlContext = java.security.AccessControlContext@331460184 (0x13c1ae58) | lock = java.lang.Object@331460192 (0x13c1ae60) | name = "queued-work-looper" | nativeParkEventPointer = 0 | nativePeer = 508941795840 | parkBlocker = null | parkState = 1 | priority = 5 | single_step = false | stackSize = 0 | started = true | stillborn = false | target = null | threadLocalRandomProbe = 0 | threadLocalRandomSecondarySeed = 0 | threadLocalRandomSeed = 0 | threadLocals = java.lang.ThreadLocal$ThreadLocalMap@331460200 (0x13c1ae68) | threadQ = null | threadStatus = 0 | tid = 182307 | uncaughtExceptionHandler = null | shadow$_klass_ = android.os.HandlerThread | shadow$_monitor_ = 0 * Instance of android.os.Message | static gCheckRecycle = true | static sPoolSync = java.lang.Object@1883021736 (0x703ca1a8) | static FLAG_IN_USE = 1 | static sPoolSize = 18 | static sPool = android.os.Message@323774840 (0x134c6978) | static FLAG_ASYNCHRONOUS = 2 | static MAX_POOL_SIZE = 50 | static $classOverhead = byte[297]@1883616673 (0x7045b5a1) | static CREATOR = android.os.Message$1@1883122776 (0x703e2c58) | static FLAGS_TO_CLEAR_ON_COPY_FROM = 1 | arg1 = 0 | arg2 = 0 | callback = null | data = null | flags = 0 | next = null | obj = org.mozilla.fenix.home.sessions.SessionBottomSheetFragment@328894416 (0x139a87d0) | replyTo = null | sendingUid = -1 | target = android.app.Dialog$ListenersHandler@328894592 (0x139a8880) | what = 67 | when = 0 | shadow$_klass_ = android.os.Message | shadow$_monitor_ = 0 * Instance of org.mozilla.fenix.home.sessions.SessionBottomSheetFragment | static overflowFragmentTag = "sessionOverflow" | static $change = null | static Companion = org.mozilla.fenix.home.sessions.SessionBottomSheetFragment$Companion@325653368 (0x13691378) | static $classOverhead = byte[1656]@325615985 (0x13688171) | static serialVersionUID = 5463426055467058451 | static maxTitleLength = 20 | _$_findViewCache = null | archivedSession = org.mozilla.fenix.home.sessions.ArchivedSession@328894648 (0x139a88b8) | isCurrentSession = false | onArchive = org.mozilla.fenix.home.HomeFragment$openSessionMenu$$inlined$also$lambda$1@328894696 (0x139a88e8) | onDelete = org.mozilla.fenix.home.HomeFragment$openSessionMenu$$inlined$also$lambda$2@328894720 (0x139a8900) | tabTitles = "soeren-hentzschel.at..." | mBackStackId = -1 | mCancelable = true | mDialog = null | mDismissed = true | mShownByMe = false | mShowsDialog = true | mStyle = 0 | mTheme = 2131820742 | mViewDestroyed = true | mAdded = false | mAnimationInfo = null | mArguments = null | mBackStackNesting = 0 | mCalled = true | mChildFragmentManager = null | mContainer = null | mContainerId = 0 | mDeferStart = false | mDetached = false | mFragmentId = 0 | mFragmentManager = null | mFromLayout = false | mHasMenu = false | mHidden = false | mHiddenChanged = false | mHost = null | mInLayout = false | mInnerView = null | mIsCreated = false | mIsNewlyAdded = false | mLayoutInflater = null | mLifecycleRegistry = androidx.lifecycle.LifecycleRegistry@328894784 (0x139a8940) | mMenuVisible = true | mParentFragment = null | mPerformedCreateView = false | mPostponedAlpha = 0.0 | mRemoving = false | mRestored = false | mRetainInstance = false | mRetainInstanceChangedWhileDetached = false | mSavedFragmentState = null | mSavedStateRegistry = androidx.savedstate.bundle.BundleSavedStateRegistry@328894816 (0x139a8960) | mSavedUserVisibleHint = null | mSavedViewState = android.util.SparseArray@328894840 (0x139a8978) | mState = 0 | mTag = null | mTarget = null | mTargetRequestCode = 0 | mTargetWho = null | mUserVisibleHint = true | mView = null | mViewLifecycleOwner = null | mViewLifecycleOwnerLiveData = androidx.lifecycle.MutableLiveData@328894864 (0x139a8990) | mWho = "fed7411a-df6e-41eb-86ae-b319e358469c" | shadow$_klass_ = org.mozilla.fenix.home.sessions.SessionBottomSheetFragment | shadow$_monitor_ = -1992379087 * Instance of org.mozilla.fenix.home.HomeFragment$openSessionMenu$$inlined$also$lambda$1 | static $change = null | static $classOverhead = byte[144]@325600553 (0x13684529) | static serialVersionUID = 4437534369494348226 | $archivedSession$inlined = org.mozilla.fenix.home.sessions.ArchivedSession@328894648 (0x139a88b8) | $isCurrentSession$inlined = false | this$0 = org.mozilla.fenix.home.HomeFragment@328895984 (0x139a8df0) | arity = 0 | shadow$_klass_ = org.mozilla.fenix.home.HomeFragment$openSessionMenu$$inlined$also$lambda$1 | shadow$_monitor_ = 0 * Instance of org.mozilla.fenix.home.HomeFragment | static addTabButtonIncreaseDps = 8 | static toolbarPaddingDp = 12.0 | static $change = null | static overflowButtonIncreaseDps = 8 | static Companion = org.mozilla.fenix.home.HomeFragment$Companion@325661656 (0x136933d8) | static $classOverhead = byte[1456]@325601897 (0x13684a69) | static secondKeyTriggerFrame = 90 | static serialVersionUID = -3317648408223501943 | static temporaryNumberOfSessions = 25 | static firstKeyTriggerFrame = 55 | _$_findViewCache = java.util.HashMap@328896144 (0x139a8e90) | bus = org.mozilla.fenix.mvi.ActionBusFactory@328896184 (0x139a8eb8) | homeMenu = null | sessionObserver = org.mozilla.fenix.home.HomeFragment$subscribeToSessions$observer$1@328896208 (0x139a8ed0) | sessionsComponent = org.mozilla.fenix.home.sessions.SessionsComponent@328896224 (0x139a8ee0) | tabsComponent = org.mozilla.fenix.home.tabs.TabsComponent@328896256 (0x139a8f00) | mAdded = false | mAnimationInfo = null | mArguments = android.os.Bundle@328896296 (0x139a8f28) | mBackStackNesting = 0 | mCalled = true | mChildFragmentManager = null | mContainer = null | mContainerId = 0 | mDeferStart = false | mDetached = false | mFragmentId = 0 | mFragmentManager = null | mFromLayout = false | mHasMenu = false | mHidden = false | mHiddenChanged = false | mHost = null | mInLayout = false | mInnerView = null | mIsCreated = false | mIsNewlyAdded = false | mLayoutInflater = null | mLifecycleRegistry = androidx.lifecycle.LifecycleRegistry@328896320 (0x139a8f40) | mMenuVisible = true | mParentFragment = androidx.navigation.fragment.NavHostFragment@328896352 (0x139a8f60) | mPerformedCreateView = false | mPostponedAlpha = 0.0 | mRemoving = false | mRestored = false | mRetainInstance = false | mRetainInstanceChangedWhileDetached = false | mSavedFragmentState = null | mSavedStateRegistry = androidx.savedstate.bundle.BundleSavedStateRegistry@328896496 (0x139a8ff0) | mSavedUserVisibleHint = null | mSavedViewState = android.util.SparseArray@328896520 (0x139a9008) | mState = 0 | mTag = null | mTarget = null | mTargetRequestCode = 0 | mTargetWho = null | mUserVisibleHint = true | mView = null | mViewLifecycleOwner = null | mViewLifecycleOwnerLiveData = androidx.lifecycle.MutableLiveData@328896544 (0x139a9020) | mWho = "2d541309-cbf3-413b-81dd-d43a21259b07" | shadow$_klass_ = org.mozilla.fenix.home.HomeFragment | shadow$_monitor_ = -1947769262 * Instance of org.mozilla.fenix.home.sessions.SessionsComponent | static $change = null | static $classOverhead = byte[232]@325619089 (0x13688d91) | static serialVersionUID = -7718152907179452763 | container = android.widget.LinearLayout@331194912 (0x13bda220) | initialState = org.mozilla.fenix.home.sessions.SessionsState@331458224 (0x13c1a6b0) | reducer = org.mozilla.fenix.home.sessions.SessionsComponent$reducer$1@325651536 (0x13690c50) | actionEmitter = io.reactivex.subjects.SerializedSubject@331299520 (0x13bf3ac0) | changesObservable = io.reactivex.subjects.SerializedSubject@331458176 (0x13c1a680) | uiView$delegate = kotlin.SynchronizedLazyImpl@331458200 (0x13c1a698) | shadow$_klass_ = org.mozilla.fenix.home.sessions.SessionsComponent | shadow$_monitor_ = 0 * Instance of android.widget.LinearLayout | static INDEX_TOP = 1 | static SHOW_DIVIDER_BEGINNING = 1 | static INDEX_FILL = 3 | static SHOW_DIVIDER_NONE = 0 | static HORIZONTAL = 0 | static VERTICAL_GRAVITY_COUNT = 4 | static INDEX_BOTTOM = 2 | static SHOW_DIVIDER_END = 4 | static $classOverhead = byte[7828]@1884088409 (0x704ce859) | static VERTICAL = 1 | static SHOW_DIVIDER_MIDDLE = 2 | static INDEX_CENTER_VERTICAL = 0 | mAllowInconsistentMeasurement = false | mBaselineAligned = true | mBaselineAlignedChildIndex = -1 | mBaselineChildTop = 0 | mDivider = null | mDividerHeight = 0 | mDividerPadding = 0 | mDividerWidth = 0 | mGravity = 8388659 | mLayoutDirection = 0 | mMaxAscent = null | mMaxDescent = null | mOrientation = 1 | mShowDividers = 0 | mTotalLength = 909 | mUseLargestChild = false | mWeightSum = -1.0 | mAnimationListener = null | mCachePaint = null | mChildCountWithTransientState = 0 | mChildTransformation = null | mChildren = android.view.View[12]@331195672 (0x13bda518) | mChildrenCount = 6 | mChildrenInterestedInDrag = null | mCurrentDragChild = null | mCurrentDragStartEvent = null | mDefaultFocus = null | mDisappearingChildren = null | mFirstHoverTarget = null | mFirstTouchTarget = null | mFocused = null | mFocusedInCluster = null | mGroupFlags = 2506835 | mHoveredSelf = false | mInvalidateRegion = null | mInvalidationTransformation = null | mIsInterestedInDrag = false | mLastTouchDownIndex = 5 | mLastTouchDownTime = 1259389759 | mLastTouchDownX = 1356.0 | mLastTouchDownY = 417.0 | mLayoutAnimationController = null | mLayoutCalledWhileSuppressed = false | mLayoutMode = -1 | mLayoutTransitionListener = android.view.ViewGroup$2@331195736 (0x13bda558) | mLocalPoint = null | mNestedScrollAxes = 0 | mOnHierarchyChangeListener = null | mPersistentDrawingCache = 2 | mPreSortedChildren = null | mSuppressLayout = false | mTempPoint = float[2]@331195752 (0x13bda568) | mTooltipHoverTarget = null | mTooltipHoveredSelf = false | mTransientIndices = null | mTransientViews = null | mTransition = null | mTransitioningViews = null | mVisibilityChangingChildren = null | mAccessibilityCursorPosition = -1 | mAccessibilityDelegate = null | mAccessibilityTraversalAfterId = -1 | mAccessibilityTraversalBeforeId = -1 | mAccessibilityViewId = -1 | mAnimator = null | mAttachInfo = null | mAttributes = null | mAutofillHints = null | mAutofillId = null | mAutofillViewId = -1 | mBackground = null | mBackgroundRenderNode = null | mBackgroundResource = 0 | mBackgroundSizeChanged = true | mBackgroundTint = null | mBottom = 909 | mCachingFailed = false | mClipBounds = null | mContentDescription = null | mContext = org.mozilla.fenix.HomeActivity@328898472 (0x139a97a8) | mCurrentAnimation = null | mDefaultFocusHighlight = null | mDefaultFocusHighlightCache = null | mDefaultFocusHighlightEnabled = true | mDefaultFocusHighlightSizeChanged = true | mDrawableState = int[3]@1883422592 (0x7042bf80) | mDrawingCache = null | mDrawingCacheBackgroundColor = 0 | mFloatingTreeObserver = null | mForegroundInfo = null | mFrameMetricsObservers = null | mGhostView = null | mHasPerformedLongPress = false | mID = 2131230921 | mIgnoreNextUpEvent = false | mInContextButtonPress = false | mInputEventConsistencyVerifier = null | mIsDispatchedAccessTouchEvent = false | mKeyedTags = null | mLabelForId = -1 | mLastIsOpaque = false | mLayerPaint = null | mLayerType = 0 | mLayoutInsets = null | mLayoutParams = android.widget.FrameLayout$LayoutParams@331195776 (0x13bda580) | mLeft = 0 | mLeftPaddingDefined = false | mListenerInfo = null | mLongClickX = NaN | mLongClickY = NaN | mMatchIdPredicate = null | mMatchLabelForPredicate = null | mMeasureCache = android.util.LongSparseLongArray@331195832 (0x13bda5b8) | mMeasuredHeight = 909 | mMeasuredWidth = 1440 | mMinHeight = 0 | mMinWidth = 0 | mNestedScrollingParent = null | mNextClusterForwardId = -1 | mNextFocusDownId = -1 | mNextFocusForwardId = -1 | mNextFocusLeftId = -1 | mNextFocusRightId = -1 | mNextFocusUpId = -1 | mOldHeightMeasureSpec = 0 | mOldWidthMeasureSpec = 1073743264 | mOutlineProvider = android.view.ViewOutlineProvider$1@1883145312 (0x703e8460) | mOverScrollMode = 1 | mOverlay = null | mPaddingBottom = 0 | mPaddingLeft = 0 | mPaddingRight = 0 | mPaddingTop = 0 | mParent = androidx.core.widget.NestedScrollView@331195856 (0x13bda5d0) | mPendingCheckForLongPress = null | mPendingCheckForTap = null | mPerformClick = null | mPointerIcon = null | mPrivateFlags = 19007664 | mPrivateFlags2 = 1610819112 | mPrivateFlags3 = 16 | mRecreateDisplayList = false | mRenderNode = android.view.RenderNode@331196592 (0x13bda8b0) | mResources = android.content.res.Resources@326808072 (0x137ab208) | mRight = 1440 | mRightPaddingDefined = false | mRoundScrollbarRenderer = null | mRunQueue = null | mScrollCache = null | mScrollIndicatorDrawable = null | mScrollX = 0 | mScrollY = 0 | mSendViewScrolledAccessibilityEvent = null | mSendViewStateChangedAccessibilityEvent = null | mSendingHoverAccessibilityEvents = false | mStartActivityRequestWho = null | mStateListAnimator = null | mSystemUiVisibility = 0 | mTag = null | mTempNestedScrollConsumed = null | mTooltipInfo = null | mTop = 0 | mTouchDelegate = null | mTouchSlop = 28 | mTransformationInfo = null | mTransientStateCount = 0 | mTransitionName = null | mUnscaledDrawingCache = null | mUnsetPressedState = null | mUserPaddingBottom = 0 | mUserPaddingEnd = -2147483648 | mUserPaddingLeft = 0 | mUserPaddingLeftInitial = 0 | mUserPaddingRight = 0 | mUserPaddingRightInitial = 0 | mUserPaddingStart = -2147483648 | mVerticalScrollFactor = 0.0 | mVerticalScrollbarPosition = 0 | mViewFlags = 402653328 | mVisibilityChangeForAutofillHandler = null | mWindowAttachCount = 1 | shadow$_klass_ = android.widget.LinearLayout | shadow$_monitor_ = 0 * Instance of org.mozilla.fenix.HomeActivity | static OPEN_TO_BROWSER = "open_to_browser" | static $change = null | static Companion = org.mozilla.fenix.HomeActivity$Companion@325678552 (0x136975d8) | static $classOverhead = byte[4312]@324715897 (0x135ac579) | static serialVersionUID = -7313422557430804236 | _$_findViewCache = null | browsingModeManager = org.mozilla.fenix.DefaultBrowsingModeManager@331144568 (0x13bcdd78) | themeManager = org.mozilla.fenix.DefaultThemeManager@331144584 (0x13bcdd88) | mDelegate = androidx.appcompat.app.AppCompatDelegateImpl@331144600 (0x13bcdd98) | mResources = null | mThemeId = 2131820744 | mCreated = true | mFragments = androidx.fragment.app.FragmentController@331144736 (0x13bcde20) | mNextCandidateRequestIndex = 0 | mPendingFragmentActivityResults = androidx.collection.SparseArrayCompat@331144752 (0x13bcde30) | mRequestedPermissionsFromFragment = false | mResumed = false | mStartedActivityFromFragment = false | mStartedIntentSenderFromFragment = false | mStopped = true | mLifecycleRegistry = androidx.lifecycle.LifecycleRegistry@331144776 (0x13bcde48) | mOnBackPressedCallbacks = java.util.concurrent.CopyOnWriteArrayList@331144808 (0x13bcde68) | mSavedStateRegistry = androidx.savedstate.bundle.BundleSavedStateRegistry@331144824 (0x13bcde78) | mViewModelStore = androidx.lifecycle.ViewModelStore@331144848 (0x13bcde90) | mExtraDataMap = androidx.collection.SimpleArrayMap@331144864 (0x13bcdea0) | mActionBar = null | mActionModeTypeStarting = 0 | mActivityInfo = android.content.pm.ActivityInfo@331144888 (0x13bcdeb8) | mActivityTransitionState = android.app.ActivityTransitionState@331145040 (0x13bcdf50) | mApplication = org.mozilla.fenix.DebugFenixApplication@323603040 (0x1349ca60) | mAutoFillResetNeeded = true | mAutofillManager = android.view.autofill.AutofillManager@331145096 (0x13bcdf88) | mAutofillPopupWindow = null | mCalled = true | mChangeCanvasToTranslucent = false | mChangingConfigurations = false | mComponent = android.content.ComponentName@331145152 (0x13bcdfc0) | mConfigChangeFlags = 0 | mCurrentConfig = android.content.res.Configuration@331145168 (0x13bcdfd0) | mDecor = null | mDefaultKeyMode = 0 | mDefaultKeySsb = null | mDestroyed = true | mDoReportFullyDrawn = false | mEmbeddedID = null | mEnableDefaultActionBarUp = false | mEnterTransitionListener = android.app.SharedElementCallback$1@1883110576 (0x703dfcb0) | mExitTransitionListener = android.app.SharedElementCallback$1@1883110576 (0x703dfcb0) | mFinished = true | mFragments = android.app.FragmentController@331145288 (0x13bce048) | mHandler = android.os.Handler@331145304 (0x13bce058) | mHasCurrentPermissionsRequest = false | mIdent = 195508218 | mInstanceTracker = android.os.StrictMode$InstanceTracker@331145336 (0x13bce078) | mInstrumentation = android.app.Instrumentation@323773880 (0x134c65b8) | mIntent = android.content.Intent@331145352 (0x13bce088) | mLastAutofillId = 1073741848 | mLastNonConfigurationInstances = null | mMainThread = android.app.ActivityThread@323486776 (0x13480438) | mManagedCursors = java.util.ArrayList@331145416 (0x13bce0c8) | mManagedDialogs = null | mMenuInflater = null | mParent = null | mReferrer = "com.htc.launcher" | mResultCode = 0 | mResultData = null | mResumed = false | mSearchEvent = null | mSearchManager = null | mStartedActivity = false | mStopped = true | mTaskDescription = android.app.ActivityManager$TaskDescription@331145472 (0x13bce100) | mTemporaryPause = false | mTitle = "Fenix" | mTitleColor = 0 | mTitleReady = true | mToken = android.os.BinderProxy@331145512 (0x13bce128) | mTranslucentCallback = null | mUiThread = java.lang.Thread@1938317680 (0x73886170) | mVisibleBehind = false | mVisibleFromClient = true | mVisibleFromServer = true | mVoiceInteractor = null | mWindow = com.android.internal.policy.PhoneWindow@331145544 (0x13bce148) | mWindowAdded = true | mWindowManager = android.view.WindowManagerImpl@331145912 (0x13bce2b8) | mInflater = com.android.internal.policy.PhoneLayoutInflater@331145936 (0x13bce2d0) | mOverrideConfiguration = null | mResources = android.content.res.Resources@326808072 (0x137ab208) | mTheme = android.content.res.Resources$Theme@331145984 (0x13bce300) | mThemeResource = 2131820744 | mBase = android.app.ContextImpl@331146000 (0x13bce310) | shadow$_klass_ = org.mozilla.fenix.HomeActivity | shadow$_monitor_ = 1073742659 * Instance of android.app.FragmentController | static $classOverhead = byte[416]@1884213649 (0x704ed191) | mHost = android.app.Activity$HostCallbacks@331185344 (0x13bd7cc0) | shadow$_klass_ = android.app.FragmentController | shadow$_monitor_ = 0 * Instance of android.app.Activity$HostCallbacks | static $classOverhead = byte[368]@1883853665 (0x70495361) | this$0 = org.mozilla.fenix.HomeActivity@328898472 (0x139a97a8) | mActivity = org.mozilla.fenix.HomeActivity@328898472 (0x139a97a8) | mAllLoaderManagers = android.util.ArrayMap@331185392 (0x13bd7cf0) | mCheckedForLoaderManager = true | mContext = org.mozilla.fenix.HomeActivity@328898472 (0x139a97a8) | mFragmentManager = android.app.FragmentManagerImpl@331185424 (0x13bd7d10) | mHandler = android.os.Handler@331145304 (0x13bce058) | mLoaderManager = null | mLoadersStarted = true | mRetainLoaders = false | mWindowAnimations = 0 | shadow$_klass_ = android.app.Activity$HostCallbacks | shadow$_monitor_ = 0 * Instance of android.app.FragmentManagerImpl | static TARGET_STATE_TAG = "android:target_state" | static USER_VISIBLE_HINT_TAG = "android:user_visible_hint" | static TAG = "FragmentManager" | static TARGET_REQUEST_CODE_STATE_TAG = "android:target_req_state" | static $classOverhead = byte[941]@1883056169 (0x703d2829) | static DEBUG = false | static VIEW_STATE_TAG = "android:view_state" | mActive = android.util.SparseArray@331185536 (0x13bd7d80) | mAdded = java.util.ArrayList@331185560 (0x13bd7d98) | mAllowOldReentrantBehavior = false | mAvailBackStackIndices = null | mBackStack = null | mBackStackChangeListeners = null | mBackStackIndices = null | mContainer = null | mCreatedMenus = null | mCurState = 0 | mDestroyed = true | mExecCommit = android.app.FragmentManagerImpl$1@331185584 (0x13bd7db0) | mExecutingActions = false | mHavePendingDeferredStart = false | mHost = null | mLifecycleCallbacks = java.util.concurrent.CopyOnWriteArrayList@331185600 (0x13bd7dc0) | mNeedMenuInvalidate = false | mNextFragmentIndex = 1 | mNoTransactionsBecause = null | mParent = null | mPendingActions = java.util.ArrayList@331185616 (0x13bd7dd0) | mPostponedTransactions = null | mPrimaryNav = null | mSavedNonConfig = null | mStateArray = null | mStateBundle = android.os.Bundle@331185640 (0x13bd7de8) | mStateSaved = false | mTmpAddedFragments = java.util.ArrayList@331185664 (0x13bd7e00) | mTmpIsPop = java.util.ArrayList@331185688 (0x13bd7e18) | mTmpRecords = java.util.ArrayList@331185712 (0x13bd7e30) | shadow$_klass_ = android.app.FragmentManagerImpl | shadow$_monitor_ = 0 * Instance of java.util.ArrayList | static MAX_ARRAY_SIZE = 2147483639 | static DEFAULTCAPACITY_EMPTY_ELEMENTDATA = java.lang.Object[0]@1883335224 (0x70416a38) | static DEFAULT_CAPACITY = 10 | static $classOverhead = byte[392]@1878534825 (0x6ff82aa9) | static serialVersionUID = 8683452581122892189 | static EMPTY_ELEMENTDATA = java.lang.Object[0]@1880957160 (0x701d20e8) | elementData = java.lang.Object[10]@331186032 (0x13bd7f70) | size = 1 | modCount = 1 | shadow$_klass_ = java.util.ArrayList | shadow$_monitor_ = 0 * Array of java.lang.Object[] | [0] = androidx.lifecycle.ReportFragment@331186088 (0x13bd7fa8) | [1] = null | [2] = null | [3] = null | [4] = null | [5] = null | [6] = null | [7] = null | [8] = null | [9] = null * Instance of androidx.lifecycle.ReportFragment | static REPORT_FRAGMENT_TAG = "androidx.lifecycle.LifecycleDispatcher.report_fragment_tag" | static $classOverhead = byte[1332]@324254529 (0x1353bb41) | mProcessListener = null | mAdded = false | mAnimationInfo = null | mArguments = null | mBackStackNesting = 0 | mCalled = true | mCheckedForLoaderManager = false | mChildFragmentManager = null | mChildNonConfig = null | mContainer = null | mContainerId = 0 | mDeferStart = false | mDetached = false | mFragmentId = 0 | mFragmentManager = null | mFromLayout = false | mHasMenu = false | mHidden = false | mHiddenChanged = false | mHost = null | mInLayout = false | mIndex = -1 | mIsNewlyAdded = false | mLayoutInflater = null | mLoaderManager = null | mLoadersStarted = false | mMenuVisible = true | mParentFragment = null | mPerformedCreateView = false | mRemoving = false | mRestored = false | mRetainInstance = false | mRetaining = false | mSavedFragmentState = null | mSavedViewState = null | mState = 0 | mTag = null | mTarget = null | mTargetIndex = -1 | mTargetRequestCode = 0 | mUserVisibleHint = true | mView = null | mWho = null | shadow$_klass_ = androidx.lifecycle.ReportFragment | shadow$_monitor_ = 0 * Excluded Refs: | Field: android.os.Message.obj | Field: android.os.Message.next | Field: android.os.Message.target | Field: android.view.inputmethod.InputMethodManager.mNextServedView | Field: android.view.inputmethod.InputMethodManager.mServedView | Field: android.view.inputmethod.InputMethodManager.mServedInputConnection | Field: android.view.inputmethod.InputMethodManager.mCurRootView | Field: android.accounts.AccountManager$AmsTask$Response.this$1 | Field: android.view.accessibility.AccessibilityNodeInfo.mOriginalText | Field: com.android.internal.policy.BackdropFrameRenderer.mDecorView | Field: android.view.Choreographer$FrameDisplayEventReceiver.mMessageQueue (always) | Thread:FinalizerWatchdogDaemon (always) | Thread:main (always) | Thread:LeakCanary-Heap-Dump (always) | Class:java.lang.ref.WeakReference (always) | Class:java.lang.ref.SoftReference (always) | Class:java.lang.ref.PhantomReference (always) | Class:java.lang.ref.Finalizer (always) | Class:java.lang.ref.FinalizerReference (always) ```
``` In org.mozilla.fenix.debug:1.0.1910:1. * EXCLUDED LEAK. * org.mozilla.fenix.HomeActivity has leaked: * thread HandlerThread. (named 'queued-work-looper') * ↳ Message.obj , matching exclusion field android.os.Message#obj * ↳ SessionBottomSheetFragment.onArchive * ↳ HomeFragment$openSessionMenu$$inlined$also$lambda$1.this$0 (anonymous subclass of kotlin.jvm.internal.Lambda) * ↳ HomeFragment.!(sessionsComponent)! * ↳ SessionsComponent.!(container)! * ↳ LinearLayout.mContext * ↳ HomeActivity * Reference Key: 8bed214e-ba9f-48a1-bdda-81862ca7991d * Device: HTC htc HTC U11 ocndugl_00401 * Android Version: 8.0.0 API: 26 LeakCanary: 1.6.3 31007b4 * Durations: watch=16331ms, gc=187ms, heap dump=842ms, analysis=7328ms * Details: * Instance of android.os.HandlerThread | static $classOverhead = byte[424]@1884402137 (0x7051b1d9) | mHandler = null | mLooper = android.os.Looper@321133376 (0x13241b40) | mPriority = -2 | mTid = 13033 | blocker = null | blockerLock = java.lang.Object@325786152 (0x136b1a28) | contextClassLoader = dalvik.system.PathClassLoader@321256528 (0x1325fc50) | daemon = false | eetop = 0 | group = java.lang.ThreadGroup@1878098720 (0x6ff18320) | inheritableThreadLocals = null | inheritedAccessControlContext = java.security.AccessControlContext@325786160 (0x136b1a30) | lock = java.lang.Object@325786168 (0x136b1a38) | name = "queued-work-looper" | nativeParkEventPointer = 0 | nativePeer = 508941795840 | parkBlocker = null | parkState = 1 | priority = 5 | single_step = false | stackSize = 0 | started = true | stillborn = false | target = null | threadLocalRandomProbe = 0 | threadLocalRandomSecondarySeed = 0 | threadLocalRandomSeed = 0 | threadLocals = java.lang.ThreadLocal$ThreadLocalMap@325786176 (0x136b1a40) | threadQ = null | threadStatus = 0 | tid = 182307 | uncaughtExceptionHandler = null | shadow$_klass_ = android.os.HandlerThread | shadow$_monitor_ = 0 * Instance of android.os.Message | static gCheckRecycle = true | static sPoolSync = java.lang.Object@1883021736 (0x703ca1a8) | static FLAG_IN_USE = 1 | static sPoolSize = 20 | static sPool = android.os.Message@321159992 (0x13248338) | static FLAG_ASYNCHRONOUS = 2 | static MAX_POOL_SIZE = 50 | static $classOverhead = byte[297]@1883616673 (0x7045b5a1) | static CREATOR = android.os.Message$1@1883122776 (0x703e2c58) | static FLAGS_TO_CLEAR_ON_COPY_FROM = 1 | arg1 = 0 | arg2 = 0 | callback = null | data = null | flags = 0 | next = null | obj = org.mozilla.fenix.home.sessions.SessionBottomSheetFragment@325317304 (0x1363f2b8) | replyTo = null | sendingUid = -1 | target = android.app.Dialog$ListenersHandler@325317480 (0x1363f368) | what = 67 | when = 0 | shadow$_klass_ = android.os.Message | shadow$_monitor_ = 0 * Instance of org.mozilla.fenix.home.sessions.SessionBottomSheetFragment | static overflowFragmentTag = "sessionOverflow" | static $change = null | static Companion = org.mozilla.fenix.home.sessions.SessionBottomSheetFragment$Companion@322252264 (0x13352de8) | static $classOverhead = byte[1656]@322212801 (0x133493c1) | static serialVersionUID = 5463426055467058451 | static maxTitleLength = 20 | _$_findViewCache = null | archivedSession = org.mozilla.fenix.home.sessions.ArchivedSession@325317536 (0x1363f3a0) | isCurrentSession = false | onArchive = org.mozilla.fenix.home.HomeFragment$openSessionMenu$$inlined$also$lambda$1@325317584 (0x1363f3d0) | onDelete = org.mozilla.fenix.home.HomeFragment$openSessionMenu$$inlined$also$lambda$2@325317608 (0x1363f3e8) | tabTitles = "soeren-hentzschel.at..." | mBackStackId = -1 | mCancelable = true | mDialog = null | mDismissed = true | mShownByMe = false | mShowsDialog = true | mStyle = 0 | mTheme = 2131820742 | mViewDestroyed = true | mAdded = false | mAnimationInfo = null | mArguments = null | mBackStackNesting = 0 | mCalled = true | mChildFragmentManager = null | mContainer = null | mContainerId = 0 | mDeferStart = false | mDetached = false | mFragmentId = 0 | mFragmentManager = null | mFromLayout = false | mHasMenu = false | mHidden = false | mHiddenChanged = false | mHost = null | mInLayout = false | mInnerView = null | mIsCreated = false | mIsNewlyAdded = false | mLayoutInflater = null | mLifecycleRegistry = androidx.lifecycle.LifecycleRegistry@325317672 (0x1363f428) | mMenuVisible = true | mParentFragment = null | mPerformedCreateView = false | mPostponedAlpha = 0.0 | mRemoving = false | mRestored = false | mRetainInstance = false | mRetainInstanceChangedWhileDetached = false | mSavedFragmentState = null | mSavedStateRegistry = androidx.savedstate.bundle.BundleSavedStateRegistry@325317704 (0x1363f448) | mSavedUserVisibleHint = null | mSavedViewState = android.util.SparseArray@325317728 (0x1363f460) | mState = 0 | mTag = null | mTarget = null | mTargetRequestCode = 0 | mTargetWho = null | mUserVisibleHint = true | mView = null | mViewLifecycleOwner = null | mViewLifecycleOwnerLiveData = androidx.lifecycle.MutableLiveData@325317752 (0x1363f478) | mWho = "fed7411a-df6e-41eb-86ae-b319e358469c" | shadow$_klass_ = org.mozilla.fenix.home.sessions.SessionBottomSheetFragment | shadow$_monitor_ = -1992379087 * Instance of org.mozilla.fenix.home.HomeFragment$openSessionMenu$$inlined$also$lambda$1 | static $change = null | static $classOverhead = byte[144]@322197369 (0x13345779) | static serialVersionUID = 4437534369494348226 | $archivedSession$inlined = org.mozilla.fenix.home.sessions.ArchivedSession@325317536 (0x1363f3a0) | $isCurrentSession$inlined = false | this$0 = org.mozilla.fenix.home.HomeFragment@325318872 (0x1363f8d8) | arity = 0 | shadow$_klass_ = org.mozilla.fenix.home.HomeFragment$openSessionMenu$$inlined$also$lambda$1 | shadow$_monitor_ = 0 * Instance of org.mozilla.fenix.home.HomeFragment | static addTabButtonIncreaseDps = 8 | static toolbarPaddingDp = 12.0 | static $change = null | static overflowButtonIncreaseDps = 8 | static Companion = org.mozilla.fenix.home.HomeFragment$Companion@322260552 (0x13354e48) | static $classOverhead = byte[1456]@322198713 (0x13345cb9) | static secondKeyTriggerFrame = 90 | static serialVersionUID = -3317648408223501943 | static temporaryNumberOfSessions = 25 | static firstKeyTriggerFrame = 55 | _$_findViewCache = java.util.HashMap@325319032 (0x1363f978) | bus = org.mozilla.fenix.mvi.ActionBusFactory@325319072 (0x1363f9a0) | homeMenu = null | sessionObserver = org.mozilla.fenix.home.HomeFragment$subscribeToSessions$observer$1@325319096 (0x1363f9b8) | sessionsComponent = org.mozilla.fenix.home.sessions.SessionsComponent@325319112 (0x1363f9c8) | tabsComponent = org.mozilla.fenix.home.tabs.TabsComponent@325319144 (0x1363f9e8) | mAdded = false | mAnimationInfo = null | mArguments = android.os.Bundle@325319184 (0x1363fa10) | mBackStackNesting = 0 | mCalled = true | mChildFragmentManager = null | mContainer = null | mContainerId = 0 | mDeferStart = false | mDetached = false | mFragmentId = 0 | mFragmentManager = null | mFromLayout = false | mHasMenu = false | mHidden = false | mHiddenChanged = false | mHost = null | mInLayout = false | mInnerView = null | mIsCreated = false | mIsNewlyAdded = false | mLayoutInflater = null | mLifecycleRegistry = androidx.lifecycle.LifecycleRegistry@325319208 (0x1363fa28) | mMenuVisible = true | mParentFragment = androidx.navigation.fragment.NavHostFragment@325319240 (0x1363fa48) | mPerformedCreateView = false | mPostponedAlpha = 0.0 | mRemoving = false | mRestored = false | mRetainInstance = false | mRetainInstanceChangedWhileDetached = false | mSavedFragmentState = null | mSavedStateRegistry = androidx.savedstate.bundle.BundleSavedStateRegistry@325319384 (0x1363fad8) | mSavedUserVisibleHint = null | mSavedViewState = android.util.SparseArray@325319408 (0x1363faf0) | mState = 0 | mTag = null | mTarget = null | mTargetRequestCode = 0 | mTargetWho = null | mUserVisibleHint = true | mView = null | mViewLifecycleOwner = null | mViewLifecycleOwnerLiveData = androidx.lifecycle.MutableLiveData@325319432 (0x1363fb08) | mWho = "2d541309-cbf3-413b-81dd-d43a21259b07" | shadow$_klass_ = org.mozilla.fenix.home.HomeFragment | shadow$_monitor_ = -1947769262 * Instance of org.mozilla.fenix.home.sessions.SessionsComponent | static $change = null | static $classOverhead = byte[232]@322215905 (0x13349fe1) | static serialVersionUID = -7718152907179452763 | container = android.widget.LinearLayout@325520720 (0x13670d50) | initialState = org.mozilla.fenix.home.sessions.SessionsState@325784200 (0x136b1288) | reducer = org.mozilla.fenix.home.sessions.SessionsComponent$reducer$1@322250080 (0x13352560) | actionEmitter = io.reactivex.subjects.SerializedSubject@325625528 (0x1368a6b8) | changesObservable = io.reactivex.subjects.SerializedSubject@325784152 (0x136b1258) | uiView$delegate = kotlin.SynchronizedLazyImpl@325784176 (0x136b1270) | shadow$_klass_ = org.mozilla.fenix.home.sessions.SessionsComponent | shadow$_monitor_ = 0 * Instance of android.widget.LinearLayout | static INDEX_TOP = 1 | static SHOW_DIVIDER_BEGINNING = 1 | static INDEX_FILL = 3 | static SHOW_DIVIDER_NONE = 0 | static HORIZONTAL = 0 | static VERTICAL_GRAVITY_COUNT = 4 | static INDEX_BOTTOM = 2 | static SHOW_DIVIDER_END = 4 | static $classOverhead = byte[7828]@1884088409 (0x704ce859) | static VERTICAL = 1 | static SHOW_DIVIDER_MIDDLE = 2 | static INDEX_CENTER_VERTICAL = 0 | mAllowInconsistentMeasurement = false | mBaselineAligned = true | mBaselineAlignedChildIndex = -1 | mBaselineChildTop = 0 | mDivider = null | mDividerHeight = 0 | mDividerPadding = 0 | mDividerWidth = 0 | mGravity = 8388659 | mLayoutDirection = 0 | mMaxAscent = null | mMaxDescent = null | mOrientation = 1 | mShowDividers = 0 | mTotalLength = 909 | mUseLargestChild = false | mWeightSum = -1.0 | mAnimationListener = null | mCachePaint = null | mChildCountWithTransientState = 0 | mChildTransformation = null | mChildren = android.view.View[12]@325521480 (0x13671048) | mChildrenCount = 6 | mChildrenInterestedInDrag = null | mCurrentDragChild = null | mCurrentDragStartEvent = null | mDefaultFocus = null | mDisappearingChildren = null | mFirstHoverTarget = null | mFirstTouchTarget = null | mFocused = null | mFocusedInCluster = null | mGroupFlags = 2506835 | mHoveredSelf = false | mInvalidateRegion = null | mInvalidationTransformation = null | mIsInterestedInDrag = false | mLastTouchDownIndex = 5 | mLastTouchDownTime = 1259389759 | mLastTouchDownX = 1356.0 | mLastTouchDownY = 417.0 | mLayoutAnimationController = null | mLayoutCalledWhileSuppressed = false | mLayoutMode = -1 | mLayoutTransitionListener = android.view.ViewGroup$2@325521544 (0x13671088) | mLocalPoint = null | mNestedScrollAxes = 0 | mOnHierarchyChangeListener = null | mPersistentDrawingCache = 2 | mPreSortedChildren = null | mSuppressLayout = false | mTempPoint = float[2]@325521560 (0x13671098) | mTooltipHoverTarget = null | mTooltipHoveredSelf = false | mTransientIndices = null | mTransientViews = null | mTransition = null | mTransitioningViews = null | mVisibilityChangingChildren = null | mAccessibilityCursorPosition = -1 | mAccessibilityDelegate = null | mAccessibilityTraversalAfterId = -1 | mAccessibilityTraversalBeforeId = -1 | mAccessibilityViewId = -1 | mAnimator = null | mAttachInfo = null | mAttributes = null | mAutofillHints = null | mAutofillId = null | mAutofillViewId = -1 | mBackground = null | mBackgroundRenderNode = null | mBackgroundResource = 0 | mBackgroundSizeChanged = true | mBackgroundTint = null | mBottom = 909 | mCachingFailed = false | mClipBounds = null | mContentDescription = null | mContext = org.mozilla.fenix.HomeActivity@325321456 (0x136402f0) | mCurrentAnimation = null | mDefaultFocusHighlight = null | mDefaultFocusHighlightCache = null | mDefaultFocusHighlightEnabled = true | mDefaultFocusHighlightSizeChanged = true | mDrawableState = int[3]@1883422592 (0x7042bf80) | mDrawingCache = null | mDrawingCacheBackgroundColor = 0 | mFloatingTreeObserver = null | mForegroundInfo = null | mFrameMetricsObservers = null | mGhostView = null | mHasPerformedLongPress = false | mID = 2131230921 | mIgnoreNextUpEvent = false | mInContextButtonPress = false | mInputEventConsistencyVerifier = null | mIsDispatchedAccessTouchEvent = false | mKeyedTags = null | mLabelForId = -1 | mLastIsOpaque = false | mLayerPaint = null | mLayerType = 0 | mLayoutInsets = null | mLayoutParams = android.widget.FrameLayout$LayoutParams@325521584 (0x136710b0) | mLeft = 0 | mLeftPaddingDefined = false | mListenerInfo = null | mLongClickX = NaN | mLongClickY = NaN | mMatchIdPredicate = null | mMatchLabelForPredicate = null | mMeasureCache = android.util.LongSparseLongArray@325521640 (0x136710e8) | mMeasuredHeight = 909 | mMeasuredWidth = 1440 | mMinHeight = 0 | mMinWidth = 0 | mNestedScrollingParent = null | mNextClusterForwardId = -1 | mNextFocusDownId = -1 | mNextFocusForwardId = -1 | mNextFocusLeftId = -1 | mNextFocusRightId = -1 | mNextFocusUpId = -1 | mOldHeightMeasureSpec = 0 | mOldWidthMeasureSpec = 1073743264 | mOutlineProvider = android.view.ViewOutlineProvider$1@1883145312 (0x703e8460) | mOverScrollMode = 1 | mOverlay = null | mPaddingBottom = 0 | mPaddingLeft = 0 | mPaddingRight = 0 | mPaddingTop = 0 | mParent = androidx.core.widget.NestedScrollView@325521664 (0x13671100) | mPendingCheckForLongPress = null | mPendingCheckForTap = null | mPerformClick = null | mPointerIcon = null | mPrivateFlags = 19007664 | mPrivateFlags2 = 1610819112 | mPrivateFlags3 = 16 | mRecreateDisplayList = false | mRenderNode = android.view.RenderNode@325522400 (0x136713e0) | mResources = android.content.res.Resources@323484976 (0x1347fd30) | mRight = 1440 | mRightPaddingDefined = false | mRoundScrollbarRenderer = null | mRunQueue = null | mScrollCache = null | mScrollIndicatorDrawable = null | mScrollX = 0 | mScrollY = 0 | mSendViewScrolledAccessibilityEvent = null | mSendViewStateChangedAccessibilityEvent = null | mSendingHoverAccessibilityEvents = false | mStartActivityRequestWho = null | mStateListAnimator = null | mSystemUiVisibility = 0 | mTag = null | mTempNestedScrollConsumed = null | mTooltipInfo = null | mTop = 0 | mTouchDelegate = null | mTouchSlop = 28 | mTransformationInfo = null | mTransientStateCount = 0 | mTransitionName = null | mUnscaledDrawingCache = null | mUnsetPressedState = null | mUserPaddingBottom = 0 | mUserPaddingEnd = -2147483648 | mUserPaddingLeft = 0 | mUserPaddingLeftInitial = 0 | mUserPaddingRight = 0 | mUserPaddingRightInitial = 0 | mUserPaddingStart = -2147483648 | mVerticalScrollFactor = 0.0 | mVerticalScrollbarPosition = 0 | mViewFlags = 402653328 | mVisibilityChangeForAutofillHandler = null | mWindowAttachCount = 1 | shadow$_klass_ = android.widget.LinearLayout | shadow$_monitor_ = 0 * Instance of org.mozilla.fenix.HomeActivity | static OPEN_TO_BROWSER = "open_to_browser" | static $change = null | static Companion = org.mozilla.fenix.HomeActivity$Companion@323038360 (0x13412c98) | static $classOverhead = byte[4312]@321471001 (0x13294219) | static serialVersionUID = -7313422557430804236 | _$_findViewCache = null | browsingModeManager = org.mozilla.fenix.DefaultBrowsingModeManager@325470376 (0x136648a8) | themeManager = org.mozilla.fenix.DefaultThemeManager@325470392 (0x136648b8) | mDelegate = androidx.appcompat.app.AppCompatDelegateImpl@325470408 (0x136648c8) | mResources = null | mThemeId = 2131820744 | mCreated = true | mFragments = androidx.fragment.app.FragmentController@325470544 (0x13664950) | mNextCandidateRequestIndex = 0 | mPendingFragmentActivityResults = androidx.collection.SparseArrayCompat@325470560 (0x13664960) | mRequestedPermissionsFromFragment = false | mResumed = false | mStartedActivityFromFragment = false | mStartedIntentSenderFromFragment = false | mStopped = true | mLifecycleRegistry = androidx.lifecycle.LifecycleRegistry@325470584 (0x13664978) | mOnBackPressedCallbacks = java.util.concurrent.CopyOnWriteArrayList@325470616 (0x13664998) | mSavedStateRegistry = androidx.savedstate.bundle.BundleSavedStateRegistry@325470632 (0x136649a8) | mViewModelStore = androidx.lifecycle.ViewModelStore@325470656 (0x136649c0) | mExtraDataMap = androidx.collection.SimpleArrayMap@325470672 (0x136649d0) | mActionBar = null | mActionModeTypeStarting = 0 | mActivityInfo = android.content.pm.ActivityInfo@325470696 (0x136649e8) | mActivityTransitionState = android.app.ActivityTransitionState@325470848 (0x13664a80) | mApplication = org.mozilla.fenix.DebugFenixApplication@321256352 (0x1325fba0) | mAutoFillResetNeeded = true | mAutofillManager = android.view.autofill.AutofillManager@325470904 (0x13664ab8) | mAutofillPopupWindow = null | mCalled = true | mChangeCanvasToTranslucent = false | mChangingConfigurations = false | mComponent = android.content.ComponentName@325470960 (0x13664af0) | mConfigChangeFlags = 0 | mCurrentConfig = android.content.res.Configuration@325470976 (0x13664b00) | mDecor = null | mDefaultKeyMode = 0 | mDefaultKeySsb = null | mDestroyed = true | mDoReportFullyDrawn = false | mEmbeddedID = null | mEnableDefaultActionBarUp = false | mEnterTransitionListener = android.app.SharedElementCallback$1@1883110576 (0x703dfcb0) | mExitTransitionListener = android.app.SharedElementCallback$1@1883110576 (0x703dfcb0) | mFinished = true | mFragments = android.app.FragmentController@325471096 (0x13664b78) | mHandler = android.os.Handler@325471112 (0x13664b88) | mHasCurrentPermissionsRequest = false | mIdent = 195508218 | mInstanceTracker = android.os.StrictMode$InstanceTracker@325471144 (0x13664ba8) | mInstrumentation = android.app.Instrumentation@321476160 (0x13295640) | mIntent = android.content.Intent@325471160 (0x13664bb8) | mLastAutofillId = 1073741848 | mLastNonConfigurationInstances = null | mMainThread = android.app.ActivityThread@321126560 (0x132400a0) | mManagedCursors = java.util.ArrayList@325471224 (0x13664bf8) | mManagedDialogs = null | mMenuInflater = null | mParent = null | mReferrer = "com.htc.launcher" | mResultCode = 0 | mResultData = null | mResumed = false | mSearchEvent = null | mSearchManager = null | mStartedActivity = false | mStopped = true | mTaskDescription = android.app.ActivityManager$TaskDescription@325471280 (0x13664c30) | mTemporaryPause = false | mTitle = "Fenix" | mTitleColor = 0 | mTitleReady = true | mToken = android.os.BinderProxy@325471320 (0x13664c58) | mTranslucentCallback = null | mUiThread = java.lang.Thread@1938317680 (0x73886170) | mVisibleBehind = false | mVisibleFromClient = true | mVisibleFromServer = true | mVoiceInteractor = null | mWindow = com.android.internal.policy.PhoneWindow@325471352 (0x13664c78) | mWindowAdded = true | mWindowManager = android.view.WindowManagerImpl@325471720 (0x13664de8) | mInflater = com.android.internal.policy.PhoneLayoutInflater@325471744 (0x13664e00) | mOverrideConfiguration = null | mResources = android.content.res.Resources@323484976 (0x1347fd30) | mTheme = android.content.res.Resources$Theme@325471792 (0x13664e30) | mThemeResource = 2131820744 | mBase = android.app.ContextImpl@325471808 (0x13664e40) | shadow$_klass_ = org.mozilla.fenix.HomeActivity | shadow$_monitor_ = 1073742659 * Excluded Refs: | Field: android.os.Message.obj | Field: android.os.Message.next | Field: android.os.Message.target | Field: android.view.inputmethod.InputMethodManager.mNextServedView | Field: android.view.inputmethod.InputMethodManager.mServedView | Field: android.view.inputmethod.InputMethodManager.mServedInputConnection | Field: android.view.inputmethod.InputMethodManager.mCurRootView | Field: android.accounts.AccountManager$AmsTask$Response.this$1 | Field: android.view.accessibility.AccessibilityNodeInfo.mOriginalText | Field: com.android.internal.policy.BackdropFrameRenderer.mDecorView | Field: android.view.Choreographer$FrameDisplayEventReceiver.mMessageQueue (always) | Thread:FinalizerWatchdogDaemon (always) | Thread:main (always) | Thread:LeakCanary-Heap-Dump (always) | Class:java.lang.ref.WeakReference (always) | Class:java.lang.ref.SoftReference (always) | Class:java.lang.ref.PhantomReference (always) | Class:java.lang.ref.Finalizer (always) | Class:java.lang.ref.FinalizerReference (always) ```
cadeyrn commented 5 years ago

New leaks, again different ones:

``` In org.mozilla.fenix.debug:1.0.1910:1. * androidx.lifecycle.ReportFragment has leaked: * static ActionBusFactory.buses * ↳ LinkedHashMap.head * ↳ LinkedHashMap$LinkedHashMapEntry.key * ↳ HomeFragment.mFragmentManager * ↳ FragmentManagerImpl.mPrimaryNav * ↳ BrowserFragment.!(toolbarComponent)! * ↳ ToolbarComponent.!(container)! * ↳ CoordinatorLayout.mContext * ↳ HomeActivity.mFragments * ↳ FragmentController.mHost * ↳ Activity$HostCallbacks.mFragmentManager * ↳ FragmentManagerImpl.mAdded * ↳ ArrayList.elementData * ↳ array Object[].[0] * ↳ ReportFragment * Reference Key: e4f8784a-dd10-47ae-a717-f8229a3c83b3 * Device: HTC htc HTC U11 ocndugl_00401 * Android Version: 8.0.0 API: 26 LeakCanary: 1.6.3 31007b4 * Durations: watch=5087ms, gc=188ms, heap dump=1862ms, analysis=7397ms * Details: * Class org.mozilla.fenix.mvi.ActionBusFactory | static serialVersionUID = 9207631619776038553 | static buses = java.util.LinkedHashMap@316495208 (0x12dd5568) | static $change = null | static Companion = org.mozilla.fenix.mvi.ActionBusFactory$Companion@316495200 (0x12dd5560) | static $classOverhead = byte[200]@315946913 (0x12d4f7a1) * Instance of java.util.LinkedHashMap | static serialVersionUID = 3801124242820219131 | static $classOverhead = byte[448]@1878825449 (0x6ffc99e9) | accessOrder = false | head = java.util.LinkedHashMap$LinkedHashMapEntry@316495344 (0x12dd55f0) | tail = java.util.LinkedHashMap$LinkedHashMapEntry@316495344 (0x12dd55f0) | entrySet = null | loadFactor = 0.75 | modCount = 5 | size = 1 | table = java.util.HashMap$Node[16]@316495264 (0x12dd55a0) | threshold = 12 | keySet = null | values = null | shadow$_klass_ = java.util.LinkedHashMap | shadow$_monitor_ = 0 * Instance of java.util.LinkedHashMap$LinkedHashMapEntry | static $classOverhead = byte[128]@1878829873 (0x6ffcab31) | after = null | before = null | hash = 181551823 | key = org.mozilla.fenix.home.HomeFragment@316495376 (0x12dd5610) | next = null | value = org.mozilla.fenix.mvi.ActionBusFactory@316495536 (0x12dd56b0) | shadow$_klass_ = java.util.LinkedHashMap$LinkedHashMapEntry | shadow$_monitor_ = 0 * Instance of org.mozilla.fenix.home.HomeFragment | static serialVersionUID = -3317648408223501943 | static temporaryNumberOfSessions = 25 | static overflowButtonIncreaseDps = 8 | static firstKeyTriggerFrame = 55 | static secondKeyTriggerFrame = 90 | static toolbarPaddingDp = 12.0 | static $change = null | static addTabButtonIncreaseDps = 8 | static Companion = org.mozilla.fenix.home.HomeFragment$Companion@316300968 (0x12da5ea8) | static $classOverhead = byte[1456]@316282001 (0x12da1491) | _$_findViewCache = null | bus = org.mozilla.fenix.mvi.ActionBusFactory@316495536 (0x12dd56b0) | homeMenu = null | sessionObserver = null | sessionsComponent = null | tabsComponent = null | mAdded = false | mAnimationInfo = null | mArguments = null | mBackStackNesting = 0 | mCalled = false | mChildFragmentManager = null | mContainer = null | mContainerId = 2131230839 | mDeferStart = false | mDetached = false | mFragmentId = 2131230839 | mFragmentManager = androidx.fragment.app.FragmentManagerImpl@316495616 (0x12dd5700) | mFromLayout = false | mHasMenu = false | mHidden = false | mHiddenChanged = false | mHost = null | mInLayout = false | mInnerView = null | mIsCreated = false | mIsNewlyAdded = false | mLayoutInflater = null | mLifecycleRegistry = androidx.lifecycle.LifecycleRegistry@316495728 (0x12dd5770) | mMenuVisible = true | mParentFragment = null | mPerformedCreateView = false | mPostponedAlpha = 0.0 | mRemoving = true | mRestored = false | mRetainInstance = false | mRetainInstanceChangedWhileDetached = false | mSavedFragmentState = null | mSavedStateRegistry = androidx.savedstate.bundle.BundleSavedStateRegistry@316495760 (0x12dd5790) | mSavedUserVisibleHint = null | mSavedViewState = null | mState = 0 | mTag = null | mTarget = null | mTargetRequestCode = 0 | mTargetWho = null | mUserVisibleHint = true | mView = null | mViewLifecycleOwner = null | mViewLifecycleOwnerLiveData = androidx.lifecycle.MutableLiveData@316495784 (0x12dd57a8) | mWho = "be444d9b-84d6-4b4b-b2fb-a1ab4cde8025" | shadow$_klass_ = org.mozilla.fenix.home.HomeFragment | shadow$_monitor_ = -1965930467 * Instance of androidx.fragment.app.FragmentManagerImpl | static ANIM_DUR = 220 | static DEBUG = false | static TARGET_STATE_TAG = "android:target_state" | static ANIM_STYLE_CLOSE_EXIT = 4 | static ANIM_STYLE_OPEN_EXIT = 2 | static sAnimationListenerField = null | static DECELERATE_CUBIC = android.view.animation.DecelerateInterpolator@316897520 (0x12e378f0) | static USER_VISIBLE_HINT_TAG = "android:user_visible_hint" | static DECELERATE_QUINT = android.view.animation.DecelerateInterpolator@316897536 (0x12e37900) | static ANIM_STYLE_FADE_EXIT = 6 | static TARGET_REQUEST_CODE_STATE_TAG = "android:target_req_state" | static TAG = "FragmentManager" | static ANIM_STYLE_CLOSE_ENTER = 3 | static ANIM_STYLE_OPEN_ENTER = 1 | static ANIM_STYLE_FADE_ENTER = 5 | static $classOverhead = byte[1021]@315335849 (0x12cba4a9) | static VIEW_STATE_TAG = "android:view_state" | mActive = java.util.HashMap@316497696 (0x12dd5f20) | mAdded = java.util.ArrayList@316497736 (0x12dd5f48) | mAvailBackStackIndices = null | mBackStack = null | mBackStackChangeListeners = java.util.ArrayList@316497760 (0x12dd5f60) | mBackStackIndices = null | mContainer = null | mCreatedMenus = null | mCurState = 0 | mDestroyed = true | mExecCommit = androidx.fragment.app.FragmentManagerImpl$1@316497784 (0x12dd5f78) | mExecutingActions = false | mHavePendingDeferredStart = false | mHost = null | mLifecycleCallbacks = java.util.concurrent.CopyOnWriteArrayList@316497800 (0x12dd5f88) | mNeedMenuInvalidate = false | mNextFragmentIndex = 0 | mNonConfig = androidx.fragment.app.FragmentManagerViewModel@316497816 (0x12dd5f98) | mParent = null | mPendingActions = java.util.ArrayList@316497848 (0x12dd5fb8) | mPostponedTransactions = null | mPrimaryNav = org.mozilla.fenix.browser.BrowserFragment@316497872 (0x12dd5fd0) | mStateArray = null | mStateBundle = null | mStateSaved = false | mStopped = true | mTmpAddedFragments = java.util.ArrayList@316498056 (0x12dd6088) | mTmpIsPop = java.util.ArrayList@316498080 (0x12dd60a0) | mTmpRecords = java.util.ArrayList@316498104 (0x12dd60b8) | mFragmentFactory = null | shadow$_klass_ = androidx.fragment.app.FragmentManagerImpl | shadow$_monitor_ = 0 * Instance of org.mozilla.fenix.browser.BrowserFragment | static serialVersionUID = 7903370502870768598 | static REQUEST_CODE_DOWNLOAD_PERMISSIONS = 1 | static REQUEST_CODE_APP_PERMISSIONS = 3 | static TOOLBAR_HEIGHT = 56.0 | static $change = null | static Companion = org.mozilla.fenix.browser.BrowserFragment$Companion@316773544 (0x12e194a8) | static $classOverhead = byte[1476]@315928857 (0x12d4b119) | static REPORT_SITE_ISSUE_URL = "https://webcompat.com/issues/new?url=%s&label=browser-fenix" | static REQUEST_CODE_PROMPT_PERMISSIONS = 2 | _$_findViewCache = null | contextMenuFeature = mozilla.components.support.base.feature.ViewBoundFeatureWrapper@316498296 (0x12dd6178) | customTabsToolbarFeature = mozilla.components.support.base.feature.ViewBoundFeatureWrapper@316498328 (0x12dd6198) | downloadsFeature = mozilla.components.support.base.feature.ViewBoundFeatureWrapper@316498360 (0x12dd61b8) | findInPageIntegration = mozilla.components.support.base.feature.ViewBoundFeatureWrapper@316498392 (0x12dd61d8) | fullScreenFeature = mozilla.components.support.base.feature.ViewBoundFeatureWrapper@316498424 (0x12dd61f8) | promptsFeature = mozilla.components.support.base.feature.ViewBoundFeatureWrapper@316498456 (0x12dd6218) | sessionFeature = mozilla.components.support.base.feature.ViewBoundFeatureWrapper@316498488 (0x12dd6238) | sessionId = null | sitePermissionsFeature = mozilla.components.support.base.feature.ViewBoundFeatureWrapper@316498520 (0x12dd6258) | toolbarComponent = org.mozilla.fenix.components.toolbar.ToolbarComponent@316498552 (0x12dd6278) | toolbarIntegration = mozilla.components.support.base.feature.ViewBoundFeatureWrapper@316498592 (0x12dd62a0) | mAdded = false | mAnimationInfo = null | mArguments = android.os.Bundle@316498624 (0x12dd62c0) | mBackStackNesting = 0 | mCalled = true | mChildFragmentManager = null | mContainer = null | mContainerId = 0 | mDeferStart = false | mDetached = false | mFragmentId = 0 | mFragmentManager = null | mFromLayout = false | mHasMenu = false | mHidden = false | mHiddenChanged = false | mHost = null | mInLayout = false | mInnerView = null | mIsCreated = false | mIsNewlyAdded = false | mLayoutInflater = null | mLifecycleRegistry = androidx.lifecycle.LifecycleRegistry@316498648 (0x12dd62d8) | mMenuVisible = true | mParentFragment = androidx.navigation.fragment.NavHostFragment@316498680 (0x12dd62f8) | mPerformedCreateView = false | mPostponedAlpha = 0.0 | mRemoving = false | mRestored = false | mRetainInstance = false | mRetainInstanceChangedWhileDetached = false | mSavedFragmentState = null | mSavedStateRegistry = androidx.savedstate.bundle.BundleSavedStateRegistry@316498824 (0x12dd6388) | mSavedUserVisibleHint = null | mSavedViewState = null | mState = 0 | mTag = null | mTarget = null | mTargetRequestCode = 0 | mTargetWho = null | mUserVisibleHint = true | mView = null | mViewLifecycleOwner = null | mViewLifecycleOwnerLiveData = androidx.lifecycle.MutableLiveData@316498848 (0x12dd63a0) | mWho = "dfa491a9-8a9f-4065-8bd4-72fcb9c9882b" | shadow$_klass_ = org.mozilla.fenix.browser.BrowserFragment | shadow$_monitor_ = -1998483855 * Instance of org.mozilla.fenix.components.toolbar.ToolbarComponent | static serialVersionUID = -3448913190523384436 | static $change = null | static $classOverhead = byte[232]@315934721 (0x12d4c801) | container = androidx.coordinatorlayout.widget.CoordinatorLayout@316613720 (0x12df2458) | initialState = org.mozilla.fenix.components.toolbar.SearchState@316614400 (0x12df2700) | isPrivate = false | reducer = org.mozilla.fenix.components.toolbar.ToolbarComponent$reducer$1@316614416 (0x12df2710) | sessionId = null | actionEmitter = io.reactivex.subjects.SerializedSubject@316613648 (0x12df2410) | changesObservable = io.reactivex.subjects.SerializedSubject@316613672 (0x12df2428) | uiView$delegate = kotlin.SynchronizedLazyImpl@316613696 (0x12df2440) | shadow$_klass_ = org.mozilla.fenix.components.toolbar.ToolbarComponent | shadow$_monitor_ = 0 * Instance of androidx.coordinatorlayout.widget.CoordinatorLayout | static EVENT_VIEW_REMOVED = 2 | static TOP_SORTED_CHILDREN_COMPARATOR = androidx.coordinatorlayout.widget.CoordinatorLayout$ViewElevationComparator@316830272 (0x12e27240) | static TYPE_ON_TOUCH = 1 | static sRectPool = androidx.core.util.Pools$SynchronizedPool@316830352 (0x12e27290) | static EVENT_PRE_DRAW = 0 | static TAG = "CoordinatorLayout" | static WIDGET_PACKAGE_NAME = "androidx.coordinatorlayout.widget" | static sConstructors = java.lang.ThreadLocal@316830336 (0x12e27280) | static TYPE_ON_INTERCEPT = 0 | static $classOverhead = byte[7772]@315693489 (0x12d119b1) | static CONSTRUCTOR_PARAMS = java.lang.Class[2]@316830248 (0x12e27228) | static EVENT_NESTED_SCROLL = 1 | mApplyWindowInsetsListener = null | mBehaviorTouchView = null | mChildDag = androidx.coordinatorlayout.widget.DirectedAcyclicGraph@316614432 (0x12df2720) | mDependencySortedChildren = java.util.ArrayList@316614456 (0x12df2738) | mDisallowInterceptReset = false | mDrawStatusBarBackground = false | mIsAttachedToWindow = false | mKeylines = null | mLastInsets = null | mNeedsPreDrawListener = true | mNestedScrollingParentHelper = androidx.core.view.NestedScrollingParentHelper@316614480 (0x12df2750) | mNestedScrollingTarget = null | mOnHierarchyChangeListener = null | mOnPreDrawListener = androidx.coordinatorlayout.widget.CoordinatorLayout$OnPreDrawListener@316614496 (0x12df2760) | mScrimPaint = null | mStatusBarBackground = null | mTempDependenciesList = java.util.ArrayList@316614512 (0x12df2770) | mTempIntPair = int[2]@316614536 (0x12df2788) | mTempList1 = java.util.ArrayList@316614560 (0x12df27a0) | mAnimationListener = null | mCachePaint = null | mChildCountWithTransientState = 0 | mChildTransformation = null | mChildren = android.view.View[12]@316614584 (0x12df27b8) | mChildrenCount = 3 | mChildrenInterestedInDrag = null | mCurrentDragChild = null | mCurrentDragStartEvent = null | mDefaultFocus = null | mDisappearingChildren = null | mFirstHoverTarget = null | mFirstTouchTarget = null | mFocused = null | mFocusedInCluster = null | mGroupFlags = 2244691 | mHoveredSelf = false | mInvalidateRegion = null | mInvalidationTransformation = null | mIsInterestedInDrag = false | mLastTouchDownIndex = 0 | mLastTouchDownTime = 1291038175 | mLastTouchDownX = 977.0 | mLastTouchDownY = 1948.0 | mLayoutAnimationController = null | mLayoutCalledWhileSuppressed = false | mLayoutMode = -1 | mLayoutTransitionListener = android.view.ViewGroup$2@316614648 (0x12df27f8) | mLocalPoint = null | mNestedScrollAxes = 0 | mOnHierarchyChangeListener = androidx.coordinatorlayout.widget.CoordinatorLayout$HierarchyChangeListener@316614664 (0x12df2808) | mPersistentDrawingCache = 2 | mPreSortedChildren = null | mSuppressLayout = false | mTempPoint = float[2]@316614680 (0x12df2818) | mTooltipHoverTarget = null | mTooltipHoveredSelf = false | mTransientIndices = null | mTransientViews = null | mTransition = null | mTransitioningViews = null | mVisibilityChangingChildren = null | mAccessibilityCursorPosition = -1 | mAccessibilityDelegate = null | mAccessibilityTraversalAfterId = -1 | mAccessibilityTraversalBeforeId = -1 | mAccessibilityViewId = -1 | mAnimator = null | mAttachInfo = null | mAttributes = null | mAutofillHints = null | mAutofillId = null | mAutofillViewId = -1 | mBackground = null | mBackgroundRenderNode = null | mBackgroundResource = 0 | mBackgroundSizeChanged = true | mBackgroundTint = null | mBottom = 2464 | mCachingFailed = false | mClipBounds = null | mContentDescription = null | mContext = org.mozilla.fenix.HomeActivity@316500456 (0x12dd69e8) | mCurrentAnimation = null | mDefaultFocusHighlight = null | mDefaultFocusHighlightCache = null | mDefaultFocusHighlightEnabled = true | mDefaultFocusHighlightSizeChanged = true | mDrawableState = int[2]@1883422568 (0x7042bf68) | mDrawingCache = null | mDrawingCacheBackgroundColor = 0 | mFloatingTreeObserver = null | mForegroundInfo = null | mFrameMetricsObservers = null | mGhostView = null | mHasPerformedLongPress = false | mID = 2131230817 | mIgnoreNextUpEvent = false | mInContextButtonPress = false | mInputEventConsistencyVerifier = null | mIsDispatchedAccessTouchEvent = false | mKeyedTags = null | mLabelForId = -1 | mLastIsOpaque = false | mLayerPaint = null | mLayerType = 0 | mLayoutInsets = null | mLayoutParams = android.widget.FrameLayout$LayoutParams@316614704 (0x12df2830) | mLeft = 0 | mLeftPaddingDefined = false | mListenerInfo = android.view.View$ListenerInfo@316614760 (0x12df2868) | mLongClickX = NaN | mLongClickY = NaN | mMatchIdPredicate = null | mMatchLabelForPredicate = null | mMeasureCache = android.util.LongSparseLongArray@316614832 (0x12df28b0) | mMeasuredHeight = 2464 | mMeasuredWidth = 1440 | mMinHeight = 0 | mMinWidth = 0 | mNestedScrollingParent = null | mNextClusterForwardId = -1 | mNextFocusDownId = -1 | mNextFocusForwardId = -1 | mNextFocusLeftId = -1 | mNextFocusRightId = -1 | mNextFocusUpId = -1 | mOldHeightMeasureSpec = 1073744288 | mOldWidthMeasureSpec = 1073743264 | mOutlineProvider = android.view.ViewOutlineProvider$1@1883145312 (0x703e8460) | mOverScrollMode = 1 | mOverlay = null | mPaddingBottom = 0 | mPaddingLeft = 0 | mPaddingRight = 0 | mPaddingTop = 0 | mParent = null | mPendingCheckForLongPress = null | mPendingCheckForTap = null | mPerformClick = null | mPointerIcon = null | mPrivateFlags = -2128606544 | mPrivateFlags2 = 1610819112 | mPrivateFlags3 = 16 | mRecreateDisplayList = false | mRenderNode = android.view.RenderNode@316614856 (0x12df28c8) | mResources = android.content.res.Resources@316510600 (0x12dd9188) | mRight = 1440 | mRightPaddingDefined = false | mRoundScrollbarRenderer = null | mRunQueue = null | mScrollCache = null | mScrollIndicatorDrawable = null | mScrollX = 0 | mScrollY = 0 | mSendViewScrolledAccessibilityEvent = null | mSendViewStateChangedAccessibilityEvent = null | mSendingHoverAccessibilityEvents = false | mStartActivityRequestWho = null | mStateListAnimator = null | mSystemUiVisibility = 0 | mTag = null | mTempNestedScrollConsumed = null | mTooltipInfo = null | mTop = 0 | mTouchDelegate = null | mTouchSlop = 28 | mTransformationInfo = null | mTransientStateCount = 0 | mTransitionName = null | mUnscaledDrawingCache = null | mUnsetPressedState = null | mUserPaddingBottom = 0 | mUserPaddingEnd = -2147483648 | mUserPaddingLeft = 0 | mUserPaddingLeftInitial = 0 | mUserPaddingRight = 0 | mUserPaddingRightInitial = 0 | mUserPaddingStart = -2147483648 | mVerticalScrollFactor = 0.0 | mVerticalScrollbarPosition = 0 | mViewFlags = 939524240 | mVisibilityChangeForAutofillHandler = null | mWindowAttachCount = 1 | shadow$_klass_ = androidx.coordinatorlayout.widget.CoordinatorLayout | shadow$_monitor_ = 0 * Instance of org.mozilla.fenix.HomeActivity | static serialVersionUID = 4111946002713664296 | static OPEN_TO_BROWSER = "open_to_browser" | static $change = null | static Companion = org.mozilla.fenix.HomeActivity$Companion@316774832 (0x12e199b0) | static $classOverhead = byte[4312]@315919177 (0x12d48b49) | _$_findViewCache = null | browsingModeManager = org.mozilla.fenix.DefaultBrowsingModeManager@316509136 (0x12dd8bd0) | themeManager = org.mozilla.fenix.DefaultThemeManager@316509152 (0x12dd8be0) | mDelegate = androidx.appcompat.app.AppCompatDelegateImpl@316509168 (0x12dd8bf0) | mResources = null | mThemeId = 2131820744 | mCreated = true | mFragments = androidx.fragment.app.FragmentController@316509304 (0x12dd8c78) | mNextCandidateRequestIndex = 0 | mPendingFragmentActivityResults = androidx.collection.SparseArrayCompat@316509320 (0x12dd8c88) | mRequestedPermissionsFromFragment = false | mResumed = false | mStartedActivityFromFragment = false | mStartedIntentSenderFromFragment = false | mStopped = true | mLifecycleRegistry = androidx.lifecycle.LifecycleRegistry@316509344 (0x12dd8ca0) | mOnBackPressedCallbacks = java.util.concurrent.CopyOnWriteArrayList@316509376 (0x12dd8cc0) | mSavedStateRegistry = androidx.savedstate.bundle.BundleSavedStateRegistry@316509392 (0x12dd8cd0) | mViewModelStore = androidx.lifecycle.ViewModelStore@316509416 (0x12dd8ce8) | mExtraDataMap = androidx.collection.SimpleArrayMap@316509432 (0x12dd8cf8) | mActionBar = null | mActionModeTypeStarting = 0 | mActivityInfo = android.content.pm.ActivityInfo@316509456 (0x12dd8d10) | mActivityTransitionState = android.app.ActivityTransitionState@316509608 (0x12dd8da8) | mApplication = org.mozilla.fenix.DebugFenixApplication@315173320 (0x12c929c8) | mAutoFillResetNeeded = false | mAutofillManager = null | mAutofillPopupWindow = null | mCalled = true | mChangeCanvasToTranslucent = false | mChangingConfigurations = false | mComponent = android.content.ComponentName@316509664 (0x12dd8de0) | mConfigChangeFlags = 0 | mCurrentConfig = android.content.res.Configuration@316509680 (0x12dd8df0) | mDecor = null | mDefaultKeyMode = 0 | mDefaultKeySsb = null | mDestroyed = true | mDoReportFullyDrawn = false | mEmbeddedID = null | mEnableDefaultActionBarUp = false | mEnterTransitionListener = android.app.SharedElementCallback$1@1883110576 (0x703dfcb0) | mExitTransitionListener = android.app.SharedElementCallback$1@1883110576 (0x703dfcb0) | mFinished = true | mFragments = android.app.FragmentController@316509800 (0x12dd8e68) | mHandler = android.os.Handler@316509816 (0x12dd8e78) | mHasCurrentPermissionsRequest = false | mIdent = 226164561 | mInstanceTracker = android.os.StrictMode$InstanceTracker@316509848 (0x12dd8e98) | mInstrumentation = android.app.Instrumentation@316509864 (0x12dd8ea8) | mIntent = android.content.Intent@316509936 (0x12dd8ef0) | mLastAutofillId = 1073741825 | mLastNonConfigurationInstances = null | mMainThread = android.app.ActivityThread@315097248 (0x12c800a0) | mManagedCursors = java.util.ArrayList@316510000 (0x12dd8f30) | mManagedDialogs = null | mMenuInflater = null | mParent = null | mReferrer = "org.mozilla.fenix.debug" | mResultCode = 0 | mResultData = null | mResumed = false | mSearchEvent = null | mSearchManager = null | mStartedActivity = false | mStopped = true | mTaskDescription = android.app.ActivityManager$TaskDescription@316510064 (0x12dd8f70) | mTemporaryPause = false | mTitle = "Fenix" | mTitleColor = 0 | mTitleReady = true | mToken = android.os.BinderProxy@316510128 (0x12dd8fb0) | mTranslucentCallback = null | mUiThread = java.lang.Thread@1938317680 (0x73886170) | mVisibleBehind = false | mVisibleFromClient = true | mVisibleFromServer = true | mVoiceInteractor = null | mWindow = com.android.internal.policy.PhoneWindow@316510160 (0x12dd8fd0) | mWindowAdded = true | mWindowManager = android.view.WindowManagerImpl@316510528 (0x12dd9140) | mInflater = com.android.internal.policy.PhoneLayoutInflater@316510552 (0x12dd9158) | mOverrideConfiguration = null | mResources = android.content.res.Resources@316510600 (0x12dd9188) | mTheme = android.content.res.Resources$Theme@316510640 (0x12dd91b0) | mThemeResource = 2131820744 | mBase = android.app.ContextImpl@316510656 (0x12dd91c0) | shadow$_klass_ = org.mozilla.fenix.HomeActivity | shadow$_monitor_ = 1073751268 * Instance of android.app.FragmentController | static $classOverhead = byte[416]@1884213649 (0x704ed191) | mHost = android.app.Activity$HostCallbacks@316601992 (0x12def688) | shadow$_klass_ = android.app.FragmentController | shadow$_monitor_ = 0 * Instance of android.app.Activity$HostCallbacks | static $classOverhead = byte[368]@1883853665 (0x70495361) | this$0 = org.mozilla.fenix.HomeActivity@316500456 (0x12dd69e8) | mActivity = org.mozilla.fenix.HomeActivity@316500456 (0x12dd69e8) | mAllLoaderManagers = android.util.ArrayMap@316602040 (0x12def6b8) | mCheckedForLoaderManager = true | mContext = org.mozilla.fenix.HomeActivity@316500456 (0x12dd69e8) | mFragmentManager = android.app.FragmentManagerImpl@316602072 (0x12def6d8) | mHandler = android.os.Handler@316509816 (0x12dd8e78) | mLoaderManager = null | mLoadersStarted = true | mRetainLoaders = false | mWindowAnimations = 0 | shadow$_klass_ = android.app.Activity$HostCallbacks | shadow$_monitor_ = 0 * Instance of android.app.FragmentManagerImpl | static USER_VISIBLE_HINT_TAG = "android:user_visible_hint" | static DEBUG = false | static TARGET_STATE_TAG = "android:target_state" | static TARGET_REQUEST_CODE_STATE_TAG = "android:target_req_state" | static TAG = "FragmentManager" | static $classOverhead = byte[941]@1883056169 (0x703d2829) | static VIEW_STATE_TAG = "android:view_state" | mActive = android.util.SparseArray@316602184 (0x12def748) | mAdded = java.util.ArrayList@316602208 (0x12def760) | mAllowOldReentrantBehavior = false | mAvailBackStackIndices = null | mBackStack = null | mBackStackChangeListeners = null | mBackStackIndices = null | mContainer = null | mCreatedMenus = null | mCurState = 0 | mDestroyed = true | mExecCommit = android.app.FragmentManagerImpl$1@316602232 (0x12def778) | mExecutingActions = false | mHavePendingDeferredStart = false | mHost = null | mLifecycleCallbacks = java.util.concurrent.CopyOnWriteArrayList@316602248 (0x12def788) | mNeedMenuInvalidate = false | mNextFragmentIndex = 1 | mNoTransactionsBecause = null | mParent = null | mPendingActions = java.util.ArrayList@316602264 (0x12def798) | mPostponedTransactions = null | mPrimaryNav = null | mSavedNonConfig = null | mStateArray = null | mStateBundle = android.os.Bundle@316602288 (0x12def7b0) | mStateSaved = false | mTmpAddedFragments = java.util.ArrayList@316602312 (0x12def7c8) | mTmpIsPop = java.util.ArrayList@316602336 (0x12def7e0) | mTmpRecords = java.util.ArrayList@316602360 (0x12def7f8) | shadow$_klass_ = android.app.FragmentManagerImpl | shadow$_monitor_ = 0 * Instance of java.util.ArrayList | static serialVersionUID = 8683452581122892189 | static MAX_ARRAY_SIZE = 2147483639 | static DEFAULTCAPACITY_EMPTY_ELEMENTDATA = java.lang.Object[0]@1883335224 (0x70416a38) | static $classOverhead = byte[392]@1878534825 (0x6ff82aa9) | static DEFAULT_CAPACITY = 10 | static EMPTY_ELEMENTDATA = java.lang.Object[0]@1880957160 (0x701d20e8) | elementData = java.lang.Object[10]@316603328 (0x12defbc0) | size = 1 | modCount = 1 | shadow$_klass_ = java.util.ArrayList | shadow$_monitor_ = 0 * Array of java.lang.Object[] | [0] = androidx.lifecycle.ReportFragment@316603384 (0x12defbf8) | [1] = null | [2] = null | [3] = null | [4] = null | [5] = null | [6] = null | [7] = null | [8] = null | [9] = null * Instance of androidx.lifecycle.ReportFragment | static REPORT_FRAGMENT_TAG = "androidx.lifecycle.LifecycleDispatcher.report_fragment_tag" | static $classOverhead = byte[1332]@315371913 (0x12cc3189) | mProcessListener = null | mAdded = false | mAnimationInfo = null | mArguments = null | mBackStackNesting = 0 | mCalled = true | mCheckedForLoaderManager = false | mChildFragmentManager = null | mChildNonConfig = null | mContainer = null | mContainerId = 0 | mDeferStart = false | mDetached = false | mFragmentId = 0 | mFragmentManager = null | mFromLayout = false | mHasMenu = false | mHidden = false | mHiddenChanged = false | mHost = null | mInLayout = false | mIndex = -1 | mIsNewlyAdded = false | mLayoutInflater = null | mLoaderManager = null | mLoadersStarted = false | mMenuVisible = true | mParentFragment = null | mPerformedCreateView = false | mRemoving = false | mRestored = false | mRetainInstance = false | mRetaining = false | mSavedFragmentState = null | mSavedViewState = null | mState = 0 | mTag = null | mTarget = null | mTargetIndex = -1 | mTargetRequestCode = 0 | mUserVisibleHint = true | mView = null | mWho = null | shadow$_klass_ = androidx.lifecycle.ReportFragment | shadow$_monitor_ = 0 * Excluded Refs: | Field: android.os.Message.obj | Field: android.os.Message.next | Field: android.os.Message.target | Field: android.view.inputmethod.InputMethodManager.mNextServedView | Field: android.view.inputmethod.InputMethodManager.mServedView | Field: android.view.inputmethod.InputMethodManager.mServedInputConnection | Field: android.view.inputmethod.InputMethodManager.mCurRootView | Field: android.accounts.AccountManager$AmsTask$Response.this$1 | Field: android.view.accessibility.AccessibilityNodeInfo.mOriginalText | Field: com.android.internal.policy.BackdropFrameRenderer.mDecorView | Field: android.view.Choreographer$FrameDisplayEventReceiver.mMessageQueue (always) | Thread:FinalizerWatchdogDaemon (always) | Thread:main (always) | Thread:LeakCanary-Heap-Dump (always) | Class:java.lang.ref.WeakReference (always) | Class:java.lang.ref.SoftReference (always) | Class:java.lang.ref.PhantomReference (always) | Class:java.lang.ref.Finalizer (always) | Class:java.lang.ref.FinalizerReference (always) ```
``` In org.mozilla.fenix.debug:1.0.1910:1. * org.mozilla.fenix.HomeActivity has leaked: * static ActionBusFactory.buses * ↳ LinkedHashMap.head * ↳ LinkedHashMap$LinkedHashMapEntry.key * ↳ HomeFragment.mFragmentManager * ↳ FragmentManagerImpl.mPrimaryNav * ↳ BrowserFragment.!(toolbarComponent)! * ↳ ToolbarComponent.!(container)! * ↳ CoordinatorLayout.mContext * ↳ HomeActivity * Reference Key: f94af49c-d37a-4d67-b802-907122d0c706 * Device: HTC htc HTC U11 ocndugl_00401 * Android Version: 8.0.0 API: 26 LeakCanary: 1.6.3 31007b4 * Durations: watch=17450ms, gc=196ms, heap dump=1853ms, analysis=6261ms * Details: * Class org.mozilla.fenix.mvi.ActionBusFactory | static serialVersionUID = 9207631619776038553 | static buses = java.util.LinkedHashMap@316489528 (0x12dd3f38) | static $change = null | static Companion = org.mozilla.fenix.mvi.ActionBusFactory$Companion@316489520 (0x12dd3f30) | static $classOverhead = byte[200]@316471201 (0x12dcf7a1) * Instance of java.util.LinkedHashMap | static serialVersionUID = 3801124242820219131 | static $classOverhead = byte[448]@1878825449 (0x6ffc99e9) | accessOrder = false | head = java.util.LinkedHashMap$LinkedHashMapEntry@316489664 (0x12dd3fc0) | tail = java.util.LinkedHashMap$LinkedHashMapEntry@316489664 (0x12dd3fc0) | entrySet = null | loadFactor = 0.75 | modCount = 5 | size = 1 | table = java.util.HashMap$Node[16]@316489584 (0x12dd3f70) | threshold = 12 | keySet = null | values = null | shadow$_klass_ = java.util.LinkedHashMap | shadow$_monitor_ = 0 * Instance of java.util.LinkedHashMap$LinkedHashMapEntry | static $classOverhead = byte[128]@1878829873 (0x6ffcab31) | after = null | before = null | hash = 181551823 | key = org.mozilla.fenix.home.HomeFragment@316489696 (0x12dd3fe0) | next = null | value = org.mozilla.fenix.mvi.ActionBusFactory@316489856 (0x12dd4080) | shadow$_klass_ = java.util.LinkedHashMap$LinkedHashMapEntry | shadow$_monitor_ = 0 * Instance of org.mozilla.fenix.home.HomeFragment | static serialVersionUID = -3317648408223501943 | static temporaryNumberOfSessions = 25 | static overflowButtonIncreaseDps = 8 | static firstKeyTriggerFrame = 55 | static secondKeyTriggerFrame = 90 | static toolbarPaddingDp = 12.0 | static $change = null | static addTabButtonIncreaseDps = 8 | static Companion = org.mozilla.fenix.home.HomeFragment$Companion@317037784 (0x12e59cd8) | static $classOverhead = byte[1456]@316489937 (0x12dd40d1) | _$_findViewCache = null | bus = org.mozilla.fenix.mvi.ActionBusFactory@316489856 (0x12dd4080) | homeMenu = null | sessionObserver = null | sessionsComponent = null | tabsComponent = null | mAdded = false | mAnimationInfo = null | mArguments = null | mBackStackNesting = 0 | mCalled = false | mChildFragmentManager = null | mContainer = null | mContainerId = 2131230839 | mDeferStart = false | mDetached = false | mFragmentId = 2131230839 | mFragmentManager = androidx.fragment.app.FragmentManagerImpl@316491512 (0x12dd46f8) | mFromLayout = false | mHasMenu = false | mHidden = false | mHiddenChanged = false | mHost = null | mInLayout = false | mInnerView = null | mIsCreated = false | mIsNewlyAdded = false | mLayoutInflater = null | mLifecycleRegistry = androidx.lifecycle.LifecycleRegistry@316491624 (0x12dd4768) | mMenuVisible = true | mParentFragment = null | mPerformedCreateView = false | mPostponedAlpha = 0.0 | mRemoving = true | mRestored = false | mRetainInstance = false | mRetainInstanceChangedWhileDetached = false | mSavedFragmentState = null | mSavedStateRegistry = androidx.savedstate.bundle.BundleSavedStateRegistry@316491656 (0x12dd4788) | mSavedUserVisibleHint = null | mSavedViewState = null | mState = 0 | mTag = null | mTarget = null | mTargetRequestCode = 0 | mTargetWho = null | mUserVisibleHint = true | mView = null | mViewLifecycleOwner = null | mViewLifecycleOwnerLiveData = androidx.lifecycle.MutableLiveData@316491680 (0x12dd47a0) | mWho = "be444d9b-84d6-4b4b-b2fb-a1ab4cde8025" | shadow$_klass_ = org.mozilla.fenix.home.HomeFragment | shadow$_monitor_ = -1965930467 * Instance of androidx.fragment.app.FragmentManagerImpl | static ANIM_DUR = 220 | static DEBUG = false | static TARGET_STATE_TAG = "android:target_state" | static ANIM_STYLE_CLOSE_EXIT = 4 | static ANIM_STYLE_OPEN_EXIT = 2 | static sAnimationListenerField = null | static DECELERATE_CUBIC = android.view.animation.DecelerateInterpolator@317184880 (0x12e7db70) | static USER_VISIBLE_HINT_TAG = "android:user_visible_hint" | static DECELERATE_QUINT = android.view.animation.DecelerateInterpolator@317184896 (0x12e7db80) | static ANIM_STYLE_FADE_EXIT = 6 | static TARGET_REQUEST_CODE_STATE_TAG = "android:target_req_state" | static TAG = "FragmentManager" | static ANIM_STYLE_CLOSE_ENTER = 3 | static ANIM_STYLE_OPEN_ENTER = 1 | static ANIM_STYLE_FADE_ENTER = 5 | static $classOverhead = byte[1021]@315875281 (0x12d3dfd1) | static VIEW_STATE_TAG = "android:view_state" | mActive = java.util.HashMap@316494984 (0x12dd5488) | mAdded = java.util.ArrayList@316495024 (0x12dd54b0) | mAvailBackStackIndices = null | mBackStack = null | mBackStackChangeListeners = java.util.ArrayList@316495048 (0x12dd54c8) | mBackStackIndices = null | mContainer = null | mCreatedMenus = null | mCurState = 0 | mDestroyed = true | mExecCommit = androidx.fragment.app.FragmentManagerImpl$1@316495072 (0x12dd54e0) | mExecutingActions = false | mHavePendingDeferredStart = false | mHost = null | mLifecycleCallbacks = java.util.concurrent.CopyOnWriteArrayList@316495088 (0x12dd54f0) | mNeedMenuInvalidate = false | mNextFragmentIndex = 0 | mNonConfig = androidx.fragment.app.FragmentManagerViewModel@316495104 (0x12dd5500) | mParent = null | mPendingActions = java.util.ArrayList@316495136 (0x12dd5520) | mPostponedTransactions = null | mPrimaryNav = org.mozilla.fenix.browser.BrowserFragment@316495160 (0x12dd5538) | mStateArray = null | mStateBundle = null | mStateSaved = false | mStopped = true | mTmpAddedFragments = java.util.ArrayList@316495344 (0x12dd55f0) | mTmpIsPop = java.util.ArrayList@316495368 (0x12dd5608) | mTmpRecords = java.util.ArrayList@316495392 (0x12dd5620) | mFragmentFactory = null | shadow$_klass_ = androidx.fragment.app.FragmentManagerImpl | shadow$_monitor_ = 0 * Instance of org.mozilla.fenix.browser.BrowserFragment | static serialVersionUID = 7903370502870768598 | static REQUEST_CODE_DOWNLOAD_PERMISSIONS = 1 | static REQUEST_CODE_APP_PERMISSIONS = 3 | static TOOLBAR_HEIGHT = 56.0 | static $change = null | static Companion = org.mozilla.fenix.browser.BrowserFragment$Companion@317052616 (0x12e5d6c8) | static $classOverhead = byte[1476]@316453145 (0x12dcb119) | static REPORT_SITE_ISSUE_URL = "https://webcompat.com/issues/new?url=%s&label=browser-fenix" | static REQUEST_CODE_PROMPT_PERMISSIONS = 2 | _$_findViewCache = null | contextMenuFeature = mozilla.components.support.base.feature.ViewBoundFeatureWrapper@316495584 (0x12dd56e0) | customTabsToolbarFeature = mozilla.components.support.base.feature.ViewBoundFeatureWrapper@316495616 (0x12dd5700) | downloadsFeature = mozilla.components.support.base.feature.ViewBoundFeatureWrapper@316495648 (0x12dd5720) | findInPageIntegration = mozilla.components.support.base.feature.ViewBoundFeatureWrapper@316495680 (0x12dd5740) | fullScreenFeature = mozilla.components.support.base.feature.ViewBoundFeatureWrapper@316495712 (0x12dd5760) | promptsFeature = mozilla.components.support.base.feature.ViewBoundFeatureWrapper@316495744 (0x12dd5780) | sessionFeature = mozilla.components.support.base.feature.ViewBoundFeatureWrapper@316495776 (0x12dd57a0) | sessionId = null | sitePermissionsFeature = mozilla.components.support.base.feature.ViewBoundFeatureWrapper@316495808 (0x12dd57c0) | toolbarComponent = org.mozilla.fenix.components.toolbar.ToolbarComponent@316495840 (0x12dd57e0) | toolbarIntegration = mozilla.components.support.base.feature.ViewBoundFeatureWrapper@316495880 (0x12dd5808) | mAdded = false | mAnimationInfo = null | mArguments = android.os.Bundle@316495912 (0x12dd5828) | mBackStackNesting = 0 | mCalled = true | mChildFragmentManager = null | mContainer = null | mContainerId = 0 | mDeferStart = false | mDetached = false | mFragmentId = 0 | mFragmentManager = null | mFromLayout = false | mHasMenu = false | mHidden = false | mHiddenChanged = false | mHost = null | mInLayout = false | mInnerView = null | mIsCreated = false | mIsNewlyAdded = false | mLayoutInflater = null | mLifecycleRegistry = androidx.lifecycle.LifecycleRegistry@316495936 (0x12dd5840) | mMenuVisible = true | mParentFragment = androidx.navigation.fragment.NavHostFragment@316495968 (0x12dd5860) | mPerformedCreateView = false | mPostponedAlpha = 0.0 | mRemoving = false | mRestored = false | mRetainInstance = false | mRetainInstanceChangedWhileDetached = false | mSavedFragmentState = null | mSavedStateRegistry = androidx.savedstate.bundle.BundleSavedStateRegistry@316496112 (0x12dd58f0) | mSavedUserVisibleHint = null | mSavedViewState = null | mState = 0 | mTag = null | mTarget = null | mTargetRequestCode = 0 | mTargetWho = null | mUserVisibleHint = true | mView = null | mViewLifecycleOwner = null | mViewLifecycleOwnerLiveData = androidx.lifecycle.MutableLiveData@316496136 (0x12dd5908) | mWho = "dfa491a9-8a9f-4065-8bd4-72fcb9c9882b" | shadow$_klass_ = org.mozilla.fenix.browser.BrowserFragment | shadow$_monitor_ = -1998483855 * Instance of org.mozilla.fenix.components.toolbar.ToolbarComponent | static serialVersionUID = -3448913190523384436 | static $change = null | static $classOverhead = byte[232]@316459009 (0x12dcc801) | container = androidx.coordinatorlayout.widget.CoordinatorLayout@316758952 (0x12e15ba8) | initialState = org.mozilla.fenix.components.toolbar.SearchState@316759632 (0x12e15e50) | isPrivate = false | reducer = org.mozilla.fenix.components.toolbar.ToolbarComponent$reducer$1@316759648 (0x12e15e60) | sessionId = null | actionEmitter = io.reactivex.subjects.SerializedSubject@316758880 (0x12e15b60) | changesObservable = io.reactivex.subjects.SerializedSubject@316758904 (0x12e15b78) | uiView$delegate = kotlin.SynchronizedLazyImpl@316758928 (0x12e15b90) | shadow$_klass_ = org.mozilla.fenix.components.toolbar.ToolbarComponent | shadow$_monitor_ = 0 * Instance of androidx.coordinatorlayout.widget.CoordinatorLayout | static EVENT_VIEW_REMOVED = 2 | static TOP_SORTED_CHILDREN_COMPARATOR = androidx.coordinatorlayout.widget.CoordinatorLayout$ViewElevationComparator@317110536 (0x12e6b908) | static TYPE_ON_TOUCH = 1 | static sRectPool = androidx.core.util.Pools$SynchronizedPool@317110616 (0x12e6b958) | static EVENT_PRE_DRAW = 0 | static TAG = "CoordinatorLayout" | static WIDGET_PACKAGE_NAME = "androidx.coordinatorlayout.widget" | static sConstructors = java.lang.ThreadLocal@317110600 (0x12e6b948) | static TYPE_ON_INTERCEPT = 0 | static $classOverhead = byte[7772]@316216857 (0x12d91619) | static CONSTRUCTOR_PARAMS = java.lang.Class[2]@317110512 (0x12e6b8f0) | static EVENT_NESTED_SCROLL = 1 | mApplyWindowInsetsListener = null | mBehaviorTouchView = null | mChildDag = androidx.coordinatorlayout.widget.DirectedAcyclicGraph@316759664 (0x12e15e70) | mDependencySortedChildren = java.util.ArrayList@316759688 (0x12e15e88) | mDisallowInterceptReset = false | mDrawStatusBarBackground = false | mIsAttachedToWindow = false | mKeylines = null | mLastInsets = null | mNeedsPreDrawListener = true | mNestedScrollingParentHelper = androidx.core.view.NestedScrollingParentHelper@316759712 (0x12e15ea0) | mNestedScrollingTarget = null | mOnHierarchyChangeListener = null | mOnPreDrawListener = androidx.coordinatorlayout.widget.CoordinatorLayout$OnPreDrawListener@316759728 (0x12e15eb0) | mScrimPaint = null | mStatusBarBackground = null | mTempDependenciesList = java.util.ArrayList@316759744 (0x12e15ec0) | mTempIntPair = int[2]@316759768 (0x12e15ed8) | mTempList1 = java.util.ArrayList@316759792 (0x12e15ef0) | mAnimationListener = null | mCachePaint = null | mChildCountWithTransientState = 0 | mChildTransformation = null | mChildren = android.view.View[12]@316759816 (0x12e15f08) | mChildrenCount = 3 | mChildrenInterestedInDrag = null | mCurrentDragChild = null | mCurrentDragStartEvent = null | mDefaultFocus = null | mDisappearingChildren = null | mFirstHoverTarget = null | mFirstTouchTarget = null | mFocused = null | mFocusedInCluster = null | mGroupFlags = 2244691 | mHoveredSelf = false | mInvalidateRegion = null | mInvalidationTransformation = null | mIsInterestedInDrag = false | mLastTouchDownIndex = 0 | mLastTouchDownTime = 1291038175 | mLastTouchDownX = 977.0 | mLastTouchDownY = 1948.0 | mLayoutAnimationController = null | mLayoutCalledWhileSuppressed = false | mLayoutMode = -1 | mLayoutTransitionListener = android.view.ViewGroup$2@316759880 (0x12e15f48) | mLocalPoint = null | mNestedScrollAxes = 0 | mOnHierarchyChangeListener = androidx.coordinatorlayout.widget.CoordinatorLayout$HierarchyChangeListener@316759896 (0x12e15f58) | mPersistentDrawingCache = 2 | mPreSortedChildren = null | mSuppressLayout = false | mTempPoint = float[2]@316759912 (0x12e15f68) | mTooltipHoverTarget = null | mTooltipHoveredSelf = false | mTransientIndices = null | mTransientViews = null | mTransition = null | mTransitioningViews = null | mVisibilityChangingChildren = null | mAccessibilityCursorPosition = -1 | mAccessibilityDelegate = null | mAccessibilityTraversalAfterId = -1 | mAccessibilityTraversalBeforeId = -1 | mAccessibilityViewId = -1 | mAnimator = null | mAttachInfo = null | mAttributes = null | mAutofillHints = null | mAutofillId = null | mAutofillViewId = -1 | mBackground = null | mBackgroundRenderNode = null | mBackgroundResource = 0 | mBackgroundSizeChanged = true | mBackgroundTint = null | mBottom = 2464 | mCachingFailed = false | mClipBounds = null | mContentDescription = null | mContext = org.mozilla.fenix.HomeActivity@316499296 (0x12dd6560) | mCurrentAnimation = null | mDefaultFocusHighlight = null | mDefaultFocusHighlightCache = null | mDefaultFocusHighlightEnabled = true | mDefaultFocusHighlightSizeChanged = true | mDrawableState = int[2]@1883422568 (0x7042bf68) | mDrawingCache = null | mDrawingCacheBackgroundColor = 0 | mFloatingTreeObserver = null | mForegroundInfo = null | mFrameMetricsObservers = null | mGhostView = null | mHasPerformedLongPress = false | mID = 2131230817 | mIgnoreNextUpEvent = false | mInContextButtonPress = false | mInputEventConsistencyVerifier = null | mIsDispatchedAccessTouchEvent = false | mKeyedTags = null | mLabelForId = -1 | mLastIsOpaque = false | mLayerPaint = null | mLayerType = 0 | mLayoutInsets = null | mLayoutParams = android.widget.FrameLayout$LayoutParams@316759936 (0x12e15f80) | mLeft = 0 | mLeftPaddingDefined = false | mListenerInfo = android.view.View$ListenerInfo@316759992 (0x12e15fb8) | mLongClickX = NaN | mLongClickY = NaN | mMatchIdPredicate = null | mMatchLabelForPredicate = null | mMeasureCache = android.util.LongSparseLongArray@316760064 (0x12e16000) | mMeasuredHeight = 2464 | mMeasuredWidth = 1440 | mMinHeight = 0 | mMinWidth = 0 | mNestedScrollingParent = null | mNextClusterForwardId = -1 | mNextFocusDownId = -1 | mNextFocusForwardId = -1 | mNextFocusLeftId = -1 | mNextFocusRightId = -1 | mNextFocusUpId = -1 | mOldHeightMeasureSpec = 1073744288 | mOldWidthMeasureSpec = 1073743264 | mOutlineProvider = android.view.ViewOutlineProvider$1@1883145312 (0x703e8460) | mOverScrollMode = 1 | mOverlay = null | mPaddingBottom = 0 | mPaddingLeft = 0 | mPaddingRight = 0 | mPaddingTop = 0 | mParent = null | mPendingCheckForLongPress = null | mPendingCheckForTap = null | mPerformClick = null | mPointerIcon = null | mPrivateFlags = -2128606544 | mPrivateFlags2 = 1610819112 | mPrivateFlags3 = 16 | mRecreateDisplayList = false | mRenderNode = android.view.RenderNode@316760088 (0x12e16018) | mResources = android.content.res.Resources@316511128 (0x12dd9398) | mRight = 1440 | mRightPaddingDefined = false | mRoundScrollbarRenderer = null | mRunQueue = null | mScrollCache = null | mScrollIndicatorDrawable = null | mScrollX = 0 | mScrollY = 0 | mSendViewScrolledAccessibilityEvent = null | mSendViewStateChangedAccessibilityEvent = null | mSendingHoverAccessibilityEvents = false | mStartActivityRequestWho = null | mStateListAnimator = null | mSystemUiVisibility = 0 | mTag = null | mTempNestedScrollConsumed = null | mTooltipInfo = null | mTop = 0 | mTouchDelegate = null | mTouchSlop = 28 | mTransformationInfo = null | mTransientStateCount = 0 | mTransitionName = null | mUnscaledDrawingCache = null | mUnsetPressedState = null | mUserPaddingBottom = 0 | mUserPaddingEnd = -2147483648 | mUserPaddingLeft = 0 | mUserPaddingLeftInitial = 0 | mUserPaddingRight = 0 | mUserPaddingRightInitial = 0 | mUserPaddingStart = -2147483648 | mVerticalScrollFactor = 0.0 | mVerticalScrollbarPosition = 0 | mViewFlags = 939524240 | mVisibilityChangeForAutofillHandler = null | mWindowAttachCount = 1 | shadow$_klass_ = androidx.coordinatorlayout.widget.CoordinatorLayout | shadow$_monitor_ = 0 * Instance of org.mozilla.fenix.HomeActivity | static serialVersionUID = 4111946002713664296 | static OPEN_TO_BROWSER = "open_to_browser" | static $change = null | static Companion = org.mozilla.fenix.HomeActivity$Companion@317053904 (0x12e5dbd0) | static $classOverhead = byte[4312]@316443465 (0x12dc8b49) | _$_findViewCache = null | browsingModeManager = org.mozilla.fenix.DefaultBrowsingModeManager@316509736 (0x12dd8e28) | themeManager = org.mozilla.fenix.DefaultThemeManager@316509752 (0x12dd8e38) | mDelegate = androidx.appcompat.app.AppCompatDelegateImpl@316509768 (0x12dd8e48) | mResources = null | mThemeId = 2131820744 | mCreated = true | mFragments = androidx.fragment.app.FragmentController@316509904 (0x12dd8ed0) | mNextCandidateRequestIndex = 0 | mPendingFragmentActivityResults = androidx.collection.SparseArrayCompat@316509920 (0x12dd8ee0) | mRequestedPermissionsFromFragment = false | mResumed = false | mStartedActivityFromFragment = false | mStartedIntentSenderFromFragment = false | mStopped = true | mLifecycleRegistry = androidx.lifecycle.LifecycleRegistry@316509944 (0x12dd8ef8) | mOnBackPressedCallbacks = java.util.concurrent.CopyOnWriteArrayList@316509976 (0x12dd8f18) | mSavedStateRegistry = androidx.savedstate.bundle.BundleSavedStateRegistry@316509992 (0x12dd8f28) | mViewModelStore = androidx.lifecycle.ViewModelStore@316510016 (0x12dd8f40) | mExtraDataMap = androidx.collection.SimpleArrayMap@316510032 (0x12dd8f50) | mActionBar = null | mActionModeTypeStarting = 0 | mActivityInfo = android.content.pm.ActivityInfo@316510056 (0x12dd8f68) | mActivityTransitionState = android.app.ActivityTransitionState@316510208 (0x12dd9000) | mApplication = org.mozilla.fenix.DebugFenixApplication@315709088 (0x12d156a0) | mAutoFillResetNeeded = false | mAutofillManager = null | mAutofillPopupWindow = null | mCalled = true | mChangeCanvasToTranslucent = false | mChangingConfigurations = false | mComponent = android.content.ComponentName@316510264 (0x12dd9038) | mConfigChangeFlags = 0 | mCurrentConfig = android.content.res.Configuration@316510280 (0x12dd9048) | mDecor = null | mDefaultKeyMode = 0 | mDefaultKeySsb = null | mDestroyed = true | mDoReportFullyDrawn = false | mEmbeddedID = null | mEnableDefaultActionBarUp = false | mEnterTransitionListener = android.app.SharedElementCallback$1@1883110576 (0x703dfcb0) | mExitTransitionListener = android.app.SharedElementCallback$1@1883110576 (0x703dfcb0) | mFinished = true | mFragments = android.app.FragmentController@316510400 (0x12dd90c0) | mHandler = android.os.Handler@316510416 (0x12dd90d0) | mHasCurrentPermissionsRequest = false | mIdent = 226164561 | mInstanceTracker = android.os.StrictMode$InstanceTracker@316510448 (0x12dd90f0) | mInstrumentation = android.app.Instrumentation@315851008 (0x12d38100) | mIntent = android.content.Intent@316510464 (0x12dd9100) | mLastAutofillId = 1073741825 | mLastNonConfigurationInstances = null | mMainThread = android.app.ActivityThread@315627032 (0x12d01618) | mManagedCursors = java.util.ArrayList@316510528 (0x12dd9140) | mManagedDialogs = null | mMenuInflater = null | mParent = null | mReferrer = "org.mozilla.fenix.debug" | mResultCode = 0 | mResultData = null | mResumed = false | mSearchEvent = null | mSearchManager = null | mStartedActivity = false | mStopped = true | mTaskDescription = android.app.ActivityManager$TaskDescription@316510592 (0x12dd9180) | mTemporaryPause = false | mTitle = "Fenix" | mTitleColor = 0 | mTitleReady = true | mToken = android.os.BinderProxy@316510656 (0x12dd91c0) | mTranslucentCallback = null | mUiThread = java.lang.Thread@1938317680 (0x73886170) | mVisibleBehind = false | mVisibleFromClient = true | mVisibleFromServer = true | mVoiceInteractor = null | mWindow = com.android.internal.policy.PhoneWindow@316510688 (0x12dd91e0) | mWindowAdded = true | mWindowManager = android.view.WindowManagerImpl@316511056 (0x12dd9350) | mInflater = com.android.internal.policy.PhoneLayoutInflater@316511080 (0x12dd9368) | mOverrideConfiguration = null | mResources = android.content.res.Resources@316511128 (0x12dd9398) | mTheme = android.content.res.Resources$Theme@316511168 (0x12dd93c0) | mThemeResource = 2131820744 | mBase = android.app.ContextImpl@316511184 (0x12dd93d0) | shadow$_klass_ = org.mozilla.fenix.HomeActivity | shadow$_monitor_ = -2054555306 * Excluded Refs: | Field: android.os.Message.obj | Field: android.os.Message.next | Field: android.os.Message.target | Field: android.view.inputmethod.InputMethodManager.mNextServedView | Field: android.view.inputmethod.InputMethodManager.mServedView | Field: android.view.inputmethod.InputMethodManager.mServedInputConnection | Field: android.view.inputmethod.InputMethodManager.mCurRootView | Field: android.accounts.AccountManager$AmsTask$Response.this$1 | Field: android.view.accessibility.AccessibilityNodeInfo.mOriginalText | Field: com.android.internal.policy.BackdropFrameRenderer.mDecorView | Field: android.view.Choreographer$FrameDisplayEventReceiver.mMessageQueue (always) | Thread:FinalizerWatchdogDaemon (always) | Thread:main (always) | Thread:LeakCanary-Heap-Dump (always) | Class:java.lang.ref.WeakReference (always) | Class:java.lang.ref.SoftReference (always) | Class:java.lang.ref.PhantomReference (always) | Class:java.lang.ref.Finalizer (always) | Class:java.lang.ref.FinalizerReference (always) ```
cadeyrn commented 5 years ago

Now I have STR to reproduce one kind of these leaks:

  1. Start Fenix
  2. press mask icon for enabling private mode
  3. press mask icon for disabling private mode again
  4. repeat the steps 2 and 3 a few times

This works in 100% for me to cause a HomeActivity and a ReportFragment leak.

cadeyrn commented 5 years ago

The number of leaks increased noticeably - there are now leaks on more places. But I can no longer find the LeakCanary app on my device so I can't share any reports.

sblatz commented 5 years ago

@cadeyrn @colintheshots are these reports still happening?

cadeyrn commented 5 years ago

@sblatz Yes, LeakCanary is still reporting leaks (build from 7/12, I can test with latest version from master tomorrow). Unfortunately I can't find the LeakCanary app in my apps anymore so I don't know how I can share more details. :-/

cadeyrn commented 5 years ago

Retested with latest build from master (revision 95367c2b50ea16cd853e215587c0871c1ebc163b).

The following steps still always trigger a leak:

  1. press the mask icon on the Fenix home screen to launch private mode
  2. repeat step 1 to leave private mode
  3. repeat step 1 again
nyanpasu64 commented 5 years ago

Why is there no Leaks launcher icon produced by Firefox Fenix? And why does, every time a Fenix leak analysis is completed, it's deleted immediately from my Downloads/leakcanary-org.mozilla.fenix.debug folder, leaving it empty? Is this normal behavior (leak reports are uploaded online and deleted), or not?

sblatz commented 5 years ago

I'm not able to reproduce the original LeakCanary report found here. I spent a bit of time playing around with the app and found very few leak reports (when running monkey). I think we should punt on this ticket for now as none of them seem super critical.

cadeyrn commented 5 years ago

I'm not able to reproduce the original LeakCanary report found here.

Did you try the steps from here? https://github.com/mozilla-mobile/fenix/issues/747#issuecomment-512470049

Because this is still reproducible in 100% for me.

liuche commented 5 years ago

We'll look at this in a future sprint, since there are fewer reports than when this was first filed and leaks were a huge problem.

liuche commented 5 years ago

@kbrosnan and @rpappalax can also look into this because getting leak testing into our UI tests is very important.

cadeyrn commented 5 years ago

There is now also a leak when opening a custom tab and then pressing the back button.

cadeyrn commented 4 years ago

Retested with latest build from master (revision 95367c2).

The following steps still always trigger a leak:

1. press the mask icon on the Fenix home screen to launch private mode
2. repeat step 1 to leave private mode
3. repeat step 1 again

The leak is still present but with the new LeakCanary version the user interface is finally back so I can share more details.

Download .hprof file: https://drive.google.com/open?id=13dnKqhDJxrlCnOELzG1xb7xJTnxHEqeB

cadeyrn commented 4 years ago

I can no longer reproduce the reported leaks and #8619 seems to fix some leaks. Maybe it's time to close this issue? Or are there still some known leaks?

ekager commented 4 years ago

Let's close this issue I think #8619 #10033 and #10012 addressed most of the found leaks.