In the current implementation, an InvalidStateError is thrown when the XR compatible boolean is set to false regardless of whether or not the session is an immersive session.
This makes a progressive enhancement experience as mentioned in the WebXR explainer not possible. When creating a context without the XR compatible boolean set, it should still be usable in an inline session.
The XRWebGLLayer spec mentions:
In the current implementation, an InvalidStateError is thrown when the XR compatible boolean is set to false regardless of whether or not the session is an immersive session.
This makes a progressive enhancement experience as mentioned in the WebXR explainer not possible. When creating a context without the XR compatible boolean set, it should still be usable in an inline session.