User:Jdlrobson/Page issues analysis

In https://phabricator.wikimedia.org/T204143#4650771 we noted that we are seeing situation where PageIssues events are not matched with ReadingDepth.

This is my analysis.

Note Android doesn't show by default on caniuse - you have to turn it on by clicking "settings" and adding it explicitly.

Method
Table of browser user agents mapping to event logging events we were seeing was generated via the following hive query: With the generated table, For each combination, I considered RL, sendBeacon support and NavigationTimingSupport.

For the same period, I looked at the amount of EventError's that were logged which had pageLoaded in the event.

Results
The following errors were dropped during the time period

This was the table it outputted - I went through each browser/os combination and documented what was expected.

Analysis
Generally the data matches the expected result and where it doesn't the margin of error is usually small.

Expected both
This is the easier one to explain.

The ReadingDepth and PageIssues events are sent at different times in the code. There are a variety of factors that could lead to only one being sent. These include


 * client's web connection speed/stability
 * client side error occurring in either page issues or reading depth
 * event could not be decoded

Expected only_pi
These are the most peculiar and not as common.

If a browser has been identified as not supporting ReadingDepth, how could it possibly send ReadingDepth events?

This issue seems limited to Chrome <= 38 on Android 4-7 (sendBeacon was introduced in 38), iOS Chrome prior to 11.3 and the native Android browser.

Expected no events, got events
This is also strange. If a browser cannot run JavaScript how is it running JavaScript? Android 2 doesn't support strict mode so we shouldn't be seeing any events (https://caniuse.com/#search=use-strict

Android 4 doesn't support ES5 in strict mode. Yet strangely, we're seeing events here.

It would be great to get more information about the capabilities of these browsers and make sure they get excluded from ResourceLoader.

Please ignore these in any data analysis. They cannot be trusted.