Status

()

defect
VERIFIED FIXED
6 months ago
4 months ago

People

(Reporter: aydanoliver, Assigned: baku)

Tracking

({parity-chrome, regression, site-compat})

66 Branch
mozilla66
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(firefox-esr60 unaffected, firefox64 unaffected, firefox65 unaffected, firefox66 verified)

Details

Attachments

(2 attachments)

Reporter

Description

6 months ago
User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:66.0) Gecko/20100101 Firefox/66.0

Steps to reproduce:

Open the roblox program via clicking play on a game through https://roblox.com (the way you play roblox games is by going to them and clicking play and if you have roblox installed it will open)


Actual results:

Roblox says it's loading, but never launches. My friend is also using Firefox Nightly and is experiencing the same issue. This started happening about a week ago or so and hasn't fixed, so I am forced to use chrome in order to play roblox.


Expected results:

Roblox says it's loading, then a moment later, the program launches if you have it installed.

Comment 1

6 months ago
What's shown in the 'console' and the 'network' tabs of the Web Developer Tools when this happens?
Flags: needinfo?(aydanoliver)
Reporter

Comment 2

6 months ago
Console:
XML Parsing Error: no root element found
Location: https://assetgame.roblox.com/game/report-event?name=GameLaunchAttempt_Win32_Protocol
Line Number 1, Column 1: report-event:1:1
TypeError: docShell.failedChannel is null NetErrorChild.jsm:728:13 

Network: https://prnt.sc/lwowyo.png
(In reply to Andre Klapper from comment #1)
> What's shown in the 'console' and the 'network' tabs of the Web Developer
> Tools when this happens?
Flags: needinfo?(aydanoliver)

Comment 3

6 months ago
Per Comment 2, I'll set this as Core: XML. Please correct if you feel this might be in a better component.
Component: Untriaged → XML
Product: Firefox → Core

Updated

6 months ago
Duplicate of this bug: 1515918

Comment 5

6 months ago
(In reply to aydanoliver from comment #0)
> This started happening about a week ago

It would be helpful if you could find the exact regression range.
https://mozilla.github.io/mozregression/quickstart.html

(I can't do this myself, since testing requires signing up for an account and installing separate software)
Has Regression Range: --- → no
Flags: needinfo?(aydanoliver)

Andrei, can your team look for a regression range? Thanks!

Flags: needinfo?(andrei.vaida)

Comment 7

5 months ago
regression-window

I have managed to reproduce this issue using Firefox 66.0a1 (BuildId:20190122215349) on Windows 10 64bit and macOS 10.13.6.

This seems to be a regression:

Last good revision: 2ee2f297c4106e017231ed67fba4034d766c942b

First bad revision: c4bf214bd2e65e460fcd24a6483635c1d5cb4771

Pushlog:
https://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=2ee2f297c4106e017231ed67fba4034d766c942b&tochange=c4bf214bd2e65e460fcd24a6483635c1d5cb4771

It seems that, on good builds, a prompt was displayed giving the user an option to launch the Roblox application (on affected builds, the prompt is no longer displayed and the game cannot be launched).

The following error pops inside the browser console:

9ef8bbfc2eab421bb393f587d2fff95d.js.gzip:127:210
XML Parsing Error: no root element found
Location: https://assetgame.roblox.com/game/report-event?name=GameLaunchAttempt_Win32
Line Number 1, Column 1: report-event:1:1
XML Parsing Error: no root element found
Location: https://assetgame.roblox.com/game/report-event?name=GameLaunchAttempt_Win32_Protocol
Line Number 1, Column 1: report-event:1:1
TypeError: docShell.failedChannel is null NetErrorChild.jsm:728:13

Hi Andrea! Can you please have a look into this? Thanks!

Status: UNCONFIRMED → NEW
Has Regression Range: no → yes
Ever confirmed: true
Flags: needinfo?(aydanoliver)
Flags: needinfo?(andrei.vaida)
Flags: needinfo?(amarchesini)
Assignee

Comment 8

5 months ago

Can you check if bug 1517368 fixes this issue?

Flags: needinfo?(amarchesini) → needinfo?(emil.ghitta)

Unfortunately, Bug 1517368 doesn't seem to fix this issue.

Flags: needinfo?(emil.ghitta)
Assignee

Comment 10

5 months ago

This patch does 2 things in 1 line:

  1. It doesn't show an error message when the iframe is blocked.
  2. Because of this, it keeps the same URL loaded in the iframe.

I don't have a nice way to write a test for it.

Assignee: nobody → amarchesini
Attachment #9038776 - Flags: review?(bugs)
Assignee

Comment 11

5 months ago

As discussed on IRC, this patch introduces the concept of 'timing' token for external protocol iframe. At the moment, this token is used just for iframe, and I don't want to generalize it for a bigger scope.

The idea is this:

  1. if external protocol iframes are loaded with user-interaction, PopupBlocker uses the user-interaction token as before.

  2. if they are loaded without user interaction, if the window is active, PopupBlocker tries to use the timing token: only 1 external protocol iframe is allowed any 20 seconds. (20 secs is by pref).

I expose the timing to chromeUtils for the testing.

Attachment #9038779 - Flags: review?(bugs)
Comment on attachment 9038776 [details] [diff] [review]
part 1 - no error shown when blocking

Some test?
Attachment #9038776 - Flags: review?(bugs) → review+
Comment on attachment 9038779 [details] [diff] [review]
part 2 - timing token


>+/* static */ bool PopupBlocker::ShouldExternalProtocolIframeBeAllowed() {
Per IRC, call this ConsumeTimerTokenForExternalProtocolIframe

>+// Any how many seconds we allow external protocol URLs in iframe when not in
>+// single events
>+VARCACHE_PREF(
>+  "dom.delay.block_external_protocol_in_iframes",
>+   dom_delay_block_external_protocol_in_iframes,
>+  uint32_t, 20 // in seconds
>+)
20s is really long. I'd use something like 5
Attachment #9038779 - Flags: review?(bugs) → review+

Comment 14

5 months ago
Pushed by amarchesini@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/eac3071c276b
No error should be returned when external protocol URLs are blocked in iframes, r=smaug
https://hg.mozilla.org/integration/mozilla-inbound/rev/910e176da1f9
Timing token to allow external protocol URLs are blocked in iframes without user-interaction, r=smaug

Comment 15

5 months ago
bugherder
Status: NEW → RESOLVED
Closed: 5 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla66

Updated

5 months ago
Blocks: 167475
Component: XML → Document Navigation
QA Contact: emil.ghitta

This issue is verified fixed using Firefox 66.0a1 (BuildId:20190127213438) on Windows 10 64bit and macOS 10.11.6

Status: RESOLVED → VERIFIED
Duplicate of this bug: 1521428
You need to log in before you can comment on or make changes to this bug.