Closed Bug 738859 Opened 9 years ago Closed 9 years ago

Increment mActivityDepth for all activities launched from GeckoApp

Categories

(Firefox for Android Graveyard :: General, defect)

ARM
Android
defect
Not set
normal

Tracking

(firefox13 fixed, blocking-fennec1.0 -)

RESOLVED FIXED
Firefox 14
Tracking Status
firefox13 --- fixed
blocking-fennec1.0 --- -

People

(Reporter: bnicholson, Assigned: bnicholson)

References

Details

(Keywords: perf)

Attachments

(1 file, 1 obsolete file)

Attached patch patch (obsolete) — Splinter Review
In bug 706822, mActivityDepth is used to prevent saving state (and taking a screenshot) when showing the AwesomeScreen. I think want to do this for all activities we launch (GeckoPreferences, the tabs tray, the file picker, etc.) to improve performance.
Attachment #608919 - Flags: review?(blassey.bugs)
Attached patch patch v2Splinter Review
One problem with not saving the state in these cases is that the following can happen:

1) user opens subactivity (AwesomeScreen, preferences, or tabs tray)
2) user clicks home to put fennec in background
3) fennec is OOM killed

Since the state wasn't saved in step 1, the last title/screenshot/session boolean won't get saved. This patch always saves these to the bundle, but only runs the SessionSnapshotRunnable() if the depth is 0.
Attachment #608919 - Attachment is obsolete: true
Attachment #608919 - Flags: review?(blassey.bugs)
Attachment #608923 - Flags: review?(blassey.bugs)
blocking-fennec1.0: --- → ?
Keywords: perf
blocking-fennec1.0: ? → -
Comment on attachment 608923 [details] [diff] [review]
patch v2

Review of attachment 608923 [details] [diff] [review]:
-----------------------------------------------------------------

r=blassey for overriding startActivity and startActivityForResult, as well as making the depth count private.

::: mobile/android/base/GeckoApp.java
@@ +550,5 @@
> +
> +        if (mOwnActivityDepth > 0)
> +            return; // we're showing one of our own activities and likely won't get paged out
> +
> +        new SessionSnapshotRunnable(null).run();

this needs to be called before putting the mLastScreen in the bundle.

The changes to this method are wrong in general, drop them. There's an argument to be made that we should save what we can to the bundle even if the depth is more than 0, but let's have that argument in a different bug.
Attachment #608923 - Flags: review?(blassey.bugs) → review+
Comment on attachment 608923 [details] [diff] [review]
patch v2

[Approval Request Comment]
Improves performance for Gecko subactivities.
Attachment #608923 - Flags: approval-mozilla-aurora?
https://hg.mozilla.org/mozilla-central/rev/43b9f25a14b0
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 14
Comment on attachment 608923 [details] [diff] [review]
patch v2

[Triage Comment]
Mobile only - approved for Aurora 13.
Attachment #608923 - Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
Why are we fixing bugs that we have explicitly said will not block the release?
(In reply to Damon Sicore (:damons) from comment #9)
> Why are we fixing bugs that we have explicitly said will not block the
> release?

Because at one point Brian ran out of blockers, so I "OK'ed" this bug since it has performance impact.
Product: Firefox for Android → Firefox for Android Graveyard
You need to log in before you can comment on or make changes to this bug.