Closed Bug 1519051 Opened 6 years ago Closed 5 years ago

Unable to enter fullscreen on hangouts.google.com on Windows

Categories

(Web Compatibility :: Desktop, defect, P1)

Unspecified
Windows
defect

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: xidorn, Unassigned)

References

(Blocks 1 open bug, )

Details

(Keywords: webcompat:contact-ready)

Steps to reproduce from the webcompat issue:

  1. Navigate to https://hangouts.google.com/ with a personal Google account (enterprise one doesn't work because it would redirect to meet.google.com)
  2. Click “Video Call” and start a video chat.
  3. Click “More” button.
  4. Click “Fullscreen” and observe behavior.

I had a look at this issue on my surface, and it seems the fullscreen request gets stuck: it's neither accepted nor rejected. You see no error message in the console, and manually hook fullscreenerror event gets nothing. This is apparently something going wrong in the browser.

It's not clear to me yet whether it's something wrong in the DOM code or in the Windows widget code.

ni? myself to have a closer look.

Flags: needinfo?(xidorn+moz)

Thanks Xidorn.

One thing I was wrong: this is probably unrelated to Fullscreen API. As far as I can see, requestFullscreen is not invoked at all on Windows. I set a custom function to Element.prototype.requestFullscreen and Element.prototype.mozRequestFullScreen, and none of them are invoked when clicking the fullscreen menu. Also when I put a breakpoint in the entry Element::RequestFullscreen function, it is not reached either.

If the function is never invoked, we certainly cannot enter fullscreen.

No longer blocks: fullscreen-api

OK, it is clear to me now that this is not our problem. It is Hangouts explicitly prevent Firefox from entering fullscreen on Windows.

In their source code, I can find the following stuff (slightly prettified):

if (!_.Kd || !_.Fd) 
  if (_.jQ() || screen.width != window.innerWidth || screen.height != window.innerHeight) 
    _.jQ() ? (_.wza(), b.La(2625))  :
      (a = _.Uf(a).body, a.mozRequestFullScreenWithKeys ?
      a.mozRequestFullScreenWithKeys()  :
      a.webkitRequestFullscreen ? a.webkitRequestFullscreen()  :
      a.webkitRequestFullscreen ? a.webkitRequestFullscreen()  :
      a.mozRequestFullScreen ? a.mozRequestFullScreen()  :
      a.msRequestFullscreen ? a.msRequestFullscreen()  :
      a.requestFullscreen && a.requestFullscreen(), b.La(2624))

and on Windows, both _.Kd and _.Fd are true, so the following stuff is not invoked.

And I searched the code to see what are they, this is what I found:

_.Kd=_.Ac("Windows");
_.Fd=_.Ac("Gecko")&&!(_.kc(_.xc.toLowerCase(),"webkit")&&!_.Ac("Edge"))&&!(_.Ac("Trident")||_.Ac("MSIE"))&&!_.Ac("Edge");

Although I didn't trace all the way down for what each symbol here means, it should be clear enough from the strings shown up that Firefox on Windows is specifically stopped from entering fullscreen.

This is apparently a problem that we cannot fix from our side.

Component: DOM → Desktop
Flags: needinfo?(xidorn+moz)
Product: Core → Tech Evangelism
Product: Tech Evangelism → Web Compatibility
Flags: needinfo?(miket)
Priority: -- → P1

This is fixed now.

Status: NEW → RESOLVED
Closed: 5 years ago
Flags: needinfo?(miket)
Resolution: --- → FIXED
Blocks: meet
You need to log in before you can comment on or make changes to this bug.