Closed Bug 1039171 Opened 10 years ago Closed 10 years ago

Decide keyboard inproc/oop based on total memory of the device

Categories

(Firefox OS Graveyard :: Gaia::Keyboard, defect)

defect
Not set
normal

Tracking

(b2g-v2.0 fixed, b2g-v2.1 fixed)

RESOLVED FIXED
2.0 S6 (18july)
Tracking Status
b2g-v2.0 --- fixed
b2g-v2.1 --- fixed

People

(Reporter: timdream, Assigned: timdream)

Details

(Whiteboard: [p=1])

Attachments

(1 file)

In bug 1028247 and bug 970188 it was concluded that there will not be any user-facing impact moving built-in keyboard out-of-process, however in bug 1036577 a rather late requirement (keeping the support of "273MB" Flame) revert that conclusion and move the app inproc again. 

At this point, it is clear that we need a runtime API available to System app to tell input management whether or not it should launch the preload keyboard apps OOP. I am filing this bug because bug 1036577 (moving all preload keyboard apps inproc) is not a complete solution and obviously a memory regression to hi-end phones, although it makes 273MB Flame work and make QA people happy.

There is a built time flag called GAIA_MEMORY_PROFILE, put in during Tarako work. I can use that and insert a built time flag into System app, but it seems that it will not fit the test methodology used by 273MB Flame testing (QA people are essentially using the same image but tweak the avail memory in fastboot oem config).

All of this lead to lot of confusion and frustration, on top of our already depleted attention span to work with multiple partners and configurations. Can someone drive proper fix like this one instead of asking Gaia people running around?
Flags: needinfo?(jonas)
Flags: needinfo?(fabrice)
I said that already in another bug (one the camera or gallery related one), that API exists, it's navigator.getFeature("hardware.memory").
Flags: needinfo?(fabrice)
(In reply to Fabrice Desré [:fabrice] from comment #1)
> I said that already in another bug (one the camera or gallery related one),
> that API exists, it's navigator.getFeature("hardware.memory").

Looks good. Although bug 1009645 will not be landed to 2.0 so we will still have implement a switch in bug 1036577.

Still that means input management need some magic numbers to work with what's returned from this API, something like

if (memory < 256) {
  // no oop keyboards and no 3rd-party keyboards
} else if (memory <= 273) {
  // inproc preload keyboards and oop 3rd-party keyboards
} else {
  // oop every keyboards
}
It looks like bug 1037097 already do what comment 2 said.

https://github.com/mozilla-b2g/gaia/blob/24ada16dff049c657f37518f79eb964c491e64c6/shared/js/media/media_frame.js#L55-L81

Given the fact, I presume comment 2 is a viable pattern and I will implement that on top of bug 1036577.
Status: NEW → ASSIGNED
Component: Runtime → Gaia::Keyboard
Summary: Expose memory config information to apps, at least System app → Decide keyboard inproc/oop based on total memory of the device
Whiteboard: [p=1]
Comment on attachment 8458448 [details] [review]
mozilla-b2g:master PR#21907

Follow-up to bug 1036577.
Attachment #8458448 - Flags: review?(rlu)
Assignee: nobody → timdream
Comment on attachment 8458448 [details] [review]
mozilla-b2g:master PR#21907

r=me with a suggestion to define the threshold (512 MB) as a settings value,
https://github.com/mozilla-b2g/gaia/pull/21907#discussion_r15099030

Thank you.
Attachment #8458448 - Flags: review?(rlu) → review+
(In reply to Rudy Lu [:rudyl] from comment #6)
> r=me with a suggestion to define the threshold (512 MB) as a settings value,
> https://github.com/mozilla-b2g/gaia/pull/21907#discussion_r15099030

I don't see the use case to put this number in Settings database.

master: https://github.com/mozilla-b2g/gaia/commit/d525416a1a644411d3de1474260c6b080aff5b16
Status: ASSIGNED → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Target Milestone: --- → 2.0 S6 (18july)
Comment on attachment 8458448 [details] [review]
mozilla-b2g:master PR#21907

[Approval Request Comment]
[Bug caused by] (feature/regressing bug #): bug 1036577
[User impact] if declined: The behavior of 2.0 and 2.1 will be different -- on hi-end phones 2.0 will keep keyboard app inproc and waste memory
[Testing completed]: manually tests on the phone
[Risk to taking this patch] (and alternatives if risky): patch should be small enough for uplift
[String changes made]: none
Attachment #8458448 - Flags: approval-gaia-v2.0?(bbajaj)
Attachment #8458448 - Flags: approval-gaia-v2.0?(bbajaj) → approval-gaia-v2.0+
Note that getFeature() returns a number rounded up to the next power of two.  Not sure if that matters for this bug though.
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: