balena-io-experimental / browser

A drop-in web browser block
98 stars 75 forks source link

Browser doesn't occupy entire X11 Desktop #123

Closed drewcovi closed 2 years ago

drewcovi commented 2 years ago

Following along here, it seems that the latest WaveShare (meant to default to a vertical layout) is properly detected at 1080,1920 by the service.

However the initial chromium instance only occupies half the screen. New chromium windows (loaded via command line) have no trouble filling the full desktop width despite using the same window-size variable as the initial browser instance.

Any idea on why the discrepancy? Is there a configurable delay to properly detect desktop size?

https://www.waveshare.com/wiki/5.5inch_HDMI_AMOLED

drewcovi commented 2 years ago

 kiosk  umount: /dev: target is busy.
 kiosk  mount: /sys/kernel/debug: nodev already mounted on /sys/kernel/debug.
 kiosk  Running balena base image entrypoint...
 kiosk  setting xserver-xorg-legacy/xwrapper/allowed_users from configuration file
 kiosk  balenaBlocks browser version: 2.3.1
 kiosk  Setting CPU Scaling Governor to 'performance'
 kiosk  Enabling cursor
 kiosk  Checking GPU memory
 kiosk  xauth:  file /home/chromium/.Xauthority does not exist
 kiosk  
 kiosk  
 kiosk  X.Org X Server 1.20.11
 kiosk  X Protocol Version 11, Revision 0
 kiosk  Build Operating System: linux Raspbian
 kiosk  Current Operating System: Linux cddf0f41983d 5.10.31-v8 #1 SMP PREEMPT Fri Apr 23 15:16:49 UTC 2021 aarch64
 kiosk  Kernel command line: coherent_pool=1M 8250.nr_uarts=0 snd_bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1 video=HDMI-A-1:1080x1920M@60 smsc95xx.macaddr=DC:A6:32:D5:D0:A5 vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000  dwc_otg.lpm_enable=0 rootwait  vt.global_cursor_default=0 console=null cgroup_enable=memory root=UUID=ba1eadef-a03d-4510-9fbe-a97a0a6ed960 rootwait
 kiosk  Build Date: 04 January 2022  10:24:42AM
 kiosk  xorg-server 2:1.20.11-1+rpt1+deb11u1 (https://www.debian.org/support) 
 kiosk  Current version of pixman: 0.40.0
 kiosk          Before reporting problems, check http://wiki.x.org
 kiosk          to make sure that you have the latest version.
 kiosk  Markers: (--) probed, (**) from config file, (==) default setting,
 kiosk          (++) from command line, (!!) notice, (II) informational,
 kiosk          (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
 kiosk  (==) Log file: "/var/log/Xorg.0.log", Time: Sun Apr 17 19:59:53 2022
 kiosk  (==) Using system config directory "/usr/share/X11/xorg.conf.d"
 kiosk  error: XDG_RUNTIME_DIR not set in the environment.
 kiosk  (II) modeset(0): Initializing kms color map for depth 24, 8 bpc.
 kiosk  error: XDG_RUNTIME_DIR not set in the environment.
 kiosk  --- List Input Devices ---
 kiosk  â¡ Virtual core pointer                         id=2    [master pointer  (3)]
 kiosk  â   â³ Virtual core XTEST pointer               id=4    [slave  pointer  (2)]
 kiosk  â   â³ WaveShare WaveShare                      id=6    [slave  pointer  (2)]
 kiosk  ⣠Virtual core keyboard                        id=3    [master keyboard (2)]
 kiosk      â³ Virtual core XTEST keyboard              id=5    [slave  keyboard (3)]
 kiosk  ----- End of List --------
 kiosk  Detecting window size from framebuffer
 kiosk  Window size detected as 1080,1920
 kiosk  Display rotated to portait. Reversing screen coordinates
 kiosk  Reversed window size: 1920,1080
 kiosk  Rotate Touch Inputs
 kiosk  Rotating Input (WaveShare WaveShare): right
 kiosk  Installed browser version: Chromium 90.0.4430.212 built on Debian 11.0, running on Debian 11.1
 kiosk  Browser API running on port: 5011
 kiosk  Using LAUNCH_URL: http://webserver
 kiosk  Enabling KIOSK mode
 kiosk  Starting Chromium with flags: --disable-extension,,--disable-infobars,--disable-dev-shm-usage,--autoplay-policy=no-user-gesture-required,--noerrdialogs,--disable-session-crashed-bubble,,--enable-gpu-rasterization,,--ignore-gpu-blacklist
 kiosk  Displaying URL: --app= http://webserver
 kiosk  Chromium remote debugging tools running on port: 35173```
drewcovi commented 2 years ago

quickly ran xwininfo to get this info:

xwininfo: Window id: 0x400005 "SjuKiosk"

  Absolute upper-left X:  10
  Absolute upper-left Y:  10
  Relative upper-left X:  10
  Relative upper-left Y:  10
  Width: 945
  Height: 1060
  Depth: 24
  Visual: 0x21
  Visual Class: TrueColor
  Border width: 0
  Class: InputOutput
  Colormap: 0x20 (installed)
  Bit Gravity State: NorthWestGravity
  Window Gravity State: NorthWestGravity
  Backing Store State: NotUseful
  Save Under State: no
  Map State: IsViewable
  Override Redirect State: no
  Corners:  +10+10  -965+10  -965-10  +10-10
  -geometry 945x1060+10+10
drewcovi commented 2 years ago

disregard. i just realized that the logic in server.js excludes any flags for browser dimensions if custom flags are set. so I just had to add window-size to my custom flags.