Closed Bug 925411 Opened 7 years ago Closed 7 years ago

Two-finger scrolling on OSX doesn't work on 10.6

Categories

(Core :: Widget: Cocoa, defect)

x86
macOS
defect
Not set
normal

Tracking

()

VERIFIED FIXED
mozilla27
Tracking Status
firefox27 + verified

People

(Reporter: mccr8, Assigned: areinald.bug)

References

Details

(Keywords: regression)

Attachments

(1 file)

I updated to the 10-10 Nightly, and now two-finger scrolling with the trackpad doesn't work any more.  The three-finger scroll that goes to the very top or bottom still works, and I can scroll with the keyboard.  I'm on OSX 10.6.8.
Bug 868648 may be the culprit. OSX 10.6 does not use overlay scrollbars. I'm unable to reproduce the problem on 10.8 with either overlay or regular scrollbars.
Blocks: 868648
I'll build locally without that changeset and see how it goes.
I confirmed that two-finger scrolling works on the changeset before bug 868648, and fails with that patch added.

Additionally, in a debug build, I get this console spew when I try to do a two-finger swipe (and maybe also a three-finger swipe) and then the browser doesn't seem to respond any more:

2013-10-10 13:32:42.339 firefox[41341:903] -[NSEvent phase]: unrecognized selector sent to instance 0x11b44d0c0
2013-10-10 13:32:42.342 firefox[41341:903] Mozilla has caught an Obj-C exception [NSInvalidArgumentException: -[NSEvent phase]: unrecognized selector sent to instance 0x11b44d0c0]
2013-10-10 13:32:42.343 firefox[41341:903] Generating stack trace for Obj-C exception...
--DOMWINDOW == 16 (0x12b7088b8) [serial = 15] [outer = 0x0] [url = about:blank]
--DOMWINDOW == 15 (0x127671cb8) [serial = 11] [outer = 0x0] [url = about:blank]
2013-10-10 13:32:48.105 firefox[41341:903] Stack trace:
Looking up symbols in process 41341 named:  firefox
__exceptionPreprocess (in CoreFoundation) + 150
objc_exception_throw (in libobjc.A.dylib) + 45
+[NSObject(NSObject) doesNotRecognizeSelector:] (in CoreFoundation) + 0
___forwarding___ (in CoreFoundation) + 751
_CF_forwarding_prep_0 (in CoreFoundation) + 232
-[ChildView scrollWheel:] (in XUL) (nsChildView.mm:4769)
-[NSWindow sendEvent:] (in AppKit) + 8769
-[BaseWindow sendEvent:] (in XUL) (nsCocoaWindow.mm:2848)
-[ToolbarWindow sendEvent:] (in XUL) (nsCocoaWindow.mm:3126)
-[NSApplication sendEvent:] (in AppKit) + 4719
-[GeckoNSApplication sendEvent:] (in XUL) (nsAppShell.mm:155)
-[NSApplication run] (in AppKit) + 474
nsAppShell::Run() (in XUL) (nsAppShell.mm:742)
nsAppStartup::Run() (in XUL) (nsAppStartup.cpp:269)
XREMain::XRE_mainRun() (in XUL) (nsAppRunner.cpp:3884)
XREMain::XRE_main(int, char**, nsXREAppData const*) (in XUL) (nsAppRunner.cpp:3952)
XRE_main (in XUL) (nsAppRunner.cpp:4154)
main (in firefox) (nsBrowserApp.cpp:275)
start (in firefox) + 52
2013-10-10 13:32:48.107 firefox[41341:903] -[NSEvent phase]: unrecognized selector sent to instance 0x11ab33d40
2013-10-10 13:32:48.108 firefox[41341:903] Mozilla has caught an Obj-C exception [NSInvalidArgumentException: -[NSEvent phase]: unrecognized selector sent to instance 0x11ab33d40]
2013-10-10 13:32:48.109 firefox[41341:903] Generating stack trace for Obj-C exception...
2013-10-10 13:32:54.092 firefox[41341:903] Stack trace:
Looking up symbols in process 41341 named:  firefox
__exceptionPreprocess (in CoreFoundation) + 150
objc_exception_throw (in libobjc.A.dylib) + 45
+[NSObject(NSObject) doesNotRecognizeSelector:] (in CoreFoundation) + 0
___forwarding___ (in CoreFoundation) + 751
_CF_forwarding_prep_0 (in CoreFoundation) + 232
-[ChildView scrollWheel:] (in XUL) (nsChildView.mm:4769)
-[NSWindow sendEvent:] (in AppKit) + 8769
-[BaseWindow sendEvent:] (in XUL) (nsCocoaWindow.mm:2848)
-[ToolbarWindow sendEvent:] (in XUL) (nsCocoaWindow.mm:3126)
-[NSApplication sendEvent:] (in AppKit) + 4719
-[GeckoNSApplication sendEvent:] (in XUL) (nsAppShell.mm:155)
-[NSApplication run] (in AppKit) + 474
nsAppShell::Run() (in XUL) (nsAppShell.mm:742)
nsAppStartup::Run() (in XUL) (nsAppStartup.cpp:269)
XREMain::XRE_mainRun() (in XUL) (nsAppRunner.cpp:3884)
XREMain::XRE_main(int, char**, nsXREAppData const*) (in XUL) (nsAppRunner.cpp:3952)
XRE_main (in XUL) (nsAppRunner.cpp:4154)
main (in firefox) (nsBrowserApp.cpp:275)
start (in firefox) + 52
Keywords: regression
Summary: Two-finger scrolling on OSX doesn't work → Two-finger scrolling on OSX doesn't work on 10.6
It seems to sit there and repeatedly generate that Obj-C exception even when I'm not interacting with the browser any more.
André, let's back out your patch for bug 868648 until we've figured this out :-(

I know it's late at night for you, and (as I remember it) you don't have commit privileges.  So I'll back it out myself right now on mozilla-inbound.  Hopefully that will be soon enough for the backout to get into tomorrow's mozilla-central nightly.
This makes sense. NSEvent::phase, which was introduced with bug 868648 here[1], is only available on 10.7 and above [2]. Note that although it is also called in places like maybeTrackScrollEventAsSwipe, we first check for nsCocoaFeatures::OnLionOrLater.

[1] http://mxr.mozilla.org/mozilla-central/source/widget/cocoa/nsChildView.mm#4745
[2] https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSEvent_Class/Reference/Reference.html#//apple_ref/occ/instm/NSEvent/phase
I'm not sure what the etiquette is for backing out André's patch.  So, Stephen, I'll ask you to review this backout patch.  It's against mozilla-inbound, and was generated using "hg backout d72778f6eee9".
Attachment #815583 - Flags: review?(spohl.mozilla.bugs)
Comment on attachment 815583 [details] [diff] [review]
Backout patch for bug 868648

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

Diff against patch in bug 868648 looks good.
Attachment #815583 - Flags: review?(spohl.mozilla.bugs) → review+
Whiteboard: [leave-open]
Comment on attachment 815583 [details] [diff] [review]
Backout patch for bug 868648

Just realized I got the bug number for bug 868648 wrong in my commit message :-(

Not a bad enough mistake to reland the patch, I don't think.  I *did* get this bug's number right.
I put attachment 815783 [details] [diff] [review] (which is the updated patch) in bug 868648, but maybe it would have made more sense to attach it here. Wondering...
Flags: needinfo?(smichaud)
(In reply to comment #11)

You could go either way.  But on balance I think what you did is best -- to do the work in the original bug, and reference it here.
Flags: needinfo?(smichaud)
Duplicate of this bug: 925313
Fixed by the new patch in bug 868648.
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Whiteboard: [leave-open]
Assignee: nobody → areinald
Target Milestone: --- → mozilla27
Keywords: verifyme
verified with Nightly build 20131024030204 on 10.6.8
Status: RESOLVED → VERIFIED
Keywords: verifyme
You need to log in before you can comment on or make changes to this bug.