Closed Bug 1036985 Opened 10 years ago Closed 10 years ago

Looks like, MetroFireFox got regressions with pointercancel event

Categories

(Firefox for Metro Graveyard :: General, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED
Firefox 34

People

(Reporter: alessarik, Assigned: kats)

References

Details

Attachments

(4 files, 7 obsolete files)

9.84 KB, text/plain
Details
22.29 KB, patch
botond
: review+
Details | Diff | Splinter Review
4.28 KB, patch
jimm
: review+
Details | Diff | Splinter Review
3.13 KB, patch
jimm
: review+
Details | Diff | Splinter Review
User Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0 (Beta/Release)
Build ID: 20140605174243

Steps to reproduce:

I use MetroFireFox from m-c


Actual results:

Tests, which can detect pointercancel event in past, now doesn't triggered pointercancel event.


Expected results:

Tests should be passed.
Behavior should be correct according with specification.
First investigation: looks like, regression was made by Bug 998025.
Very strange changes were made in file widget/windows/winrt/MetroInput.cpp
Looks like, pointercancel events doesn't fire after this changes.
The changes to MetroInput.cpp were made in the Part 9 patch of bug 998025, "Ignore touch/mouse events when in an overscrolled state".

This patch changed the semantics of the return value of APZCTreeManager::ReceiveInputEvent so that it returns: 

  - nsEventStatus_eConsumeDoDefault if the event matched a non-overscrolled APZC (the usual case)
  - nsEventStatus_eConsumeNoDefault if the event matched an overscrolled APZC
  - nsEventStatus_eIgnore if the event did not match any APZC

and modified callers of ReceiveInputEvent (in RenderFrameParent/TabParent for B2G and in MetroInput for Metro), which previous ignored this return value, to ignore the event (i.e. do not send it to content) if eConsumeNoDefault was returned.

Some relevant discussion can be found in comments 29-32 of bug 998025.

It is possible that we modified MetroInput incorrectly.
Blocks: 998025
Please provide a test case, or clarify what the expected behaviour is intended to be.
Depends on: apz-state
Summary: Looks like, MetroFirFox got regressions with pointercancel event → Looks like, MetroFireFox got regressions with pointercancel event
(In reply to Kartikaya Gupta (email:kats@mozilla.com) from comment #3)
> Please provide a test case, or clarify what the expected behaviour is
> intended to be.
Please, try use this:
https://github.com/w3c/web-platform-tests/blob/master/pointerevents/pointerevent_pointercancel_touch-manual.html
https://github.com/w3c/web-platform-tests/blob/master/pointerevents/pointerevent_releasepointercapture_onpointercancel_touch-manual.html
I hope that tests will be in m-c not so far. (Bug 1000870).
So those tests don't really explain what I was looking for. I read through the pointer events spec though and found what I was looking for. As I understand it, the ONLY dependency on the APZC code of the pointer events spec is that you somehow need to know when the input events are being consumed for panning/zooming purposes. If that starts to happen then you have to send a pointercancel event to content if there was a pointerdown previously sent and the we're in an active buttons state.

If I understand correctly, before bug 998025 you were using the return value of the APZCTreeManager::ReceiveInputEvent to determine if the event was being consumed for panning/zooming. However as we start moving input events off the main thread I don't think this is a viable route forward. Instead, I think you should try to use the NotifyAPZStateChange callback [1] to find this out, and then send the pointercancel event accordingly. The metro implementation of this callback [2] already exists and is used for switching between precise/imprecise input mode and/or showing the selection monocles.

Does that sound reasonable?

[1] http://mxr.mozilla.org/mozilla-central/source/gfx/layers/apz/public/GeckoContentController.h?rev=dd4a1c9b02fa#151
[2] http://mxr.mozilla.org/mozilla-central/source/widget/windows/winrt/APZController.cpp#306
Also to clarify: the reason I don't think using the return value of ReceiveInputEvent is a viable route forward is because ReceiveInputEvent will be running on the input-receiving thread, but it may still have to wait for web content to do a preventDefault on the corresponding touch events. This means that at the time ReceiveInputEvent is called we won't necessarily know if the events are going to be used for panning/zooming or not. We will only know that at some point in the future.

We could hijack the ContentReceivedTouch callback and stick in some code there to pick up the prevent-default notification but I think that's going to be unnecessarily brittle. Even if content doesn't cancel the events we might still not pan/zoom for some other reason, so you would have to duplicate APZC logic in widget code to know for sure. With the NotifyAPZStateChange callback you will be guaranteed to know what the APZ is doing with its stream of input events. The only tricky part will be making sure that everything is thread-safe and all the events are dealt with in the correct order.
No longer depends on: apz-state
Attached patch pointercancel_behavior_ver1.diff (obsolete) — Splinter Review
Comments and suggestions are welcome.
Attachment #8459649 - Flags: feedback?(oleg.romashin)
Attachment #8459649 - Flags: feedback?(nicklebedev37)
Attachment #8459649 - Flags: feedback?(bugmail.mozilla)
Comment on attachment 8459649 [details] [diff] [review]
pointercancel_behavior_ver1.diff

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

::: widget/windows/winrt/APZController.cpp
@@ +355,5 @@
>    }
>  }
>  
> +void APZController::DispatchTouchCancelEvent(const MultiTouchInput* aEvent)
> +{

you're not using aEvent here at all, so it shouldn't be needed. Most of the changes in this patch go away if you remove this.
Attachment #8459649 - Flags: feedback?(bugmail.mozilla) → feedback-
(In reply to Kartikaya Gupta (email:kats@mozilla.com) from comment #8)
> you're not using aEvent here at all, so it shouldn't be needed. Most of the
> changes in this patch go away if you remove this.
Unfortunately, I cannot remove this code, because I need get information about touches.
(In reply to Maksim Lebedev from comment #9)
> Unfortunately, I cannot remove this code, because I need get information
> about touches.

But you're not actually using aEvent in the patch. What information are you getting from it?
Attached patch pointercancel_behavior_ver2.diff (obsolete) — Splinter Review
+ Changes: Added restoring WidgetTouchEvent
+ Changes: Added getting access to Widget

Comments and suggestion are very welcome.
Attachment #8459649 - Attachment is obsolete: true
Attachment #8459649 - Flags: feedback?(oleg.romashin)
Attachment #8459649 - Flags: feedback?(nicklebedev37)
Attachment #8460268 - Flags: feedback?(oleg.romashin)
Attachment #8460268 - Flags: feedback?(nicklebedev37)
Attachment #8460268 - Flags: feedback?(bugs)
Attachment #8460268 - Flags: feedback?(bugmail.mozilla)
(In reply to Kartikaya Gupta (email:kats@mozilla.com) from comment #10)
> But you're not actually using aEvent in the patch. What information are you
> getting from it?
I need information for synthetize correct TOUCH_CANCEL event.
Comment on attachment 8460268 [details] [diff] [review]
pointercancel_behavior_ver2.diff

This is really for kats.
Attachment #8460268 - Flags: feedback?(bugs)
Sorry for the delay here. I spent some time looking over the code and the spec and I think I understand what you're trying to do. However I also think I probably broke some stuff in metro when I landed bug 1009733, and that unless that is fixed this fix doesn't make sense. I'm going get my metro build going again to verify the current status and see if I can fix things up again.
Attached patch pointercancel_behavior_ver3.diff (obsolete) — Splinter Review
+ Changes: Dispatch event via Widget with to correct frame
Attachment #8460268 - Attachment is obsolete: true
Attachment #8460268 - Flags: feedback?(oleg.romashin)
Attachment #8460268 - Flags: feedback?(nicklebedev37)
Attachment #8460268 - Flags: feedback?(bugmail.mozilla)
Attachment #8460928 - Flags: review?(jmathies)
Attachment #8460928 - Flags: review?(bugmail.mozilla)
Attachment #8460928 - Flags: feedback?(oleg.romashin)
Attachment #8460928 - Flags: feedback?(nicklebedev37)
(In reply to Kartikaya Gupta (email:kats@mozilla.com) from comment #14)
> Sorry for the delay here. I spent some time looking over the code and the
> spec and I think I understand what you're trying to do. However I also think
> I probably broke some stuff in metro when I landed bug 1009733, and that
> unless that is fixed this fix doesn't make sense. I'm going get my metro
> build going again to verify the current status and see if I can fix things
> up again.
Nice to hear it. This is very important bug because now it is the latest bug,
which get fails by MetroFF with tests of pointerevents specification.
Assignee: nobody → alessarik
Blocks: 1042108
Test: release capture after pointercancel.
Seems patch resolve issue, when immediately after touch down we send touch up event.
Current issue: after touch down send touch move event. In this case pointercancel is not generated.
Attached patch pointercancel_behavior_ver4.diff (obsolete) — Splinter Review
+ Changes: Added discarding flag convertToPointer to reuse in pointerCancel event
Attachment #8460928 - Attachment is obsolete: true
Attachment #8460928 - Flags: review?(jmathies)
Attachment #8460928 - Flags: review?(bugmail.mozilla)
Attachment #8460928 - Flags: feedback?(oleg.romashin)
Attachment #8460928 - Flags: feedback?(nicklebedev37)
Attachment #8461532 - Flags: review?(jmathies)
Attachment #8461532 - Flags: review?(bugmail.mozilla)
Attachment #8461532 - Flags: feedback?(oleg.romashin)
Attachment #8461532 - Flags: feedback?(nicklebedev37)
Current state: I doubt that we need use APZController::DispatchTouchCancelEvent
Comment on attachment 8461532 [details] [diff] [review]
pointercancel_behavior_ver4.diff

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

Mostly just nits. kats needs to give final r+ for this, I haven't worked with our apz code in a while.

::: widget/InputData.h
@@ +182,5 @@
>    // SingleTouchData. It also sends garbage for the identifier, radius, force
>    // and rotation angle.
>    MultiTouchInput(const WidgetMouseEvent& aMouseEvent);
>  
> +  void RestoreWidgetTouchEvent(WidgetTouchEvent& aEvent, bool restore_type = true) const;

nit - this needs a comment explaining what this method does.

::: widget/windows/winrt/APZController.h
@@ +71,5 @@
>    // todo: make this a member variable as prep for multiple views
>    static nsRefPtr<mozilla::layers::APZCTreeManager> sAPZC;
>  
>  private:
> +  nsIWidget* mWidget;

Should this be a ref ptr?

::: widget/windows/winrt/MetroInput.cpp
@@ +1470,5 @@
>        continue;
>      }
> +    // This touch could was used with previous event,
> +    // that's why we should discard this flag
> +    // to correctly generate corresponding pointer event.

nit - this comment doesn't make a lot of sense. Can you clean it up and make it more clear please?

::: widget/xpwidgets/InputData.cpp
@@ +67,5 @@
>      mTouches.AppendElement(data);
>    }
>  }
>  
> +void MultiTouchInput::RestoreWidgetTouchEvent(WidgetTouchEvent& aTouchEvent, bool restore_type) const

nit -

void
MultiTouchInput::Restore...
Attachment #8461532 - Flags: review?(bugmail.mozilla) → review-
Attached patch pointercancel_behavior_ver5.diff (obsolete) — Splinter Review
+ Changes: Changed comment
- Changes: Removed unnecessary code
Attachment #8461532 - Attachment is obsolete: true
Attachment #8461532 - Flags: review?(jmathies)
Attachment #8461532 - Flags: feedback?(oleg.romashin)
Attachment #8461532 - Flags: feedback?(nicklebedev37)
Attachment #8462441 - Flags: review?(mbrubeck)
Attachment #8462441 - Flags: review?(jmathies)
Attachment #8462441 - Flags: review?(bugmail.mozilla)
Attachment #8462441 - Flags: feedback?(oleg.romashin)
Attachment #8462441 - Flags: feedback?(nicklebedev37)
Comment on attachment 8462441 [details] [diff] [review]
pointercancel_behavior_ver5.diff

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

This patch is significantly different from the last one, and the changes to nsPresShell.cpp are just moving code around. It seems like this is a one-line fix? Unflagging for review until you confirm this is the right patch because it looks like you just uploaded the wrong thing.

Also please keep an eye on bug 1043608 which I marked as blocking this. It rewrites all of the touch-handling code in MetroInput so that it conforms to the behaviour expected by APZC. As part of that I got rid of this DispatchTouchCancel function but I can certainly put it back for dispatching cancel events to content if that's what is needed here.

I'm still thinking about the different possible codepaths that can be executed here and trying to find a way to send this cancel event that guarantees it will be sent at the right time.
Attachment #8462441 - Flags: review?(mbrubeck)
Attachment #8462441 - Flags: review?(jmathies)
Attachment #8462441 - Flags: review?(bugmail.mozilla)
(In reply to Maksim Lebedev from comment #4)
> Please, try use this:
> https://github.com/w3c/web-platform-tests/blob/master/pointerevents/
> pointerevent_pointercancel_touch-manual.html
> https://github.com/w3c/web-platform-tests/blob/master/pointerevents/
> pointerevent_releasepointercapture_onpointercancel_touch-manual.html

Is there a place that these tests are hosted that I can run them directly?
Flags: needinfo?(alessarik)
Attached patch WIP (obsolete) — Splinter Review
The attached patch, applied on top of the patches in bug 1043608, makes those two tests pass. However it's not technically a correct fix because in some cases it will cancel the wrong touches. I think the same is true of your earlier patch (attachment 8461532 [details] [diff] [review]). There's some inherent difficulties because the events are queued up both in the metro widget code and in the APZC code, so by the time we know for sure that we're panning, we might have already dispatched some of the move events to web content. I'm still thinking about this...
(In reply to Kartikaya Gupta (email:kats@mozilla.com) from comment #23)
> This patch is significantly different from the last one, and the changes to
> nsPresShell.cpp are just moving code around. It seems like this is a
> one-line fix? Unflagging for review until you confirm this is the right
> patch because it looks like you just uploaded the wrong thing.
I created build with DispatchTouchCancelEvent and without it.
And in both case MetroFF show the same result in our tests.
That's why I solve that the DispatchTouchCancelEvent is extra code (and remove it)
Flags: needinfo?(alessarik)
(In reply to Kartikaya Gupta (email:kats@mozilla.com) from comment #24)
> Is there a place that these tests are hosted that I can run them directly?
You can get patches from Bug 1000870. This bug contain patches with all w3c tests.
(In reply to Kartikaya Gupta (email:kats@mozilla.com) from comment #25)
> The attached patch, applied on top of the patches in bug 1043608, makes
> those two tests pass. However it's not technically a correct fix because in
> some cases it will cancel the wrong touches. I think the same is true of
> your earlier patch (attachment 8461532 [details] [diff] [review]). There's
> some inherent difficulties because the events are queued up both in the
> metro widget code and in the APZC code, so by the time we know for sure that
> we're panning, we might have already dispatched some of the move events to
> web content. I'm still thinking about this...
I need time to test your patch, but "it will cancel the wrong touches" seems unwanted.
(In reply to Maksim Lebedev from comment #28)
> I need time to test your patch, but "it will cancel the wrong touches" seems
> unwanted.
I created version with attachments from bug 1043608 and WIP patch and I tested our tests.
I got several fail results during testing. Also I got strange behavior:
pointercancel event doesn't cancel firing event to target (at first)
pointermove were fired a lot of times to target (at second)
pointerout/leave were generated on target like I use mouse, (at third), but I use touch.
Comment on attachment 8462441 [details] [diff] [review]
pointercancel_behavior_ver5.diff

Opposite, patch pointercancel_behavior_ver5.diff have minimal changes.
And all tests were passed successfully with normal behavior.
Also this patch doesn't "cancel wrong touches".
Attachment #8462441 - Flags: review?(mbrubeck)
Attachment #8462441 - Flags: review?(jmathies)
Attachment #8462441 - Flags: review?(bugmail.mozilla)
(In reply to Maksim Lebedev from comment #29)
> I created version with attachments from bug 1043608 and WIP patch and I
> tested our tests.
> I got several fail results during testing.

Can you list which tests were failing?

> Also I got strange behavior:
> pointercancel event doesn't cancel firing event to target (at first)
> pointermove were fired a lot of times to target (at second)
> pointerout/leave were generated on target like I use mouse, (at third), but
> I use touch.

I don't really understand what you mean here. Can you describe this in more detail, and provide steps to reproduce?
Comment on attachment 8462441 [details] [diff] [review]
pointercancel_behavior_ver5.diff

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

This patch is a one-line change to MetroInput.cpp so my review is not needed here. If Jim accepts my patches in bug 1043608 then I can write a proper fix for this bug and the other issues you mentioned above.
Attachment #8462441 - Flags: review?(bugmail.mozilla)
(In reply to Kartikaya Gupta (email:kats@mozilla.com) from comment #31)
> Can you list which tests were failing?
Build with patches: https://tbpl.mozilla.org/?tree=Try&rev=4c7a9d0a7435

Test: release capture on pointercancel
Action: touch down on target. Wait some seconds. Move touch out of target.
Actual: pointercancel doesnot trigger at target.
Additional strange behavior: A lot of pointermove event were fired at target.

Test: pointerout after pointercancel.
Action: touch down on target. Wait some seconds. Move touch out of target.
Expected: pointercancel received before pointerout
Actual: pointercancel doesn't fire at target.
Additional strange behavior: A lot of pointermove event were fired at target.
(In reply to Maksim Lebedev from comment #28)
> I need time to test your patch, but "it will cancel the wrong touches" seems
> unwanted.

Yeah, it is.

I discussed this further with mbrubeck on IRC to clarify when the pointercancel should be sent. For better compatibility with touchevents and for ease of implementation (particularly in the case where we have a dedicated input thread) we came to the conclusion that the pointercancel event dispatching should be independent of the preventDefault behaviour from touchevents. I'm attaching a copy of our conversation for posterity.

I'll write a new patch to go on top of the stuff I landed for bug 1043608 that dispatches pointercancel events based on this.
Attachment #8464205 - Attachment is obsolete: true
Testing of our patches shows that:
 - "pointercancel_behavior_ver5.diff" give us correct behavior of pointer events according with corresponding specification. Tests with pointercancel events will be passed succesfully. Patch resolve the main issue (which breaks pointercancel behavior). (and looks pretty simplier)
 - "WIP" with attachments from 1043608 give us incorrect behavior. Pointercancel event doesn't break sequence of pointermove events, and all this events fired at target.
Comment on attachment 8462441 [details] [diff] [review]
pointercancel_behavior_ver5.diff

(In reply to Olli Pettay [:smaug] from comment #13)
> Comment on attachment 8460268 [details] [diff] [review]
> pointercancel_behavior_ver2.diff
> This is really for kats.
Unfortunately, I should return You back. We need your opinion.
Attachment #8462441 - Flags: review?(bugs)
Sure, v5 is something I could review. v2 was all about APZC
Comment on attachment 8462441 [details] [diff] [review]
pointercancel_behavior_ver5.diff

># HG changeset patch
># Parent c02d0c194999d0d2009219d8c3dd3cf7a779103c
># User Lebedev Maksim <Alessarik@gmail.com>
>Bug 1036985 - Add correct behavior of pointercancel event
>
>diff --git a/layout/base/nsPresShell.cpp b/layout/base/nsPresShell.cpp
>--- a/layout/base/nsPresShell.cpp
>+++ b/layout/base/nsPresShell.cpp
>@@ -6679,59 +6679,59 @@ DispatchPointerFromMouseOrTouch(PresShel
>   uint32_t pointerMessage = 0;
>   if (aEvent->eventStructType == NS_MOUSE_EVENT) {
>     WidgetMouseEvent* mouseEvent = aEvent->AsMouseEvent();
>     // if it is not mouse then it is likely will come as touch event
>     if (!mouseEvent->convertToPointer) {
>       return NS_OK;
>     }
>     int16_t button = mouseEvent->button;
>     switch (mouseEvent->message) {
>+    case NS_MOUSE_BUTTON_DOWN:
>+      pointerMessage = NS_POINTER_DOWN;
>+      break;
>     case NS_MOUSE_MOVE:
>       if (mouseEvent->buttons == 0) {
>         button = -1;
>       }
>       pointerMessage = NS_POINTER_MOVE;
>       break;
>     case NS_MOUSE_BUTTON_UP:
>       pointerMessage = NS_POINTER_UP;
>       break;
>-    case NS_MOUSE_BUTTON_DOWN:
>-      pointerMessage = NS_POINTER_DOWN;
>-      break;
Unrelated changes just make reviewing harder.
Code cleanups should be done in separate patches (in separate bugs).

>     WidgetTouchEvent* touchEvent = aEvent->AsTouchEvent();
>     // loop over all touches and dispatch pointer events on each touch
>     // copy the event
>     switch (touchEvent->message) {
>+    case NS_TOUCH_START:
>+      pointerMessage = NS_POINTER_DOWN;
>+      break;
>     case NS_TOUCH_MOVE:
>       pointerMessage = NS_POINTER_MOVE;
>       break;
>+    case NS_TOUCH_CANCEL:
>+      pointerMessage = NS_POINTER_CANCEL;
>+      break;
>     case NS_TOUCH_END:
>       pointerMessage = NS_POINTER_UP;
>       break;
>-    case NS_TOUCH_START:
>-      pointerMessage = NS_POINTER_DOWN;
>-      break;
>-    case NS_TOUCH_CANCEL:
>-      pointerMessage = NS_POINTER_CANCEL;
>-      break;
ditto.


>diff --git a/widget/windows/winrt/MetroInput.cpp b/widget/windows/winrt/MetroInput.cpp
>--- a/widget/windows/winrt/MetroInput.cpp
>+++ b/widget/windows/winrt/MetroInput.cpp
>@@ -1463,18 +1463,22 @@ MetroInput::DispatchTouchCancel(WidgetTo
I don't see MetroInput::DispatchTouchCancel anywhere in the tree.
So hard to review.
Attachment #8462441 - Flags: review?(bugs)
As I mentioned in comment 23 I removed that function as part of bug 1043608. It's no longer in m-c, and won't be in metro either once I merge the changes over. I'll write a new patch to fix this bug on top of those changes and based on the discussion I had with matt yesterday.
Assignee: alessarik → bugmail.mozilla
Attachment #8462604 - Attachment is obsolete: true
Status: UNCONFIRMED → NEW
Ever confirmed: true
Attachment #8466299 - Flags: review?(botond)
Attachment #8462441 - Attachment is obsolete: true
Attachment #8462441 - Flags: review?(mbrubeck)
Attachment #8462441 - Flags: review?(jmathies)
Attachment #8462441 - Flags: feedback?(oleg.romashin)
Attachment #8462441 - Flags: feedback?(nicklebedev37)
Attachment #8466301 - Flags: review?(jmathies)
Comment on attachment 8466299 [details] [diff] [review]
Part 1 - Make the return value of ReceiveInputEvent provide the necessary information

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

::: gfx/layers/apz/src/APZCTreeManager.h
@@ +129,5 @@
>     * by the caller if it wants to do this.
>     *
> +   * The following values may be returned by this function:
> +   * nsEventStatus_eConsumeNoDefault is returned to indicate the
> +   *   caller should discard the event with extreme prejudice.

:)

::: gfx/layers/apz/src/AsyncPanZoomController.h
@@ +545,5 @@
>    /**
> +   * Given the number of touch points in an input event and touch block they
> +   * belong to, check if the event can result in a panning/zooming behavior.
> +   * This is primarily used to figure out when to dispatch the pointercancel
> +   * event for the pointer events spec.

It's not clear to me how "nsEventStatus" maps to "if it can result in panning/zooming behavior". I would either document the mapping (Ignore -> No, ConsumeDoDefault -> Yes, ConsumeNoDefault -> Unused), or change the return type to 'bool' and have the callers map it to nsEventStatus.
Attachment #8466299 - Flags: review?(botond) → review+
(In reply to Botond Ballo [:botond] from comment #45)
> It's not clear to me how "nsEventStatus" maps to "if it can result in
> panning/zooming behavior". I would either document the mapping (Ignore ->
> No, ConsumeDoDefault -> Yes, ConsumeNoDefault -> Unused), or change the
> return type to 'bool' and have the callers map it to nsEventStatus.

Yeah, good point. I'll change it to a bool.
Attachment #8466300 - Flags: review?(jmathies) → review+
Btw, I posted some small updates to the W3C test suite: https://github.com/w3c/web-platform-tests/pull/1138
Comment on attachment 8466301 [details] [diff] [review]
Part 3 - Send pointercancel events when appropriate

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

Thanks for updating this code!
Attachment #8466301 - Flags: review?(jmathies) → review+
(In reply to Kartikaya Gupta (email:kats@mozilla.com) from comment #44)
> https://tbpl.mozilla.org/?tree=Try&rev=b2bfa48a0f3d
Unfortunately, this build have no ability to work as Metro.
As I correctly re-build this, I create this: https://tbpl.mozilla.org/?tree=Try&rev=4200f04c4686
During testing this version I got very strange behavior of tests:
In one of test I can see stable pointercancel event after first pointermove event.
But in another test this behavior could detected in only about 5% of test iterations.
If there's something here you want me to look at please let me know what it is and how i can reproduce it. Just saying that some test is failing intwrmittently doesn't provide any actionable information and is a waste of time.
(In reply to Kartikaya Gupta (email:kats@mozilla.com) from comment #51)
> If there's something here you want me to look at please let me know what it
> is and how i can reproduce it. Just saying that some test is failing
> intwrmittently doesn't provide any actionable information and is a waste of time.
I will try to provide information, but in any case, I would be grateful,
if this patches will be copyed from m-c to project/metro branch.
Maksim sent me an email with details on the failures. I believe they should be resolved by applying the min-height patch that is among the fixes I linked to in comment 47.

I'll build another merge from m-c to the metro branch later today and push it if it looks good.
I pushed the changes to the metro branch; merge cset http://hg.mozilla.org/projects/metro/rev/74f31dec75b1
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: