Closed Bug 1207083 (sms-rich-paste-composer) Opened 4 years ago Closed 3 years ago

[Messages] Support rich paste functionality in SMS/MMS composer

Categories

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

ARM
Gonk (Firefox OS)
defect
Not set
major

Tracking

(b2g-v2.2 unaffected, b2g-v2.5 fixed, b2g-master affected)

RESOLVED WONTFIX
Tracking Status
b2g-v2.2 --- unaffected
b2g-v2.5 --- fixed
b2g-master --- affected

People

(Reporter: lixia, Unassigned)

References

Details

(Keywords: regression, Whiteboard: [2.5-aries-test-run-2])

Attachments

(5 files)

[1.Description]:
[Aries KK v2.5][Flame KK v2.5]Copying multiple lines of text from message and pasting them to message's input box, then deleting them, the cursor shows at wrong positon as it shifted to top of message input box.

Found at: 16:55
Attach: logcat_1655.txt, Aries_v2.5.png and Cursor_Aries_v2.5.3gp


[2.Testing Steps]: 
1. Send out or receive a SMS/MMS with multiple lines of text.
2. Long tap the multiple lines of text and select text.
3. Copy them to message input box, or copy to other message's input box.
4. Delete all text.

[3.Expected Result]: 
4. The cursor shows at correct position in message input box.

[4.Actual Result]: 
4. The cursor shows at wrong positon as it shifted to the top of message input box.

[5.Reproduction build]: 
Device: Flame KK 2.2 (Unaffected) 
Build ID               20150921032501
Gaia Revision          95950c9d48ad2fc2da7686c2b133b750a99cd3da
Gaia Date              2015-09-18 09:55:13
Gecko Revision         https://hg.mozilla.org/releases/mozilla-b2g37_v2_2/rev/9644c82a5b88
Gecko Version          37.0
Device Name            flame
Firmware(Release)      4.4.2
Firmware(Incremental)  eng.cltbld.20150921.070345
Firmware Date          Mon Sep 21 07:03:54 EDT 2015
Firmware Version       v18D v4
Bootloader             L1TC000118D0

Device: Flame KK 2.5 (Affected)
Build ID               20150921073455
Gaia Revision          2d370fa35c1a0ee2a637e3772c0843586a5f96c9
Gaia Date              2015-09-21 02:41:31
Gecko Revision         https://hg.mozilla.org/mozilla-

central/rev/039a8490891595736b16a3ccb17f025f4dcf13eb
Gecko Version          44.0a1
Device Name            flame
Firmware(Release)      4.4.2
Firmware(Incremental)  eng.cltbld.20150921.112037
Firmware Date          Mon Sep 21 11:20:52 EDT 2015
Firmware Version       v18D v4
Bootloader             L1TC000118D0

Device: Aries KK 2.5 (Affected)
Build ID               20150921174442
Gaia Revision          29991414eb94b6baa1ec2e63fdb4f6dfae05fb01
Gaia Date              2015-09-21 09:27:10
Gecko Revision         https://hg.mozilla.org/mozilla-

central/rev/197af2fb7e29ff8e4b3b6ced723b6172e954e17d
Gecko Version          44.0a1
Device Name            aries
Firmware(Release)      4.4.2
Firmware(Incremental)  eng.worker.20150921.170449
Firmware Date          Mon Sep 21 17:04:57 UTC 2015
Bootloader             s1


[6.Reproduction Frequency]: 
Always Recurrence,5/5

[7.TCID]: 
Free Test
Attached image Aries_v2.5.png
Attached file logcat_1655.txt
Keywords: regression
Hi Gerry,

Could you help to dispatch the bug? thanks. ^^
Flags: needinfo?(gchang)
Mozilla-inbound Regression Window:

Last Working Environmental Variables:
Device: Flame KK 2.5
Build ID               20150823122240
Gaia Revision          f6cde6b8a2af2d2cfa3ce9b7f4cda2daab9174a8
Gaia Date              2015-08-21 10:08:34
Gecko Revision         https://hg.mozilla.org/integration/mozilla-inbound/rev/23649438b3bbebbefc20f0cfe30684672331e82b
Gecko Version          43.0a1
Device Name            flame
Firmware(Release)      4.4.2
Firmware(Incremental)  eng.cltbld.20150822.182920
Firmware Date          Sat Aug 22 18:29:32 EDT 2015
Firmware Version       v18D v4
Bootloader             L1TC000118D0

First Broken Environmental Variables:
Device: Flame KK 2.5
Build ID               20150823142042
Gaia Revision          cddb9f610cbe03d0ca39d81bbdce46a0fca841ab
Gaia Date              2015-08-23 03:34:38
Gecko Revision         https://hg.mozilla.org/integration/mozilla-inbound/rev/4ccdd06e51d7209ba429196df7cab97bf66962db
Gecko Version          43.0a1
Device Name            flame
Firmware(Release)      4.4.2
Firmware(Incremental)  eng.cltbld.20150822.182920
Firmware Date          Sat Aug 22 18:29:32 EDT 2015
Firmware Version       v18D v4
Bootloader             L1TC000118D0

First Broken Gaia & Last Working Gecko - issue DOES NOT repro
Gaia Revision          cddb9f610cbe03d0ca39d81bbdce46a0fca841ab
Gecko Revision         23649438b3bbebbefc20f0cfe30684672331e82b

First Broken Gecko & Last Working Gaia - issue DOES repro
Gaia Revision          f6cde6b8a2af2d2cfa3ce9b7f4cda2daab9174a8
Gecko Revision         4ccdd06e51d7209ba429196df7cab97bf66962db


Gecko pushlog:
http://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=23649438b3bbebbefc20f0cfe30684672331e82b&tochange=4ccdd06e51d7209ba429196df7cab97bf66962db
QA Whiteboard: [MGSEI-Triage+]
Hi Fred,
Can you help to dispatch this to right owner?
It's kind of bad user experience.
Flags: needinfo?(gchang) → needinfo?(gasolin)
TingYu could you help check this?
Flags: needinfo?(tlin)
Boris, 

I found that if the message is "abc", the copied content in comment #0 step 2 will be <p class="message-content-body" tabindex="-1">abc</p>. Is this related to your rich text clipboard feature that makes it copy the html? Your changes are in the pushlog.
Flags: needinfo?(tlin)
Flags: needinfo?(gasolin)
Flags: needinfo?(boris.chiou)
Component: Gaia::System::Input Mgmt → Gaia::SMS
Clearly the SMS app doesn't support paste with something other than text... If this happens I'm sure everything will break in several locations, and I would appreciate to be notified in advance so that we can schedule the needed work...

Definitely I'd like that this does not happen in 2.5. Is it possible to have a opt-in or opt-out ?
See Also: → 1209900
(In reply to Shally Li, OOO till Oct. 8th from comment #5)
> Mozilla-inbound Regression Window:
> 
> 
> Gecko pushlog:
> http://hg.mozilla.org/integration/mozilla-inbound/
> pushloghtml?fromchange=23649438b3bbebbefc20f0cfe30684672331e82b&tochange=4ccd
> d06e51d7209ba429196df7cab97bf66962db

Hi, Shally,

Does it happen on the other text fields (e.g., contact app)?
Flags: needinfo?(lixia)
Duplicate of this bug: 1209900
(In reply to Ting-Yu Lin [:TYLin] (UTC+8) from comment #8)
> Boris, 
> 
> I found that if the message is "abc", the copied content in comment #0 step
> 2 will be <p class="message-content-body" tabindex="-1">abc</p>. Is this
> related to your rich text clipboard feature that makes it copy the html?
> Your changes are in the pushlog.

Yes, so I filed a bug (Bug 1210265) to add a pref which can disable rich text clipboard feature on b2g.
Flags: needinfo?(boris.chiou)
Hi Willian, 

    This bug can't be repro in other apps (ex: Contacts, Email app), the cursor shows normally when copying the lines text to other text fields and then deleting it. And if you copy the lines text from email and paste it into message app, this bug also can be repro. Please see video "Email&contactApp.3gp". Thanks.
Flags: needinfo?(lixia) → needinfo?(whsu)
Attached video Email&contactApp.3gp
Testing build:
Device: Flame KK 2.5
Build ID               20151007150205
Gaia Revision          b99837aa2294348317bcae68acabe71d9a83d774
Gaia Date              2015-10-07 13:04:16
Gecko Revision         https://hg.mozilla.org/mozilla-central/rev/1e1fa696e2b626ead6817b7c5bd871fec5d5ab5a
Gecko Version          44.0a1
Device Name            flame
Firmware(Release)      4.4.2
Firmware(Incremental)  eng.cltbld.20151007.183338
Firmware Date          Wed Oct  7 18:33:51 EDT 2015
Firmware Version       v18D v4
Bootloader             L1TC000118D0

-----------------------------------------------------
Note:
There is no latest Aries KK build for testing on other apps today, so I only investigate it on latest Flame KK build.
(In reply to Shally Li from comment #13)
> Hi Willian, 
> 
>     This bug can't be repro in other apps (ex: Contacts, Email app), the
> cursor shows normally when copying the lines text to other text fields and
> then deleting it. And if you copy the lines text from email and paste it
> into message app, this bug also can be repro. Please see video
> "Email&contactApp.3gp". Thanks.

No more question. Thank you.
Flags: needinfo?(whsu)
(In reply to Shally Li from comment #14)
> Note:
> There is no latest Aries KK build for testing on other apps today, so I only
> investigate it on latest Flame KK build.

    I check other apps (ex: Contacts, Email app) on latest Aires KK v2.5, the cursor also shows normally in Contacts/Email app corresponding to the results of comment 13. 


Testing build:
Device: Aries KK 2.5
Build ID               20151010002512
Gaia Revision          74b0d4b17f39d238a7997800bd9363d3c60f20c3
Gaia Date              2015-10-09 19:27:39
Gecko Revision         https://hg.mozilla.org/mozilla-central/rev/d1bb0de19476541cd517ab14017e7fedbd9f13e3
Gecko Version          44.0a1
Device Name            aries
Firmware(Release)      4.4.2
Firmware(Incremental)  eng.worker.20151009.234251
Firmware Date          Fri Oct  9 23:42:59 UTC 2015
Bootloader             s1
[Blocking Requested - why for this release]: Seeing the cursos misplaced gives a really bad user experience
blocking-b2g: --- → 2.5?
Triage meeting: blocking.

Looks like a gecko issue, Julien can you find someone to take a look?
blocking-b2g: 2.5? → 2.5+
Flags: needinfo?(felash)
See Also: → 1224045
Hey Boris, I think it's the same root cause than bug 1224045. Will you please have a look ?

Here I especially notice the white space at the left of the paste :)
blocking-b2g: 2.5+ → 2.5?
Flags: needinfo?(felash) → needinfo?(boris.chiou)
(In reply to Julien Wajsberg [:julienw] from comment #19)
> Hey Boris, I think it's the same root cause than bug 1224045. Will you
> please have a look ?
> 
> Here I especially notice the white space at the left of the paste :)


Sure. It's time to disable rich text on 2.5 branch by Bug 1212188.
Depends on: 1212188
Assignee: nobody → boris.chiou
Boris, we'll need to eventually handle this on master as well. When will we have the API to handle the paste operation programmatically ?

Another possible solution (?) is to use an attribute on the contenteditable element, like `moz-paste-behavior="text-only"`...
Flags: needinfo?(boris.chiou)
blocking-b2g: 2.5? → 2.6?
For 2.5 this should be fixed once bug 1212188 lands. Keeping this bug open to track it on master
(In reply to Julien Wajsberg [:julienw] from comment #22)
> Boris, we'll need to eventually handle this on master as well. When will we
> have the API to handle the paste operation programmatically ?
> 
> Another possible solution (?) is to use an attribute on the contenteditable
> element, like `moz-paste-behavior="text-only"`...

Thanks for your suggestion.
Actually, I'm not familiar the implementation in our SMS app, but maybe we can do something like this by clipboard API [1] (section 7.1.3):
document.addEventListener('paste', function(e){
    if(e.clipboardData.types.indexOf('text/html') > -1){
        processDataFromClipboard(e.clipboardData.getData('text/html'));
        e.preventDefault(); // We are already handling the data from the clipboard, we do not want it inserted into the document
    }
});

By this clipboard API, we can file a paste event to handle this. Just replace the MIME type, "text/html", with "text/plain" in the above example, so we only paste “plain text" in a specific content-editable division. I think we already support getData() in mozilla-central, but I'm not sure how many things we have to do to handle this case by this clipboard API.

[1] 7.1.3 in http://www.w3.org/TR/clipboard-apis/
Flags: needinfo?(boris.chiou)
Boris, is this already implemented in Gecko ? If yes we should definitely do this.

I'm still concerned that 3rd-party apps (or websites) will need to do this to work properly. I wonder if we could not do text-only paste in some situations...
(In reply to Julien Wajsberg [:julienw] from comment #25)
> Boris, is this already implemented in Gecko ? If yes we should definitely do
> this.
> 
> I'm still concerned that 3rd-party apps (or websites) will need to do this
> to work properly. I wonder if we could not do text-only paste in some
> situations...

We can listen the "paste" event on Gecko now, and I think we had implemented event.clipboardData.getData(MIME type) in gecko (B2G) already. (if not, it's a bug.) There are some mochitests using this API to test copy&paste feature. However, clipboardData is a read-only object, so you can use getData(), but cannot call setData() if you don't have the chrome privilege. 
Therefore, for those apps who need specific content-editable, they may have to prevent the default behaviors and just use getData('text/plain') or getData('text/unicode') to get the plain text, and then put them in the division. (I am not sure if there are other better ways to handle this, but this could be a useful work-around way.) Thanks.
Bug 1212188 is already resolved-fixed. This bug should be fixed for 2.5, adding qawanted to check. Thanks!

For master lets keep this bug open.
Keywords: qawanted
This bug has been verified as "pass" on the latest build of Flame v2.5 and Aries KK v2.5 by the STR in comment 0. 

Actual results: After deleting the pasted lines text, the cursor shows at correct position in message input box.
See attachment: verify_Flame_v2.5.3gp
Reproduce rate: 0/10


Device: Aries KK 2.5 user build (Pass)
Build ID               20151119010651
Gaia Revision          28d63cf3bdc4417f7ad8cab2230f096bf9f6d3b5
Gaia Date              2015-11-17 07:35:12
Gecko Revision         http://hg.mozilla.org/releases/mozilla-b2g44_v2_5/rev/afcf8a4b4cf310edd0e442fa80506d5cce291666
Gecko Version          44.0a2
Device Name            aries
Firmware(Release)      4.4.2
Firmware(Incremental)  eng.worker.20151119.001315
Firmware Date          Thu Nov 19 00:13:23 UTC 2015
Bootloader             s1

Device: Flame KK 2.5 512mb user build (Pass)
Build ID               20151119010236
Gaia Revision          28d63cf3bdc4417f7ad8cab2230f096bf9f6d3b5
Gaia Date              2015-11-17 07:35:12
Gecko Revision         http://hg.mozilla.org/releases/mozilla-b2g44_v2_5/rev/afcf8a4b4cf310edd0e442fa80506d5cce291666
Gecko Version          44.0a2
Device Name            flame
Firmware(Release)      4.4.2
Firmware(Incremental)  eng.worker.20151119.001411
Firmware Date          Thu Nov 19 00:14:20 UTC 2015
Firmware Version       v18D v4
Bootloader             L1TC000118D0
Must be fixed in 2.6
blocking-b2g: 2.6? → 2.6+
Assignee: boris.chiou → nobody
Remove the original assignee (me) because I think SMS developers is more suitable to fix this bug than me.
Priority: -- → P1
Summary: The cursor shows at wrong positon as it shifted to the top of message input box. → Support rich paste functionality in SMS
Alias: sms-rich-paste-composer
Summary: Support rich paste functionality in SMS → [Messages] Support rich paste functionality in SMS/MMS composer
Duplicate of this bug: 1238063
It is a new feature to message app, should we classify it as p1 bug?
Flags: needinfo?(irios.mozilla)
Hi Steve,

We agreed that priority during the triage. Why we set that priority is because this future was finally disabled in 2.5 due to the bugs and limitations at that point. But for 2.6 in principle this should be implemented. So far there are many bugs related to this open and having in mind that 2.6 is meant to be a quality release, we agreed to set that priority in order to have it working correctly and the related bugs fixed.

Do you agree on that? 
Thanks!
Flags: needinfo?(irios.mozilla)
Isabel, the alternative is to disable the rich paste functionality, like we did in 2.5. I think this should be a product decision in the end...
Flags: needinfo?(irios.mozilla)
Julien, agree...Andrea (product) was also in the triage, but lets ping him to confirm about having the feature in 2.6 or not.
Flags: needinfo?(irios.mozilla) → needinfo?(aaime)
Rather than disable the rich paste functionality, I would recommend at this stage to keep the functionality for 2.6 and fix the bug. If we will come to a condition closer to 2.6 release and we will still feel this feature having an adverse impact to quality then we can revisit the status of it at a later stage of the program.
Flags: needinfo?(aaime)
blocking-b2g: 2.6+ → ---
Priority: P1 → --
Mass closing of Gaia::SMS bugs. End of an era :(
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → WONTFIX
Mass closing of Gaia::SMS bugs. End of an era :(
You need to log in before you can comment on or make changes to this bug.