• Stars
    star
    142
  • Rank 258,495 (Top 6 %)
  • Language
    JavaScript
  • Created about 7 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Chrome extension to keep fullscreen windows contained

Windowed Logo Windowed

Install in Chrome Webstore
Install in Firefox
Install in Edge

A small extension for chrome and firefox I made because I don't really like normal fullscreen. It injects itself into every page, and replaces HTMLElement.prototype.requestFullscreen (or the browser specific version) with a popup to get into Windowed, In-window or picture in picture mode. Important for me is that the video/page does not reload when switching to Windowed.

Chromestore screenshot

Modes

Even though I want to create a very minimalist extension, I still provide some choice every time you want to go into fullscreen.

  • Windowed w
    Obviously my favourite, hence the namesake of this extension. Puts video in a seperate window with title bar. I can't get rid of the title bar because of restrictions in Chrome extensions. Other extensions do put videos in title-bar-less windows, but that requires a reload of the page, and I really really really don't like that. Also it does not float. Floating also, is exclusive to reload
  • In-Window i
    Does the same as Windowed, but doesn't pop the window out. So it will fill the full window that as it is right now.
  • Fullscreen f
    Get out, ya joker
  • Picture in Picture p
    This only shows up if a video element is found. Will put the video into native Picture-in-Picture mode, with only browser controls. This is amazing in most cases, butttttt here is one big disadvantage, the only reason I'm still working on this extension even, is that it only works on videos, and only without any website specific controls. For youtube, that doesn't really stack up against the floating-on-top feature for me. Still, there are many websites that do put something else (not a video) in fullscreen, which picture-in-picture does not support.
    Either picture-in-picture needs to work for arbitrary elements, which would be really awesome, or chrome extensions should be able to make floating-on-top windows (they used to). Until then, we are stuck with two modes for just slightly different situations

Why so much code

There are actually a lot of things that the websites need when I'm fullscreen-ing them.

  1. There is mostly a lot of code for the popup that allows you choose between Windowed and fullscreen.
  2. Some of them remove the component we want to fullscreen as soon as we resize, in which case I copy the element and try to show it anyway.
  3. When clicking inside a frame, it should fullscreen that frame inside the parent window.
  4. Need to be able to disable domain by clicking the Windowed toolbar button, and I want the icon to update accordingly on every tab.
  5. Even just selecting the right window to restore the tab to after going out of windowed mode again takes more lines then you'd expect.
  6. Firefox has some restrictions on requesting fullscreen from async functions, so had to work around that by using sync functions first where necessary.

Hey I got a request or even got something that might be useful

Nice. Please open an issue or a PR. That'd be really cool. 😎


Thanks for reading,
Michiel Dral

More Repositories

1

idx.macro

a 'babel-macros' version of 'babel-plugin-idx'
JavaScript
91
star
2

Notebook-Experiments

Playing around with notebook software
JavaScript
22
star
3

cycle-firebase

Cycle driver for my favorite realtime database :)
JavaScript
22
star
4

Endothermic

Link up react components with firebasem the es6 way!
JavaScript
11
star
5

tree-sitter-graphql

Graphql grammar for tree-sitter
C
9
star
6

Polar-editor-react

Created with CodeSandbox
JavaScript
4
star
7

Because-Fons-Wanted-Me-To-Upload-Me-Stuff-So-Here-You-Go.pluto.jl

Julia
4
star
8

report-to-pdf

Small server to render stateless html to pdf files
JavaScript
4
star
9

Exothermic

Firebase.js mock with javascript object input
JavaScript
3
star
10

Colonist

A minecraft server in nodejs???
JavaScript
3
star
11

react-native-transition

Transition between views that have things in common more easily
JavaScript
2
star
12

react-quick

Small command line util based on react-heatpack
JavaScript
2
star
13

react-native-transition-examples

JavaScript
2
star
14

Bukkit-Unchained

My Descent into the Alt-Java
JavaScript
2
star
15

Tonlist

Create an anarchistic spotify radio, <3
JavaScript
2
star
16

Pluto-heroku

1
star
17

Alberto-Fredo

JavaScript
1
star
18

The-Guide-Intro-Programming-You-ve-Always-Wanted-But-Never-Had-Ik-ben-Rachid-Dinosaurier

The-Guide-Intro-Programming-You've-Always-Wanted-But-Never-Had-Ik-ben-Rachid-Dinosaurier
JavaScript
1
star
19

ezgm

Garry's mod with CS:Source in a docker container for easy starting
Shell
1
star
20

zig-on-npm

JavaScript
1
star
21

jupyter-test

Jupyter Notebook
1
star
22

Wikiracing

JavaScript
1
star
23

OODB

An object orient database class, now primairy for mysql
PHP
1
star
24

Bigler

An open-source minecraft server experiment
Shell
1
star
25

sequelize-mock-but-with-data

I found a package `sequelize-mock` but it doesn't support me to actually simulate sequelize so here you go
JavaScript
1
star
26

Mineflare

High performance minecraft proxy
CoffeeScript
1
star
27

cycle-time-driver

Create intervals and timeouts the cyclejs way!
JavaScript
1
star
28

ezgo

Easyyyy Goooooo
JavaScript
1
star
29

pluto-apps-ui

JavaScript
1
star
30

jjim

Slim parser and renderer in javascript and ruby
JavaScript
1
star
31

SelectSome

JavaScript
1
star
32

is-this-game-for-mac-discord

Is a game mentioned in a discord channel available for mac?
JavaScript
1
star
33

Observatory

A suite of tools and libraries for emersive testing
JavaScript
1
star