Skip to content

[BUG] Preferences not being saved from session to session #10

Open
@Mantene

Description

@Mantene

Is there an existing issue for this?

  • I have searched the existing issues

Current Behavior

When I open a session of Chromium or Chrome, I have to set the video options to display the way I want the browser to display (turn off HiDPI and set 1920x1080 preset usually). However, the next time I open a session everything is back to where it was and I have to set my preferences again.

Expected Behavior

Ideally, it would store the info in a cookie so it knew from session to session what my Selkies preferences were.

Steps To Reproduce

  1. Using Chrome or Safari, Open Chromium WebView (I am running all my containers on Unraid 7.1.4).
  2. Notice that all of the preferences (or most of them) are back at what I assume are the Defaults. Most notably, The Gamepad controls, audio, and video preferences all seem to revert every session.
  3. Set preferences the way you like.
  4. Close web view.
  5. Open web view again and see that all the preferences have reverted again.

Environment

- OS: Unraid 7.1.4
- How docker service was installed: Through the Community Apps plugin, like most things on Unraid.

Docker creation

docker run
  -d
  --name='chromium'
  --entrypoint='/opt/unraid/tailscale'
  --net='wg2'
  --pids-limit 2048
  -e TZ="America/New_York"
  -e HOST_OS="Unraid"
  -e HOST_HOSTNAME="Eeyore"
  -e HOST_CONTAINERNAME="chromium"
  -e 'CHROME_CLI'='https://www.linuxserver.io/'
  -e 'PUID'='99'
  -e 'PGID'='100'
  -e 'UMASK'='022'
  -e TAILSCALE_HOSTNAME='Chromium'
  -e TAILSCALE_ALLOW_LAN_ACCESS='false'
  -e TAILSCALE_USE_SSH='false'
  -e TAILSCALE_USERSPACE_NETWORKING='false'
  -e TAILSCALE_SERVE_PORT='3000'
  -e ORG_ENTRYPOINT="/init"
  -l net.unraid.docker.managed=dockerman
  -l net.unraid.docker.webui='http://[IP]:[PORT:3000]'
  -l net.unraid.docker.icon='https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/chromium-logo.png'
  -l net.unraid.docker.tailscale.webui='https://[hostname][magicdns]'
  -l net.unraid.docker.tailscale.hostname='Chromium'
  -p '5000:3000/tcp'
  -p '5001:3001/tcp'
  -v '/mnt/cache/appdata/chromium':'/config':'rw'
  -v '/usr/local/share/docker/tailscale_container_hook':'/opt/unraid/tailscale'
  --cap-add=NET_ADMIN
  --device='/dev/net/tun'
  --shm-size=1gb
  --device /dev/dri:/dev/dri 'ghcr.io/linuxserver/chromium:latest'
4b797ea336f2a356514e7de80bb2aceac4e46efa29fd75e7428e1b18c0af1ae2

Container logs

=======================
Executing Unraid Docker Hook for Tailscale
Detecting Package Manager...
Detected Advanced Package Tool!
Installing packages...
Please wait...
Packages installed!
Tailscale not found, downloading...
Please wait...

/tmp/tailscale/tail   0%[                    ]       0  --.-KB/s               
/tmp/tailscale/tail   0%[                    ]  75.79K   371KB/s               
/tmp/tailscale/tail   0%[                    ] 307.00K   751KB/s               
/tmp/tailscale/tail   3%[                    ]   1.12M  1.85MB/s               
/tmp/tailscale/tail  12%[=>                  ]   4.01M  4.96MB/s               
/tmp/tailscale/tail  29%[====>               ]   9.11M  9.02MB/s               
/tmp/tailscale/tail  65%[============>       ]  20.30M  16.8MB/s               
/tmp/tailscale/tail  92%[=================>  ]  28.71M  19.4MB/s               
/tmp/tailscale/tail 100%[===================>]  31.10M  19.0MB/s    in 1.6s    
Download from Tailscale version 1.84.0 successful!
Installation Done!
Settings Tailscale state dir to: /config/.tailscale_state
Setting host name to "Chrome"
Starting tailscaled with log file location: /var/log/tailscaled
Starting tailscale
Enabling Serve! See https://tailscale.com/kb/1312/serve
Available within your tailnet:
https://chrome.minotaur-halfbeak.ts.net/
|-- proxy http://localhost:3000
Serve started and running in the background.
Starting container...
=======================
[custom-init] No custom services found, skipping...
[migrations] started
[migrations] no migrations found
───────────────────────────────────────
      ██╗     ███████╗██╗ ██████╗
      ██║     ██╔════╝██║██╔═══██╗
      ██║     ███████╗██║██║   ██║
      ██║     ╚════██║██║██║   ██║
      ███████╗███████║██║╚██████╔╝
      ╚══════╝╚══════╝╚═╝ ╚═════╝
   Brought to you by linuxserver.io
───────────────────────────────────────
To support LSIO projects visit:
https://www.linuxserver.io/donate/
───────────────────────────────────────
GID/UID
───────────────────────────────────────
User UID:    99
User GID:    100
───────────────────────────────────────
**** creating video group video5jbe with id 18 ****
**** adding /dev/dri/renderD128 to video group video5jbe with id 18 ****
**** permissions for /dev/dri/card0 are good ****
[custom-init] No custom files found, skipping...
[ls.io-init] done.
Can't open display :1
Can't open display :1
Can't open display :1
_XSERVTransmkdir: ERROR: euid != 0,directory /tmp/.X11-unix will not be created.
screen 0 shmid 0
17
18
INFO:data_websocket:pixelflux library found. Striped encoding modes available.
INFO:root:Expected C js_config_t size (from ctypes): 1354 bytes
INFO:main:Upload directory ensured: /config/Desktop
INFO:main:Starting Selkies GStreamer (WebSocket Mode) with args: Namespace(encoder='x264enc', framerate=60, video_bitrate=16000, h264_crf=25, h264_fullcolor=False, watermark_path='', watermark_location=-1, debug=False)
INFO:main:Initial Encoder: x264enc, Framerate: 60, Bitrate: 16000kbps
(gst-plugin-scanner:1120): GLib-GObject-WARNING **: 20:21:05.896: cannot register existing type 'GstRtpSrc'
(gst-plugin-scanner:1120): GLib-GObject-CRITICAL **: 20:21:05.896: g_type_add_interface_static: assertion 'G_TYPE_IS_INSTANTIATABLE (instance_type)' failed
(gst-plugin-scanner:1120): GLib-CRITICAL **: 20:21:05.896: g_once_init_leave: assertion 'result != 0' failed
(gst-plugin-scanner:1120): GStreamer-CRITICAL **: 20:21:05.896: gst_element_register: assertion 'g_type_is_a (type, GST_TYPE_ELEMENT)' failed
(gst-plugin-scanner:1120): GLib-GObject-WARNING **: 20:21:05.897: cannot register existing type 'GstRtpSink'
(gst-plugin-scanner:1120): GLib-GObject-CRITICAL **: 20:21:05.897: g_type_add_interface_static: assertion 'G_TYPE_IS_INSTANTIATABLE (instance_type)' failed
(gst-plugin-scanner:1120): GLib-CRITICAL **: 20:21:05.897: g_once_init_leave: assertion 'result != 0' failed
(gst-plugin-scanner:1120): GStreamer-CRITICAL **: 20:21:05.897: gst_element_register: assertion 'g_type_is_a (type, GST_TYPE_ELEMENT)' failed
INFO:main:GSTStreamingApp initialized: encoder=x264enc, display=1024x768
INFO:main:All main components initialized. Running server...
INFO:webrtc_input:Resetting keyboard modifiers.
INFO:webrtc_input:Initializing 4 persistent gamepad instances...
INFO:root:Packed js_config payload for 'Microsoft X-Box 360 pad' (js0): len=1360 bytes. Name='Microsoft X-Box 360 pad', Vendor=0x045e, Product=0x028e, Version=0x0100, Reported Buttons=13 (Array capacity: 512), Reported Axes=8 (Array capacity: 64)
INFO:selkies_gamepad:Gamepad configured. JS socket: /tmp/selkies_js0.sock, EVDEV socket: /tmp/selkies_event1000.sock. Using fixed config: Microsoft X-Box 360 pad
INFO:webrtc_input:Initialized and started persistent gamepad instance for index 0 (Name: 'Microsoft X-Box 360 pad', JS: /tmp/selkies_js0.sock, EVDEV: /tmp/selkies_event1000.sock).
INFO:root:Packed js_config payload for 'Microsoft X-Box 360 pad' (js1): len=1360 bytes. Name='Microsoft X-Box 360 pad', Vendor=0x045e, Product=0x028e, Version=0x0100, Reported Buttons=13 (Array capacity: 512), Reported Axes=8 (Array capacity: 64)
INFO:selkies_gamepad:Gamepad configured. JS socket: /tmp/selkies_js1.sock, EVDEV socket: /tmp/selkies_event1001.sock. Using fixed config: Microsoft X-Box 360 pad
INFO:webrtc_input:Initialized and started persistent gamepad instance for index 1 (Name: 'Microsoft X-Box 360 pad', JS: /tmp/selkies_js1.sock, EVDEV: /tmp/selkies_event1001.sock).
INFO:root:Packed js_config payload for 'Microsoft X-Box 360 pad' (js2): len=1360 bytes. Name='Microsoft X-Box 360 pad', Vendor=0x045e, Product=0x028e, Version=0x0100, Reported Buttons=13 (Array capacity: 512), Reported Axes=8 (Array capacity: 64)
INFO:selkies_gamepad:Gamepad configured. JS socket: /tmp/selkies_js2.sock, EVDEV socket: /tmp/selkies_event1002.sock. Using fixed config: Microsoft X-Box 360 pad
INFO:webrtc_input:Initialized and started persistent gamepad instance for index 2 (Name: 'Microsoft X-Box 360 pad', JS: /tmp/selkies_js2.sock, EVDEV: /tmp/selkies_event1002.sock).
INFO:root:Packed js_config payload for 'Microsoft X-Box 360 pad' (js3): len=1360 bytes. Name='Microsoft X-Box 360 pad', Vendor=0x045e, Product=0x028e, Version=0x0100, Reported Buttons=13 (Array capacity: 512), Reported Axes=8 (Array capacity: 64)
INFO:selkies_gamepad:Gamepad configured. JS socket: /tmp/selkies_js3.sock, EVDEV socket: /tmp/selkies_event1003.sock. Using fixed config: Microsoft X-Box 360 pad
INFO:webrtc_input:Initialized and started persistent gamepad instance for index 3 (Name: 'Microsoft X-Box 360 pad', JS: /tmp/selkies_js3.sock, EVDEV: /tmp/selkies_event1003.sock).
INFO:webrtc_input:Starting clipboard monitor
INFO:webrtc_input:Found XFIXES version 4.0
INFO:webrtc_input:starting cursor monitor
INFO:webrtc_input:watching for cursor changes
WARNING:data_websocket:Cannot broadcast cursor data: prerequisites not met.
WARNING:data_websocket:Cannot broadcast cursor data: prerequisites not met.
WARNING:data_websocket:Cannot broadcast cursor data: prerequisites not met.
INFO:gst_app:GStreamer bus handling loop finished.
INFO:selkies_gamepad:Gamepad /tmp/selkies_js0.sock: Event processor started.
INFO:selkies_gamepad:JS interposer server listening on /tmp/selkies_js0.sock
INFO:selkies_gamepad:Gamepad /tmp/selkies_js1.sock: Event processor started.
INFO:selkies_gamepad:JS interposer server listening on /tmp/selkies_js1.sock
INFO:selkies_gamepad:Gamepad /tmp/selkies_js2.sock: Event processor started.
INFO:selkies_gamepad:JS interposer server listening on /tmp/selkies_js2.sock
INFO:selkies_gamepad:Gamepad /tmp/selkies_js3.sock: Event processor started.
INFO:selkies_gamepad:JS interposer server listening on /tmp/selkies_js3.sock
INFO:selkies_gamepad:EVDEV interposer server listening on /tmp/selkies_event1000.sock
INFO:selkies_gamepad:EVDEV interposer server listening on /tmp/selkies_event1001.sock
INFO:selkies_gamepad:EVDEV interposer server listening on /tmp/selkies_event1002.sock
INFO:selkies_gamepad:EVDEV interposer server listening on /tmp/selkies_event1003.sock
INFO:data_websocket:Data WebSocket Server listening on port 8082
INFO:data_websocket:Data WebSocket connected from ('127.0.0.1', 33152)
INFO:data_websocket:Broadcasting stream resolution: {"type": "stream_resolution", "width": 1024, "height": 768}
INFO:data_websocket:Attempting to establish PulseAudio connection...
INFO:data_websocket:PulseAudio connection established.
INFO:data_websocket:Applying client settings (initial=True): {'videoBitRate': 16000000, 'videoFramerate': 60, 'videoCRF': 25, 'encoder': 'x264enc', 'h264_fullcolor': False, 'resizeRemote': True, 'isManualResolutionMode': False, 'manualWidth': 1024, 'manualHeight': 768, 'audioBitRate': 128000, 'videoBufferSize': 0, 'initialClientWidth': 4112, 'initialClientHeight': 2222}
INFO:gst_app_resize:on_resize_handler attempting resize for: 4112x2222
INFO:gst_app_resize:App dimensions updated to 4112x2222 before xrandr call.
INFO:gst_app_resize:Mode 4112x2222 not found in xrandr list. Attempting to add for screen 'screen'.
INFO:gst_app_resize:Successfully ran: xrandr --newmode 4112x2222 786.25 4112 4456 4904 5696 2222 2225 2235 2301 -hsync +vsync
INFO:gst_app_resize:Successfully ran: xrandr --addmode screen 4112x2222
INFO:gst_app_resize:Applying xrandr mode '4112x2222' for screen 'screen'.
INFO:gst_app_resize:Successfully applied xrandr mode '4112x2222'.
INFO:gst_app_resize:resize_display('4112x2222') reported success.
INFO:data_websocket:Initial client settings processed and event set by _apply_client_settings.
INFO:data_websocket:Initial client settings message processed by ws_handler.
WARNING:data_websocket:Initial setup: Video pipeline for 'x264enc' was expected to be started by _apply_client_settings but is not. This might indicate an issue or a no-op change.
INFO:data_websocket:Initial setup: Audio pipeline not yet active, attempting start.
INFO:gst_app:Starting WebSocket audio pipeline...
INFO:gst_app:Building WebSocket audio pipeline...
INFO:gst_app:Audio pipeline state change to PLAYING is ASYNC.
INFO:gst_app:WebSocket audio pipeline started.
INFO:data_websocket:Broadcasting stream resolution: {"type": "stream_resolution", "width": 4112, "height": 2222}
WARNING:webrtc_input:No clipboard content to send
INFO:data_websocket:Received START_VIDEO for encoder: x264enc
INFO:data_websocket:Starting x264enc: 4112x2222 @ 60.0fps, CRF: 25, FullFrame: True
INFO:data_websocket:New frame backpressure task started (current encoder: 'x264enc').
INFO:data_websocket:x264enc capture started successfully.
INFO:data_websocket:Received START_AUDIO command from client for server-to-client audio.
INFO:data_websocket:START_AUDIO: Server-to-client audio pipeline already reported as active.
INFO:data_websocket:Frame-based backpressure logic task started.
INFO:data_websocket:Client settings received, proceeding with backpressure loop.
X Shared Memory Extension available.
XShm setup complete for 4112x2222.
CPU cores available: 16
Res: 4112x2222 Mode: H264 CS_IN:I420 LR FF Stripes: 1 CRF:25 EncFPS: 3.00 EncStripes/s: 3.00
INFO:data_websocket:Received STOP_VIDEO
INFO:data_websocket:Stopping X11 x264-striped capture...
Capture loop stopped. X resources released.
INFO:data_websocket:Frame-based backpressure logic task cancelled.
INFO:data_websocket:Frame-based backpressure logic task finished.
INFO:data_websocket:Backpressure task was stopped. Calling _reset_frame_ids_and_notify.
INFO:data_websocket:Resetting frame IDs.
INFO:data_websocket:Broadcasting PIPELINE_RESETTING to 1 client(s).

Metadata

Metadata

Assignees

Type

No type

Projects

Status

Issues

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions