Closed Bug 1130129 Opened 9 years ago Closed 9 years ago

ASSERTION: Unexpected layers id in SetTargetAPZC; dropping message...: 'Error', file ../../../gecko/layout/ipc/RenderFrameParent.cpp, line 558

Categories

(Core :: Panning and Zooming, defect)

All
Gonk (Firefox OS)
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla38
Tracking Status
firefox36 --- wontfix
firefox37 --- wontfix
firefox38 --- fixed
b2g-v2.2 --- fixed
b2g-master --- fixed

People

(Reporter: kats, Assigned: kats)

References

Details

Attachments

(1 file)

Attached patch PatchSplinter Review
STR:
- Go to the video app in B2G and open a video.
- Tap on the screen so that the top bar (with back/menu/title) and the bottom control areas appear.
- Tap at the very top of the screen in the middle, above the title.

In logcat, I see these warnings spit out:

I/Gecko   (27613): [Parent 27613] ###!!! ASSERTION: Unexpected layers id in SetTargetAPZC; dropping message...: 'Error', file ../../../gecko/layout/ipc/RenderFrameParent.cpp, line 558
I/Gecko   (27613): [Parent 27613] ###!!! ASSERTION: Unexpected layers id in ContentReceivedInputBlock; dropping message...: 'Error', file ../../../gecko/layout/ipc/RenderFrameParent.cpp, line 541

Botond and I discussed this on IRC the other day in theory - it's a result of the APZ's hit-test detecting a parent-process hit, but the event actually falling through and going to the child process. The guid that is sent to the child process along with the touch event contains the parent process layers id, and so when the child process sends back SetTargetAPZC and ContentReceivedInputBlock notifications, they are dropped on the assumption that they are forged or bogus.

However in this case they are *not* forged or bogus, but we need to respect the main thread hit-test and send a corrected layers id to the child. The patch does this in the way that we discussed, by changing the guid we send to the child to reflect the best knowledge we have about the real target (i.e. the correct layers id, and nothing else).

I verified that this patch fixes the appearance of the above-mentioned assertion with the STR provided.
Attachment #8560038 - Flags: review?(botond)
Comment on attachment 8560038 [details] [diff] [review]
Patch

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

::: dom/ipc/TabParent.cpp
@@ +2397,5 @@
>      if (aOutTargetGuid) {
>        *aOutTargetGuid = InputAPZContext::GetTargetLayerGuid();
> +
> +      // There may be cases where the APZ hit-testing code came to a different
> +      // conclusion that the main-thread hit-testing code as to where the event

s/that/than
Attachment #8560038 - Flags: review?(botond) → review+
https://hg.mozilla.org/mozilla-central/rev/7d211cebe7fc
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla38
Comment on attachment 8560038 [details] [diff] [review]
Patch

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 #): various changes related to parent-process APZ (bug 950934)
User impact if declined: warning in logcat, and in some rare cases touch input will not be handled properly (e.g. user will be able to scroll when not supposed to)
Testing completed: locally
Risk to taking this patch (and alternatives if risky): low risk
String or UUID changes made by this patch: none
Attachment #8560038 - Flags: approval-mozilla-b2g37?
Attachment #8560038 - Flags: approval-mozilla-b2g37? → approval-mozilla-b2g37+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: