Closed Bug 1125419 Opened 9 years ago Closed 9 years ago

[Text Selection][Browser] The page scrolls down during text selection

Categories

(Core :: DOM: Selection, defect, P2)

ARM
Gonk (Firefox OS)
defect

Tracking

()

VERIFIED FIXED
mozilla38
blocking-b2g 2.2+
Tracking Status
firefox36 --- wontfix
firefox37 --- wontfix
firefox38 --- fixed
b2g-v2.2 --- verified
b2g-master --- verified

People

(Reporter: ychung, Assigned: mtseng)

References

()

Details

(Whiteboard: [3.0-Daily-Testing])

Attachments

(3 files, 4 obsolete files)

526.12 KB, text/plain
Details
8.70 KB, patch
smaug
: review+
Details | Diff | Splinter Review
6.16 KB, patch
Details | Diff | Splinter Review
Description:
When the user tries to select multiple lines on a webpage, the page scrolls down as the user drags the carat downward. This makes it difficult for user to select multiple lines.
   
Repro Steps:
1) Update a Flame device to BuildID: 20150123093302.
2) Navigate to msn.com on the browser.
3) Select any article.
4) Long-press on a word.
5) Drag down the right carats to select multiple lines.
  
Actual:
The page scrolls down, which makes it difficult to select multiple lines.
  
Expected: 
The page does not scroll during the text selection.

Note:
On an Android device, the same webpage does not scroll down while text selection.
  
Environmental Variables:
Device: Flame 2.2 (319mb, full flash)
Build ID: 20150123002505
Gaia: 237008137f6d72b9cad25ff4faff14ff2c40ac63
Gecko: be24dd482a83
Gonk: e7c90613521145db090dd24147afd5ceb5703190
Version: 37.0a2 (2.2)
Firmware Version: v18D-1
User Agent: Mozilla/5.0 (Mobile; rv:37.0) Gecko/37.0 Firefox/37.0
  
Repro frequency: 10/10
See attached: video clip, logcat
http://youtu.be/wpz246wdLh0

=========================================
This issue also reproduces on Flame 2.2.

Device: Flame 2.2 (319mb, full flash)
Build ID: 20150123002505
Gaia: 237008137f6d72b9cad25ff4faff14ff2c40ac63
Gecko: be24dd482a83
Gonk: e7c90613521145db090dd24147afd5ceb5703190
Version: 37.0a2 (2.2)
Firmware Version: v18D-1
User Agent: Mozilla/5.0 (Mobile; rv:37.0) Gecko/37.0 Firefox/37.0

Text selection is a new feature on Flame 2.2. N/A on v2.1.
QA Whiteboard: [QAnalyst-Triage?][textselection]
Flags: needinfo?(ktucker)
This will cause end user frustration so nominating this 2.2?
blocking-b2g: --- → 2.2?
QA Whiteboard: [QAnalyst-Triage?][textselection] → [QAnalyst-Triage+][textselection]
Flags: needinfo?(ktucker)
Whiteboard: [3.0-Daily-Testing]
Summary: [Text Selection][Broswer] The page scrolls down during text selection → [Text Selection][Browser] The page scrolls down during text selection
kats, before LayoutEventRegions enabled, we can skip apz by setting SetMayHaveTouchCaret and then NeedToWaitContent at [1] would check this flag. So that if user drag on touch caret, the page doesn't scroll by apzc. But since LayoutEventRegions enabled by default in bug 928833, SetMayHaveTouchCaret cannot prevent this behavior. Do you have any suggestion for this problem? Thanks.

[1]: https://dxr.mozilla.org/mozilla-central/source/gfx/layers/apz/src/InputQueue.cpp#199
Flags: needinfo?(bugmail.mozilla)
Assignee: nobody → mtseng
Status: NEW → ASSIGNED
Priority: -- → P2
We should do something like bug 1119355 where we add a dummy touch listener to the content element for the caret. That way it will get added to the dispatch-to-content region in the event regions, and the preventDefault behaviour will work.
Flags: needinfo?(bugmail.mozilla)
Comment on attachment 8555138 [details] [diff] [review]
Add dummy touch event listener to touch/selection carets to prevent apz scroll when dragging touch/selection carets.

Review of attachment 8555138 [details] [diff] [review]:
-----------------------------------------------------------------

You don't remove these listeners anywhere, but you'll definitely need to!
Attachment #8555138 - Flags: review?(roc) → review-
Triage: blocker
blocking-b2g: 2.2? → 2.2+
Component: Gaia → Selection
Product: Firefox OS → Core
Move addEventListener to nsCanvasFrame so that we can removeEventListener on nsCanvasFrame::DestroyFrom().
Attachment #8555138 - Attachment is obsolete: true
Attachment #8556320 - Flags: review?(roc)
Attachment #8557716 - Flags: review?(bugs)
Attachment #8557716 - Flags: review?(bugs) → review+
Comment on attachment 8557728 [details] [diff] [review]
Add dummy touch event listener to touch/selection carets to prevent apz scroll when dragging touch/selection carets v4. (carry r+: roc)

NOTE: Please see https://wiki.mozilla.org/Release_Management/B2G_Landing to better understand the B2G approval process and landings.

[Approval Request Comment]
Bug caused by (feature/regressing bug #): 
User impact if declined: User would hard to drag carets.
Testing completed: Try is positive on master try.
Risk to taking this patch (and alternatives if risky): low risk
String or UUID changes made by this patch: not available
Attachment #8557728 - Flags: approval-mozilla-b2g37?
Comment on attachment 8557716 [details] [diff] [review]
Disable touch/selection caret before testing test_bug648573.html v2.

NOTE: Please see https://wiki.mozilla.org/Release_Management/B2G_Landing to better understand the B2G approval process and landings.

[Approval Request Comment]
Bug caused by (feature/regressing bug #): 
User impact if declined: User would hard to drag carets.
Testing completed: Try is positive on master try.
Risk to taking this patch (and alternatives if risky): low risk
String or UUID changes made by this patch: not available
Attachment #8557716 - Flags: approval-mozilla-b2g37?
https://hg.mozilla.org/mozilla-central/rev/e1bc43872656
https://hg.mozilla.org/mozilla-central/rev/215aa5f16853
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla38
QA Whiteboard: [QAnalyst-Triage+][textselection] → [QAnalyst-Triage+][COM=Text Selection]
Attachment #8557716 - Flags: approval-mozilla-b2g37? → approval-mozilla-b2g37+
Attachment #8557728 - Flags: approval-mozilla-b2g37? → approval-mozilla-b2g37+
This issue is verified fixed on Flame Master and 2.2.

Result: The webpage does not scroll while the user moves the carats.
 
Device: Flame Master (KK, 319mb, full flash)
Build ID: 20150220010206
Gaia: e4f7c67378e33e83f88d38ddb4a6c2cabf1423c3
Gecko: 1b4c5daa7b7a
Gonk: e7c90613521145db090dd24147afd5ceb5703190
Version: 38.0a1 (3.0)
Firmware Version: v18D-1
User Agent: Mozilla/5.0 (Mobile; rv:38.0) Gecko/38.0 Firefox/38.0

Device: Flame 2.2 (KK, 319mb, full flash)
Build ID: 20150220002501
Gaia: ce79d35b92261e7cbfeaefebf87859ebeb0979b4
Gecko: b864abe1c6b3
Gonk: e7c90613521145db090dd24147afd5ceb5703190
Version: 37.0a2 (2.2)
Firmware Version: v18D-1
User Agent: Mozilla/5.0 (Mobile; rv:37.0) Gecko/37.0 Firefox/37.0
Status: RESOLVED → VERIFIED
QA Whiteboard: [QAnalyst-Triage+][COM=Text Selection] → [QAnalyst-Triage?][COM=Text Selection]
Flags: needinfo?(ktucker)
QA Whiteboard: [QAnalyst-Triage?][COM=Text Selection] → [QAnalyst-Triage+][COM=Text Selection]
Flags: needinfo?(ktucker)
Hello guys,

I have a similar issue in (the latest) FireFox for Android (both FF and FF beta): when I select some text in a textarea and move the cursor more to the right than the end-of-line for the line where the selection was started, the whole text gets selected (and the screen is scrolled to the bottom).

Should I file a separate bug, or it's better to reopen this one?
Please file a separate bug, thanks!
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: