Confirmed users
152
edits
Ptheriault (talk | contribs) |
(Review subject and delivery report support) |
||
Line 1: | Line 1: | ||
=== App Review Details === | === App Review Details === | ||
* App: SMS | * App: SMS | ||
* Review Date: | * Review Date: 3rd March 2014 | ||
* Latest Commit: https://github.com/mozilla-b2g/gaia/commit/ | * Latest Commit: https://github.com/mozilla-b2g/gaia/commit/db3b537b4a29be4849f45fb7ec27b77bb778a2a6 | ||
* Branch Reviewed : Master | * Branch Reviewed : Master | ||
* Reviewers : Stéphanie Ouillon & Paul Theriault | * Reviewers : Stéphanie Ouillon & Paul Theriault | ||
Line 9: | Line 9: | ||
SMS app provides the ability to send and receive SMS/MMS messages. SMS was reviewed previously in jun 2013. | SMS app provides the ability to send and receive SMS/MMS messages. SMS was reviewed previously in jun 2013. | ||
The main focus of this re-review was to include the addition of MMS | The main focus of this re-review was to include the addition of subject support in MMS ({{bug|919966}}) and delivery report support ({{bug|919977}}). The prior review can be found [https://wiki.mozilla.org/Security/Reviews/Gaia/sms/jun13 here]. | ||
===Architecture=== | ===Architecture=== | ||
Line 37: | Line 37: | ||
* dialog.js - generic confirm screen | * dialog.js - generic confirm screen | ||
* fixed_header.js | * fixed_header.js | ||
* information.js - Information view (delivery report) | |||
* thread_list_ui.js - track current number of rendered threads | * thread_list_ui.js - track current number of rendered threads | ||
* thread_ui.js - manage threads | * thread_ui.js - manage threads | ||
Line 71: | Line 72: | ||
===Permissions=== | ===Permissions=== | ||
The sms app requires the following permissions | The sms app requires the following permissions: | ||
"permissions": { | "permissions": { | ||
"sms":{}, | "sms":{}, | ||
"storage":{}, | "storage":{}, | ||
"mobileconnection": {}, | |||
"contacts":{ "access": "readonly" }, | "contacts":{ "access": "readonly" }, | ||
"settings":{ "access": "readonly" }, | "settings":{ "access": "readonly" }, | ||
"audio-channel-notification":{}, | "audio-channel-notification":{}, | ||
"desktop-notification":{} | "desktop-notification":{}, | ||
"phonenumberservice":{} | |||
} | } | ||
There are two new permissions: | |||
* mobileconnection: used in settings.js for listening to mobile connection datachange before switching between SIMs . | |||
* phonenumberservice: used for normalizing and comparing phone numbers | |||
====Web Activity Handlers ==== | ====Web Activity Handlers ==== | ||
Line 118: | Line 125: | ||
The 'hashchange' event handler is used in threads.js and activity_handler.js. | The 'hashchange' event handler is used in threads.js and activity_handler.js. | ||
==== Datastore access ==== | |||
Access to Facebook contacts: | |||
"datastores-access": { | |||
"Gaia_Facebook_Friends": { | |||
"description": "Facebook Friends" | |||
} | |||
} | |||
===Code Review Notes=== | ===Code Review Notes=== | ||
====1. XSS & HTML Injection attacks==== | ====1. XSS & HTML Injection attacks==== | ||
Data retrieved for delivery reports seems to be correctly rendered in the information panel. Timestamps come from Gecko. | |||
There is a few "innerHTML" but there are used alongwith templating (TMPL.*.interpolate). | |||
====2. Secure Communications ==== | ====2. Secure Communications ==== | ||
Line 131: | Line 152: | ||
====4. Denial of Service ==== | ====4. Denial of Service ==== | ||
No issues. | No issues. | ||
Subject messages are limited to 140 characters. | |||
====5. Use of Privileged APIs ==== | ====5. Use of Privileged APIs ==== |