Closed Bug 1230489 Opened 8 years ago Closed 8 years ago

[Messages] "Attached files too large" dialog text is not localized when more than two files are going to be attached

Categories

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

ARM
Gonk (Firefox OS)
defect
Not set
normal

Tracking

(blocking-b2g:2.5+, b2g-v2.2 unaffected, b2g-v2.5 affected, b2g-master verified)

VERIFIED FIXED
blocking-b2g 2.5+
Tracking Status
b2g-v2.2 --- unaffected
b2g-v2.5 --- affected
b2g-master --- verified

People

(Reporter: azasypkin, Assigned: zbraniecki)

References

Details

(Keywords: regression)

Attachments

(4 files)

STR:

* E.g. open Video app and select several files so that overall size exceeds MMS limit (I selected 5 videos from reference workload, if you select more Video doesn't provide "Share via Messages" option).

* Try to share selected files via Messages;

* Observe error dialog text.

Expected result: "The files you have selected exceed the 295 KB size limit of a single multimedia message".

Actual result: "attached-files-too-large"

Seems it's regression from bug 1203108.
Hey Stas,

Is it something wrong with our strings, or l20n doesn't process such cases correctly? It worked with l10n previously.

Here are the strings [1] and the code that inserts DOM with l10n attributes [2].

[1] https://github.com/mozilla-b2g/gaia/blob/af7fe55a0aadff989b1463486c1ef60af6d32895/apps/sms/locales/sms.en-US.properties#L269-L275

[2] https://github.com/mozilla-b2g/gaia/blob/af7fe55a0aadff989b1463486c1ef60af6d32895/apps/sms/views/shared/js/activity_handler.js#L100-L106

Thanks!
Flags: needinfo?(stas)
[Blocking Requested - why for this release]: regression, a bit edgy case though, but there is a chance it can mask something more serious.
blocking-b2g: --- → 2.5?
Hi Oleg,

I cannot reproduce on 2.5 Flame device user build (here I cannot do the make reference but tried with other files). The string appears correctly (see screenshot)
Build ID               20151203091655
Gaia Revision          2d54c29f429bed790b5d8284633812dc2b782518
Gaia Date              2015-12-02 14:41:15
Gecko Revision         http://hg.mozilla.org/releases/mozilla-b2g44_v2_5/rev/241f079cd53c932561c6aa32b9b93c44cd0846d0
Gecko Version          44.0a2
Device Name            flame
Firmware(Release)      4.4.2
Firmware(Incremental)  eng.worker.20151203.083012
Firmware Date          Thu Dec  3 08:30:21 UTC 2015
Bootloader             L1TC000118D0

Also it does not happen in Flame 2.6 user build:
Build ID               20151203150202
Gaia Revision          97266c579c544f5ba57a701f39893cc86d46774a
Gaia Date              2015-12-02 22:02:46
Gecko Revision         https://hg.mozilla.org/mozilla-central/rev/33d954cc69ff8e0bd22410e3641533e4fac500cf
Gecko Version          45.0a1
Device Name            flame
Firmware(Release)      4.4.2
Firmware(Incremental)  eng.cltbld.20151203.183740
Firmware Date          Thu Dec  3 18:37:53 EST 2015
Bootloader             L1TC000118D0


But it DOES happen in an eng build so could that be the reason?
Build ID               20151203150202
Gaia Revision          97266c579c544f5ba57a701f39893cc86d46774a
Gaia Date              2015-12-02 22:02:46
Gecko Revision         https://hg.mozilla.org/mozilla-central/rev/33d954cc69ff8e0bd22410e3641533e4fac500cf
Gecko Version          45.0a1
Device Name            flame
Firmware(Release)      4.4.2
Firmware(Incremental)  eng.cltbld.20151203.203812
Firmware Date          Thu Dec  3 20:38:25 EST 2015
Bootloader             L1TC000118D0

So not sure if it could be due to the eng build, because with an user build cannot reproduce the exact same steps selecting the same videos as you do.

Could you share the info of the build where you see the problem?
Thanks!
Flags: needinfo?(azasypkin)
(In reply to Isabel Rios[:isabel_rios] from comment #3)
> Hi Oleg,
> 
> I cannot reproduce on 2.5 Flame device user build (here I cannot do the make
> reference but tried with other files). The string appears correctly (see
> screenshot)
> Build ID               20151203091655
> Gaia Revision          2d54c29f429bed790b5d8284633812dc2b782518
> Gaia Date              2015-12-02 14:41:15
> Gecko Revision        
> http://hg.mozilla.org/releases/mozilla-b2g44_v2_5/rev/
> 241f079cd53c932561c6aa32b9b93c44cd0846d0
> Gecko Version          44.0a2
> Device Name            flame
> Firmware(Release)      4.4.2
> Firmware(Incremental)  eng.worker.20151203.083012
> Firmware Date          Thu Dec  3 08:30:21 UTC 2015
> Bootloader             L1TC000118D0
> 
> Also it does not happen in Flame 2.6 user build:
> Build ID               20151203150202
> Gaia Revision          97266c579c544f5ba57a701f39893cc86d46774a
> Gaia Date              2015-12-02 22:02:46
> Gecko Revision        
> https://hg.mozilla.org/mozilla-central/rev/
> 33d954cc69ff8e0bd22410e3641533e4fac500cf
> Gecko Version          45.0a1
> Device Name            flame
> Firmware(Release)      4.4.2
> Firmware(Incremental)  eng.cltbld.20151203.183740
> Firmware Date          Thu Dec  3 18:37:53 EST 2015
> Bootloader             L1TC000118D0
> 
> 
> But it DOES happen in an eng build so could that be the reason?
> Build ID               20151203150202
> Gaia Revision          97266c579c544f5ba57a701f39893cc86d46774a
> Gaia Date              2015-12-02 22:02:46
> Gecko Revision        
> https://hg.mozilla.org/mozilla-central/rev/
> 33d954cc69ff8e0bd22410e3641533e4fac500cf
> Gecko Version          45.0a1
> Device Name            flame
> Firmware(Release)      4.4.2
> Firmware(Incremental)  eng.cltbld.20151203.203812
> Firmware Date          Thu Dec  3 20:38:25 EST 2015
> Bootloader             L1TC000118D0
> 
> So not sure if it could be due to the eng build, because with an user build
> cannot reproduce the exact same steps selecting the same videos as you do.
> 
> Could you share the info of the build where you see the problem?
> Thanks!

Thanks for super fast verifying!

Hmm, interesting I was testing on m-c eng build with the v2.5 gaia that made me think v2.5 will be broken too :) - let me try to flash full user v2.5 and eng builds and compare.
Sorry for the confusion here.
I reproduced with eng build because I had to add more than two files to super pass the limit. In users builds just with two videos was enough. But, selecting more than two, the bug can be seen with previous builds.

Thanks Oleg!
Thanks! Let's wait for input from Stas then.
Flags: needinfo?(azasypkin)
I'm trying to reproduce this but I think I might need some help.  I have an eng.worker.20151118 build on my Aries and I don't see the bug on master.  The correct error message is displayed.  Do I need to flash a newer build or should I try Flame?
Flags: needinfo?(stas)
Hmm, do you share 3+ files _at the same time_?
Yes.

I tried Flame and I'm seeing the bug now.  I don't understand why it seems to only reproduce on Flame with an eng build on it.  Are those builds produced in any special way?
Attached image Arieskk_v2.5.png
I can repro this issue on flameKK 2.5 user build and 2.6 user build using the same videos, and it does not exist on flameKK v2.2 user build. If I share 3 or 3+ videos, it will prompt "attached-files-too-large", see picture: flamekk_v2.5.png

Device: FlameKK v2.5 user build 512MB(Affected)
Build ID               20151205004159
Gaia Revision          2d54c29f429bed790b5d8284633812dc2b782518
Gaia Date              2015-12-02 14:41:15
Gecko Revision         http://hg.mozilla.org/releases/mozilla-b2g44_v2_5/rev/462016c61fe624c8ac3ff7d55c10754ce38dfa99
Gecko Version          44.0a2
Device Name            flame
Firmware(Release)      4.4.2
Firmware(Incremental)  eng.worker.20151204.235304
Firmware Date          Fri Dec  4 23:53:14 UTC 2015
Bootloader             L1TC000118D0

Device: FlameKK v2.6 user build 512MB(Affected)
Build ID               20151206150208
Gaia Revision          b930e25e9f2e5ec2106dd31005468575cdf87d50
Gaia Date              2015-12-05 03:41:55
Gecko Revision         https://hg.mozilla.org/mozilla-central/rev/cc9c6cd756cb744596ba039dcc5ad3065a7cc3ea
Gecko Version          45.0a1
Device Name            flame
Firmware(Release)      4.4.2
Firmware(Incremental)  eng.cltbld.20151206.182655
Firmware Date          Sun Dec  6 18:27:07 EST 2015
Bootloader             L1TC000118D0

Device: FlameKK v2.2 user build(512MB)(Unaffected)
Build ID               20151206032510
Gaia Revision          885647d92208fb67574ced44004ab2f29d23cb45
Gaia Date              2015-10-07 13:05:24
Gecko Revision         https://hg.mozilla.org/releases/mozilla-b2g37_v2_2/rev/4381c4b69b9c
Gecko Version          37.0
Device Name            flame
Firmware(Release)      4.4.2
Firmware(Incremental)  eng.cltbld.20151206.064603
Firmware Date          Sun Dec  6 06:46:14 EST 2015
Bootloader             L1TC000118D0

Note: I transfer these video via BT among the v2.2/2.5/2.6 user build devices. 
Videos size are: 2.8 MB,3.3MB,3.4MB
Videos format: 3gpp
QA Whiteboard: [MGSEI-Triage+]
Also can repro on aries build.

Device: Arieskk v2.5 Dogfood build(Affected)
Build ID               20151205004908
Gaia Revision          2d54c29f429bed790b5d8284633812dc2b782518
Gaia Date              2015-12-02 14:41:15
Gecko Revision         http://hg.mozilla.org/releases/mozilla-b2g44_v2_5/rev/462016c61fe624c8ac3ff7d55c10754ce38dfa99
Gecko Version          44.0a2
Device Name            aries
Firmware(Release)      4.4.2
Firmware(Incremental)  eng.worker.20151204.235542
Firmware Date          Fri Dec  4 23:55:50 UTC 2015
Bootloader             s1

Device: Arieskk v2.6 Eng build(Affected)
Build ID               20151206002630
Gaia Revision          b930e25e9f2e5ec2106dd31005468575cdf87d50
Gaia Date              2015-12-05 03:41:55
Gecko Revision         https://hg.mozilla.org/mozilla-central/rev/cc9c6cd756cb744596ba039dcc5ad3065a7cc3ea
Gecko Version          45.0a1
Device Name            aries
Firmware(Release)      4.4.2
Firmware(Incremental)  eng.worker.20151205.234548
Firmware Date          Sat Dec  5 23:45:56 UTC 2015
Bootloader             s1
QA Whiteboard: [MGSEI-Triage+] → [MGSEI-Triage+][severe]
It's actually extra easy to reproduce just in Firefox. Follow the instructions at [1] and then run the following code in the console:

 Utils.alert({
   id: 'attached-files-too-large',
   args: {
     n: 3,
     mmsSize: '300'
   }
  });

[1] https://github.com/mozilla-b2g/gaia/blob/master/apps/sms/README.md#how-to-run-the-application-in-firefox



Here is the HTML for the unlocalized element:

<p data-l10n-args="{&quot;n&quot;:3,&quot;mmsSize&quot;:&quot;300&quot;}" data-l10n-id="attached-files-too-large">attached-files-too-large</p>
Hey Stas, would you have any more lead about this? It seems to be an issue in the l20n library :/
Flags: needinfo?(stas)
I was finally able to repro on Aries.  Taking.
Assignee: nobody → stas
Flags: needinfo?(stas)
blocking-b2g: 2.5? → 2.5+
OK, I think I know the reason for this.  Thanks, Julien, for making it so easy to run SMS in Firefox Nightly!

The bug is in our properties parser.  The minimal testcase to reproduce is:

other     = Other
attached-files-too-large        = {[ plural(n) ]}
attached-files-too-large[other] = The files you have selected exceed the {{mmsSize}} KB size limit of a single multimedia message.

I was able to trigger the bug using l20n's ./tools/parse.js -o entries -i properties -r.

Because of the !entries[id] check (which fails in the above snippet) in https://github.com/l20n/l20n.js/blob/3b99a4f32007c3f502867a21b0208c4170d91beb/src/lib/format/properties/parser.js#L139 the logic goes into the else block, and the 'other' variant for 'attached-files-too-large' ends up being an object with a single 'value' property instead of an array.  The resolver doesn't know how to handle this.

Zibi, could you help with the fix here?
Assignee: stas → nobody
Flags: needinfo?(gandalf)
Taking
Assignee: nobody → gandalf
Flags: needinfo?(gandalf)
Gandalf, just wondering if you found the issue ? it's a 2.5+ bug...
Flags: needinfo?(gandalf)
Attached file pr
Thanks for hurrying me up Julien! I should have take it before other bugs.

Stas - I added a test to check for this bug. I really hate .properties
Flags: needinfo?(gandalf)
Attachment #8700123 - Flags: review?(stas)
Comment on attachment 8700123 [details] [review]
pr

I left comments in the pr.  I think there are code path to think about (hence canceling the review request) but at the same time, it might be worth it to just land a hotfix which will fix the bug at hand (which is 2.5+).
Attachment #8700123 - Flags: review?(stas)
Comment on attachment 8700123 [details] [review]
pr

Second attempt. This seems to fix the original bug. I added more tests and they all pass.
Attachment #8700123 - Flags: review?(stas)
Comment on attachment 8700123 [details] [review]
pr

Ugh, so I know it doesn't make much sense to re-write this code at this point, but it sure is tempting :)

Thanks for adding the tests.

As I was reviewing, I started thinking that perhaps line 119 should read:

       if (!entries[id].attrs[attr] && !isSimpleValue) {
         entries[id].attrs[attr] = Object.create(null);
       }

Also, the following properties code breaks the parser, but that's not related to this bug.

       foo = foo
       foo = {{ bar }}
Attachment #8700123 - Flags: review?(stas) → review+
Commit: https://github.com/l20n/l20n.js/commit/6962b945ee02e59b9f3e3bcba7f79e3a16f4fe1c
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
Filed a follow-up bug 1234365
This bug will be fixed on master when an update to l20n lands in bug 1234517.  As of right now it only landed in l20n.js upstream repo.
Depends on: 1234517
This bug has been verified as "pass" on the latest build of Flame master and Aries KK master by the STR in comment 11.

Actual results: "The files you have selected exceed the 295 KB size limit of a single multimedia message" pops up normally when selecting more than three files to share via message.
See attachment: verified_Aries_master.3gp
Reproduce rate: 0/10


Device: Flame master_512mb (Pass)
Build ID               20151228150204
Gaia Revision          15a00047c0868cc8f4c8ec4af253b82ac54d70dd
Gaia Date              2015-12-26 05:30:48
Gecko Revision         https://hg.mozilla.org/mozilla-central/rev/7c83da46ea740bc14028aca9f9a662f062de5586
Gecko Version          46.0a1
Device Name            flame
Firmware(Release)      4.4.2
Firmware(Incremental)  eng.cltbld.20151228.185050
Firmware Date          Mon Dec 28 18:51:03 EST 2015
Firmware Version       v18D v4
Bootloader             L1TC000118D0

Device: Aries KK master (Pass)
Build ID               20151228092606
Gaia Revision          15a00047c0868cc8f4c8ec4af253b82ac54d70dd
Gaia Date              2015-12-26 05:30:48
Gecko Revision         https://hg.mozilla.org/mozilla-central/rev/7c83da46ea740bc14028aca9f9a662f062de5586
Gecko Version          46.0a1
Device Name            aries
Firmware(Release)      4.4.2
Firmware(Incremental)  eng.worker.20151228.095413
Firmware Date          Mon Dec 28 09:54:21 UTC 2015
Bootloader             s1
This issue is verified fixed on the latest Aries and Flame 2.6 builds.
Attaching multiple videos past the MMS file size limit will properly display the correct error message: "The files you have selected exceed the 295 KB size limit of a single multimedia message."

Environmental Variables:
Device: Aries 2.6
BuildID: 20160212114105
Gaia: 4f0e2a1a42a2d049b6fe8f4f095cdcdf0fd5465c
Gecko: 3eca89d56c0252b12f8c5dadade8e8e76d852258
Gonk: a19052e4389c3ae2d8fc3e7a74a475401baacc56
Version: 46.0a1 (2.6) 
Firmware Version: D5803_23.1.A.1.28_NCB.ftf
User Agent: Mozilla/5.0 (Mobile; rv:46.0) Gecko/46.0 Firefox/46.0

Environmental Variables:
Device: Flame 2.6
BuildID: 20160212030237
Gaia: 4f0e2a1a42a2d049b6fe8f4f095cdcdf0fd5465c
Gecko: 576a6dcde5b68c2ea45324ed5ce1dabb7d833d09
Gonk: 8a066f7fa7410e32b58def35f322aa33f03db283
Version: 46.0a1 (2.6) 
Firmware Version: v18D
User Agent: Mozilla/5.0 (Mobile; rv:46.0) Gecko/46.0 Firefox/46.0

***************************************

This issue still occurs on the latest Flame 2.5 build.
Attaching multiple videos past the MMS file size limit will show an improper error message: "attached-files-too-large"

Environmental Variables:
Device: Flame 2.5
BuildID: 20160208174403
Gaia: 28880004bc5cd6e129d0a23b701a389753788ed0
Gecko: 4ee75807aba47e9176644ec5cd498c8ff73ac08a
Gonk: 205ac4204bbbb2098a8046444acba551ba5dc75a
Version: 44.0 (2.5) 
Firmware Version: v18D
User Agent: Mozilla/5.0 (Mobile; rv:44.0) Gecko/44.0 Firefox/44.0
Status: RESOLVED → VERIFIED
QA Whiteboard: [MGSEI-Triage+][severe] → [QAnalyst-Triage?][MGSEI-Triage+][severe]
Flags: needinfo?(ktucker)
QA Whiteboard: [QAnalyst-Triage?][MGSEI-Triage+][severe] → [QAnalyst-Triage+][MGSEI-Triage+][severe]
Flags: needinfo?(ktucker)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: