0.0.4 • Published 5 years ago

@goodgamestudios/cxf-fullscreen v0.0.4

Weekly downloads
651
License
MIT
Repository
-
Last release
5 years ago

cxf-fullscreen

Fullscreen support for CXF

Motivation

  • Games are loaded into an HTML iframe.
  • CXF extensions are loaded into iframes as well.

This creates an HTML document structure like this:

top(window)
|
+--- iframe #game
|
+--- iframe #cxf_1
:
:

If the #game now switches to fullscreen mode, it does so by calling requestFullscreen(document.body). The browser will then go in fullscreen mode, showing only #game, while hiding all upwards and sibling elements.

Next, a player wants to open a CXF extension, eg by clicking a button. #cxf_1 will remain invisible because the #game is fullscreen, hiding all parent and sibling elements.

Solution

Instead of using #game as the fullscreen element, we use top(window). The difficulty with this is that #game doesn't necessarily have access to top. To make this easier for #game, we install a few helper functions in the CXF global context which the game can then call to toggle fullscreen mode:

  • window.CXF.toggleFullscreen()
  • window.CXF.requestFullscreen()
  • window.CXF.exitFullscreen()
  • window.CXF.fullscreen

These functions work across all browsers and resemble the standard Fullscreen API (with the exception of toggleFullscreen(), which is not part of that standard).

Building & Releasing

Test

  • We lint all code with xo as part of testing.
  • We want 100% code coverage. This is ensured by nyc.
$ npm test

Release

Release runs test and build, then bumps the version and commits and tags this version using standard-version.

$ npm run release
$ npm publish

Build

You likely don’t need to ever run this manually. Use Release instead

The build step bundles the package into dist/index.js using parcel. Tests are run before building to ensure we’re building a working version.

$ npm run build
0.0.7

5 years ago

0.0.7-qa.8

5 years ago

0.0.7-qa.7

5 years ago

0.0.7-qa.6

5 years ago

0.0.7-qa.5

5 years ago

0.0.7-qa.4

5 years ago

0.0.7-qa.3

6 years ago

0.0.7-qa.2

6 years ago

0.0.7-qa.1

6 years ago

0.0.7-qa.0

6 years ago

0.0.6

6 years ago

0.0.4-qa.82

6 years ago

0.0.4-qa.81

6 years ago

0.0.4-qa.80

6 years ago

0.0.4-qa.79

6 years ago

0.0.4-qa.77

6 years ago

0.0.4-qa.78

6 years ago

0.0.4-qa.76

6 years ago

0.0.4-qa.75

6 years ago

0.0.4-qa.74

6 years ago

0.0.4-qa.67

6 years ago

0.0.4-qa.66

6 years ago

0.0.4-qa.65

6 years ago

0.0.4-qa.64

6 years ago

0.0.4-qa.62

6 years ago

0.0.4-qa.61

6 years ago

0.0.4-qa.60

6 years ago

0.0.4-qa.59

6 years ago

0.0.4-qa.58

6 years ago

0.0.4-qa.57

6 years ago

0.0.4-qa.56

6 years ago

0.0.4-qa.55

6 years ago

0.0.4-qa.54

6 years ago

0.0.4-qa.53

6 years ago

0.0.4-qa.52

6 years ago

0.0.4-qa.51

6 years ago

0.0.4-qa.50

6 years ago

0.0.4-qa.49

6 years ago

0.0.4-qa.48

6 years ago

0.0.4-qa.47

6 years ago

0.0.4-qa.46

6 years ago

0.0.4-qa.45

6 years ago

0.0.4-qa.44

6 years ago

0.0.4-qa.43

6 years ago

0.0.4-qa.42

6 years ago

0.0.4-qa.41

6 years ago

0.0.4-qa.40

6 years ago

0.0.4-qa.39

6 years ago

0.0.4-qa.38

6 years ago

0.0.4-qa.37

6 years ago

0.0.4-qa.36

6 years ago

0.0.4-qa.35

6 years ago

0.0.4-qa.34

6 years ago

0.0.4-qa.33

6 years ago

0.0.4-qa.32

6 years ago

0.0.4-qa.31

6 years ago

0.0.4-qa.30

6 years ago

0.0.4-qa.29

6 years ago

0.0.4-qa.28

6 years ago

0.0.4-qa.27

6 years ago

0.0.4-qa.26

6 years ago

0.0.4-qa.25

6 years ago

0.0.4-qa.24

6 years ago

0.0.4-qa.23

6 years ago

0.0.4-qa.22

6 years ago

0.0.4-qa.21

6 years ago

0.0.4-qa.19

6 years ago

0.0.4-qa.18

6 years ago

0.0.4-qa.17

6 years ago

0.0.4-qa.16

6 years ago

0.0.4-qa.15

6 years ago

0.0.4-qa.14

6 years ago

0.0.5

6 years ago

0.0.4

6 years ago

0.0.4-qa.12

6 years ago

0.0.4-qa.11

6 years ago

0.0.4-qa.10

6 years ago

0.0.4-qa.9

6 years ago

0.0.4-qa.8

6 years ago

0.0.4-qa.7

6 years ago

0.0.4-qa.6

6 years ago

0.0.4-qa.5

6 years ago

0.0.4-qa.4

6 years ago

0.0.4-qa.3

6 years ago

0.0.4-qa.2

6 years ago

0.0.4-qa.1

6 years ago

0.0.4-qa.0

6 years ago

0.0.3

6 years ago

0.0.2-qa.4

6 years ago

0.0.2

6 years ago

0.0.2-qa.3

6 years ago

0.0.2-qa.2

6 years ago

0.0.2-qa.1

6 years ago

0.0.2-qa.0

6 years ago

0.0.2-0

6 years ago