Note: the show() and hide() methods are necessary for the browser to properly implement fullscreen mode: when entering fullscreen mode, it’s ok to set mode to ModeHidden, but when exiting it, mode is naturally reset to ModeAuto, which will not change the current position (but does mean it should reveal on scrolling, on touch devices). So when exiting fullscreen there’s no guarantee that the chrome will be shown, it might end up hidden even if it was previously shown (and to make things worse on desktop scrolling won’t reveal the chrome, so it will remain hidden until some other event sets mode to ModeShown).
Note: the show() and hide() methods are necessary for the browser to properly implement fullscreen mode: when entering fullscreen mode, it’s ok to set mode to ModeHidden, but when exiting it, mode is naturally reset to ModeAuto, which will not change the current position (but does mean it should reveal on scrolling, on touch devices). So when exiting fullscreen there’s no guarantee that the chrome will be shown, it might end up hidden even if it was previously shown (and to make things worse on desktop scrolling won’t reveal the chrome, so it will remain hidden until some other event sets mode to ModeShown).