Closed
Bug 1217285
Opened 9 years ago
Closed 9 years ago
[IMS] support IMS fine-grained capabilities, such as wifi-calling or cellular
Categories
(Firefox OS Graveyard :: RIL, defect)
Tracking
(feature-b2g:2.2r+, b2g-v2.5 wontfix, b2g-v2.2r fixed, b2g-master wontfix)
RESOLVED
FIXED
feature-b2g | 2.2r+ |
People
(Reporter: hsinyi, Assigned: bevis)
References
Details
Attachments
(3 files, 3 obsolete files)
11.86 KB,
patch
|
bevis
:
review+
|
Details | Diff | Splinter Review |
8.75 KB,
patch
|
bevis
:
review+
|
Details | Diff | Splinter Review |
2.37 KB,
patch
|
bevis
:
review+
|
Details | Diff | Splinter Review |
To meet the UI requirements, we need to expose fine-grained capabilities to gaia so that proper UI could be displayed based on the capability support. My draft idea is that we add |supportedTypes| attribute to ImsRegHandler, just as what we do for mobileConnection.supportedNetworkTypes [1] [2]. In this way, vendor ImsService (the implementation of nsIImsRegHandler) is in charge to retrieving and passing the correct value. I think vendor could refer to [3] to get the idea of the actual implementation. How do you think? [1] https://dxr.mozilla.org/mozilla-central/source/dom/webidl/MozMobileConnection.webidl#116 [2] https://dxr.mozilla.org/mozilla-central/source/dom/mobileconnection/interfaces/nsIMobileConnectionService.idl#328 [3] https://dxr.mozilla.org/mozilla-central/source/dom/mobileconnection/gonk/MobileConnectionService.js?from=MobileConnectionService.js#516
Updated•9 years ago
|
feature-b2g: --- → 2.2r+
Assignee | ||
Comment 1•9 years ago
|
||
So far, the UI has to provide additional presentation if multiple bearers for IMS are available.
My idea is to have an attribute called |deviceCapabilities| as a dictionary in ImsRegHandler.webidl to list the optional IMS features built into the device:
> dictionary DeviceCapabilities {
> boolean overCellular;
> boolean overWifi;
> ...
> // we could add new optional capabilities like video calling, presence, etc in the future.
> };
> interface ImsRegHandler : EventTarget {
> ...
> // Contains the supported capabilities built into the device.
> readonly attribute DeviceCapabilities deviceCapabilities;
> ...
> }
In internal |nsIImsRegHander|, we can add |overCellularSupported|, |overWifiSupported|, etc.
Then, when the application accesses ImsRegHandler, all these capabilities will be collected during the initialization and will be returned when ImsRegHandler::deviceCapabilities is read.
With this design in mind, the application could display additional options like |preferredProfile| only if both |overCellular| and |overWifi| are supported.
Blocks: b2g-ril-interface
Reporter | ||
Comment 2•9 years ago
|
||
(In reply to Bevis Tseng[:bevistseng][:btseng] from comment #1) > So far, the UI has to provide additional presentation if multiple bearers > for IMS are available. > > My idea is to have an attribute called |deviceCapabilities| as a dictionary > in ImsRegHandler.webidl to list the optional IMS features built into the > device: > > dictionary DeviceCapabilities { > > boolean overCellular; > > boolean overWifi; > > ... > > // we could add new optional capabilities like video calling, presence, etc in the future. > > }; > > interface ImsRegHandler : EventTarget { > > ... > > // Contains the supported capabilities built into the device. > > readonly attribute DeviceCapabilities deviceCapabilities; > > ... > > } > In internal |nsIImsRegHander|, we can add |overCellularSupported|, > |overWifiSupported|, etc. > > Then, when the application accesses ImsRegHandler, all these capabilities > will be collected during the initialization and will be returned when > ImsRegHandler::deviceCapabilities is read. > > With this design in mind, the application could display additional options > like |preferredProfile| only if both |overCellular| and |overWifi| are > supported. Oh, yes, this proposal sounds even better! Dictionary usage is easier to use in feature detection :)
Assignee | ||
Comment 3•9 years ago
|
||
Hi Carol, We would like to improve this according the approach in comment 1. Do you have any concern on this change?
Flags: needinfo?(cyang)
Updated•9 years ago
|
Flags: needinfo?(cyang)
Comment 4•9 years ago
|
||
Hi Bevis/Hsinyi,
Since the capability information is static (i.e. display WiFi calling menu, display HD icon, etc), it seems this information does not need to be exposed dynamically via nsIImsRegHandler. Instead, this could be set as a custom prefs.js value. The amount of work in Gaia is the same. Instead of querying via nsIImsRegHandler, it could be a simple call to get the preference value:
> let wfcSupport = Services.prefs.getBoolPref(‘ui.support.wfc’);
> if (wfcSupport) {
> //Display WiFi Calling menu
> }
OEMs/carriers can easily set this value in the custom prefs.js for the specific UI they expect.
If we were to implement this via nsIImsRegHandler, it would essentially be the same thing where we would report the device capabilities based on some static information for a particular carrier. It seems we could just take out the middleman here.
What do you think?
Flags: needinfo?(btseng)
Updated•9 years ago
|
Flags: needinfo?(htsai)
Assignee | ||
Comment 5•9 years ago
|
||
(In reply to Carol Yang [:cyang] from comment #4) > Hi Bevis/Hsinyi, > > Since the capability information is static (i.e. display WiFi calling menu, > display HD icon, etc), it seems this information does not need to be exposed > dynamically via nsIImsRegHandler. Instead, this could be set as a custom > prefs.js value. The amount of work in Gaia is the same. Instead of querying > via nsIImsRegHandler, it could be a simple call to get the preference value: > > let wfcSupport = Services.prefs.getBoolPref(‘ui.support.wfc’); > > if (wfcSupport) { > > //Display WiFi Calling menu > > } > > OEMs/carriers can easily set this value in the custom prefs.js for the > specific UI they expect. > > If we were to implement this via nsIImsRegHandler, it would essentially be > the same thing where we would report the device capabilities based on some > static information for a particular carrier. It seems we could just take out > the middleman here. > > What do you think? The preference-style customization was taken into consideration but was not adopted. :( The reason is that if there is customization related to whether a feature in a Web API set cannot be access or not, there will be more expectation from the app developer that this restriction should be identified from the API itself instead of a separated preference. So, in addition to the |deviceCapabilities|, the implementation shall reject the request according to the |deviceCapabilities|. For example, if |overWifi| is false, these request2 shall be rejected: setPreferredProfile("wifi-preferred"), setPreferredProfile("wifi-only")
Flags: needinfo?(btseng)
Assignee | ||
Updated•9 years ago
|
Flags: needinfo?(htsai)
Assignee | ||
Updated•9 years ago
|
Assignee: nobody → btseng
Assignee | ||
Comment 6•9 years ago
|
||
https://treeherder.mozilla.org/#/jobs?repo=try&revision=d48d2a78ded5
Assignee | ||
Comment 7•9 years ago
|
||
https://treeherder.mozilla.org/#/jobs?repo=try&revision=eb8073f4621f
Assignee | ||
Comment 8•9 years ago
|
||
https://treeherder.mozilla.org/#/jobs?repo=try&revision=cb5be806131b
Assignee | ||
Comment 9•9 years ago
|
||
https://treeherder.mozilla.org/#/jobs?repo=try&revision=516199071a04
Assignee | ||
Comment 10•9 years ago
|
||
Hi Edgar, Hsinyi, May I have your review for the change in WebIDL part? Thanks!
Attachment #8682296 -
Flags: review?(htsai)
Attachment #8682296 -
Flags: review?(echen)
Assignee | ||
Comment 12•9 years ago
|
||
Add Test case coverage.
Attachment #8682298 -
Flags: review?(echen)
Comment 13•9 years ago
|
||
Comment on attachment 8682296 [details] [diff] [review] (v1) Part 1: Web API Change. Review of attachment 8682296 [details] [diff] [review]: ----------------------------------------------------------------- Looks good to me, thank you. ::: dom/webidl/ImsRegHandler.webidl @@ +33,5 @@ > + * > + * This provides the possibility to display the UI options according > + * to the capability of the device. > + * For example, the |wifi-preferred|, |wifi-only| of the preferred profiles > + * will be available in the UI only if |overWifi| is true. I guess you forget revising the comments.
Attachment #8682296 -
Flags: review?(echen) → review+
Assignee | ||
Comment 14•9 years ago
|
||
Comment on attachment 8682296 [details] [diff] [review] (v1) Part 1: Web API Change. Review of attachment 8682296 [details] [diff] [review]: ----------------------------------------------------------------- ::: dom/webidl/ImsRegHandler.webidl @@ +33,5 @@ > + * > + * This provides the possibility to display the UI options according > + * to the capability of the device. > + * For example, the |wifi-preferred|, |wifi-only| of the preferred profiles > + * will be available in the UI only if |overWifi| is true. Thanks for catching this!
Updated•9 years ago
|
Attachment #8682297 -
Flags: review?(echen) → review+
Updated•9 years ago
|
Attachment #8682298 -
Flags: review?(echen) → review+
Reporter | ||
Updated•9 years ago
|
Attachment #8682296 -
Flags: review?(htsai) → review+
Assignee | ||
Comment 15•9 years ago
|
||
revise API doc.
Attachment #8682296 -
Attachment is obsolete: true
Attachment #8682918 -
Flags: review+
Assignee | ||
Comment 16•9 years ago
|
||
Attachment #8682919 -
Flags: review+
Assignee | ||
Comment 17•9 years ago
|
||
Attachment #8682297 -
Attachment is obsolete: true
Attachment #8682298 -
Attachment is obsolete: true
Attachment #8682920 -
Flags: review+
Assignee | ||
Comment 18•9 years ago
|
||
https://treeherder.mozilla.org/#/jobs?repo=try&revision=404cf9b7f59b
Assignee | ||
Updated•9 years ago
|
status-b2g-v2.5:
--- → wontfix
status-b2g-master:
--- → wontfix
Assignee | ||
Updated•9 years ago
|
status-b2g-v2.2r:
--- → affected
Assignee | ||
Updated•9 years ago
|
Attachment #8682918 -
Attachment description: Part 1: Web API Change. r=echen,htsai → Part 1: Web API Change. r=echen,htsai,a=2.2r+
Assignee | ||
Updated•9 years ago
|
Attachment #8682919 -
Attachment description: Part 2: XPCOM Change. r=echen → Part 2: XPCOM Change. r=echen,a=2.2r+
Assignee | ||
Updated•9 years ago
|
Attachment #8682920 -
Attachment description: Part 3: Add Test Coverage. r=echen → Part 3: Add Test Coverage. r=echen,a=2.2r+
Assignee | ||
Comment 20•9 years ago
|
||
Comment on attachment 8682918 [details] [diff] [review] Part 1: Web API Change. r=echen,htsai,a=2.2r+ [Approval Request Comment] Bug caused by (feature/regressing bug #): N/A User impact if declined: N/A Testing completed: Yes Risk to taking this patch (and alternatives if risky): No. String or UUID changes made by this patch:3e39360c-8133-11e5-9ce9-7f3effdb14fe
Attachment #8682918 -
Flags: approval‑mozilla‑b2g37_v2_2r?
Assignee | ||
Comment 21•9 years ago
|
||
Comment on attachment 8682919 [details] [diff] [review] Part 2: XPCOM Change. r=echen,a=2.2r+ [Approval Request Comment] Bug caused by (feature/regressing bug #): N/A User impact if declined: N/A Testing completed: Yes Risk to taking this patch (and alternatives if risky): No. String or UUID changes made by this patch:3e39360c-8133-11e5-9ce9-7f3effdb14fe
Attachment #8682919 -
Flags: approval‑mozilla‑b2g37_v2_2r?
Assignee | ||
Comment 22•9 years ago
|
||
Comment on attachment 8682920 [details] [diff] [review] Part 3: Add Test Coverage. r=echen,a=2.2r+ [Approval Request Comment] Bug caused by (feature/regressing bug #): N/A User impact if declined: N/A Testing completed: Yes Risk to taking this patch (and alternatives if risky): No. String or UUID changes made by this patch:3e39360c-8133-11e5-9ce9-7f3effdb14fe
Attachment #8682920 -
Flags: approval‑mozilla‑b2g37_v2_2r?
Assignee | ||
Updated•9 years ago
|
Attachment #8682918 -
Flags: approval‑mozilla‑b2g37_v2_2r?
Assignee | ||
Updated•9 years ago
|
Attachment #8682919 -
Flags: approval‑mozilla‑b2g37_v2_2r?
Assignee | ||
Updated•9 years ago
|
Attachment #8682920 -
Flags: approval‑mozilla‑b2g37_v2_2r?
Comment 23•9 years ago
|
||
landed on 2.2r as: https://hg.mozilla.org/releases/mozilla-b2g37_v2_2r/rev/21669971b423 https://hg.mozilla.org/releases/mozilla-b2g37_v2_2r/rev/9428af2172c2 https://hg.mozilla.org/releases/mozilla-b2g37_v2_2r/rev/76b4d9614340
You need to log in
before you can comment on or make changes to this bug.
Description
•