Summary
Every time the user pops the YouTube Music player out into the mini-player window, it opens at the browser's default position and size. The user has to manually reposition and resize it every session. For users with specific multi-monitor setups or preferred screen corners, this is a repetitive inconvenience that degrades the extension's polish and usability.
Problem
- The mini-player window position is not saved between uses.
- On multi-monitor setups, the window always opens on the primary monitor regardless of user preference.
- The window size is not persisted — users who prefer a taller or wider player must resize it every time.
- The
browser.windows.create() call does not pass left, top, width, or height parameters derived from user preference.
Impact
- Regular users must reposition the mini-player window every single session.
- Power users on multi-monitor setups are most affected, as the window always opens in an inconvenient location.
- This is a commonly expected feature of any persistent mini-player and its absence makes the extension feel unfinished.
Proposed Solution
-
Save position/size on window move and resize: Listen to chrome.windows.onBoundsChanged in the background script to detect when the mini-player window is moved or resized, then debounce-save the bounds to chrome.storage.local.
-
Restore position/size on pop-out: When creating the mini-player window, read the saved bounds from chrome.storage.local and pass them to chrome.windows.create():
const saved = await chrome.storage.local.get('miniPlayerBounds');
const bounds = saved.miniPlayerBounds || { width: 400, height: 230, left: 100, top: 100 };
chrome.windows.create({
url: tabUrl,
type: 'popup',
width: bounds.width,
height: bounds.height,
left: bounds.left,
top: bounds.top,
});
- Fallback: If no saved position exists (first time use), open at a sensible default position in the top-right corner of the screen using
chrome.system.display.getInfo().
This requires no new permissions beyond storage (already in use) and is fully compatible with both Manifest V2 and V3.
I am happy to implement and test this across Chrome, Firefox, and Edge. Could you please assign this issue to me?
Labels: enhancement, feature request, help wanted, GSSoC 2026
Summary
Every time the user pops the YouTube Music player out into the mini-player window, it opens at the browser's default position and size. The user has to manually reposition and resize it every session. For users with specific multi-monitor setups or preferred screen corners, this is a repetitive inconvenience that degrades the extension's polish and usability.
Problem
browser.windows.create()call does not passleft,top,width, orheightparameters derived from user preference.Impact
Proposed Solution
Save position/size on window move and resize: Listen to
chrome.windows.onBoundsChangedin the background script to detect when the mini-player window is moved or resized, then debounce-save the bounds tochrome.storage.local.Restore position/size on pop-out: When creating the mini-player window, read the saved bounds from
chrome.storage.localand pass them tochrome.windows.create():chrome.system.display.getInfo().This requires no new permissions beyond
storage(already in use) and is fully compatible with both Manifest V2 and V3.I am happy to implement and test this across Chrome, Firefox, and Edge. Could you please assign this issue to me?
Labels:
enhancement,feature request,help wanted,GSSoC 2026