Closed Bug 1203012 Opened 6 years ago Closed 5 years ago

TranslateToNPCocoaEvent() in nsPluginInstanceOwner.cpp must not work well for NS_MOUSE_SCROLL (eLegacyMouseLineOrPageScroll)

Categories

(Core :: Plug-ins, defect)

x86_64
macOS
defect
Not set
normal

Tracking

()

RESOLVED INCOMPLETE
Tracking Status
firefox43 --- affected

People

(Reporter: masayuki, Unassigned)

References

Details

When I'm working on bug 895274, I found a mistake in nsPluginInstanceOwner.cpp:

http://mxr.mozilla.org/mozilla-central/source/dom/plugins/base/nsPluginInstanceOwner.cpp?rev=cad395df60d3&mark=1894-1904#1894
> 1894     case NS_MOUSE_SCROLL:
> 1895     {
> 1896       WidgetWheelEvent* wheelEvent = anEvent->AsWheelEvent();
> 1897       if (wheelEvent) {
> 1898         cocoaEvent.data.mouse.deltaX = wheelEvent->lineOrPageDeltaX;
> 1899         cocoaEvent.data.mouse.deltaY = wheelEvent->lineOrPageDeltaY;
> 1900       } else {
> 1901         NS_WARNING("NS_MOUSE_SCROLL is not a WidgetWheelEvent? (could be, haven't checked)");
> 1902       }
> 1903       break;
> 1904     }

NS_MOUSE_SCROLL (being renamed to eLegacyMouseLineOrPixelScroll) is a legacy mouse wheel event which is represented with WidgetMouseScrollEvent. So, this should retrieve AsMouseScrollEvent() or just handle NS_WHEEL_WHEEL. The latter is better, I think.

Note that both lineOrPageDelta[XY] may be 0. In such case, the event shouldn't be needed by the plugin. In such case, we shouldn't sent event to the plugin for reducing IPC cost.
Resolving old bugs which are likely not relevant any more, since NPAPI plugins are deprecated.
Status: NEW → RESOLVED
Closed: 5 years ago
Resolution: --- → INCOMPLETE
You need to log in before you can comment on or make changes to this bug.