Join the AMA (Ask Me Anything) with the Firefox leadership team to celebrate Firefox 20th anniversary and discuss Firefox’s future on Mozilla Connect. Mark your calendar on Thursday, November 14, 18:00 - 20:00 UTC!

Search Support

Avoid support scams. We will never ask you to call or text a phone number or share personal information. Please report suspicious activity using the “Report Abuse” option.

Learn More

How can make this icon disappear/ move it to non -central after the PiP mode, so we can view the CC better ?

more options

How can make this icon disappear/ move it to non -central after the PiP mode, so we can view the CC better ?https://user-media-prod-cdn.itsre-sumo.mozilla.net/uploads/images/2021-10-01-22-09-57-4aff08.png

For example, https://user-media-prod-cdn.itsre-sumo.mozilla.net/uploads/images/2021-10-01-22-10-33-dbfb46.png


I am editing the videocontrols.dtd file to get grid the text, but can't locate the icon.

Thank you.

How can make this icon disappear/ move it to non -central after the PiP mode, so we can view the CC better ?https://user-media-prod-cdn.itsre-sumo.mozilla.net/uploads/images/2021-10-01-22-09-57-4aff08.png For example, https://user-media-prod-cdn.itsre-sumo.mozilla.net/uploads/images/2021-10-01-22-10-33-dbfb46.png I am editing the videocontrols.dtd file to get grid the text, but can't locate the icon. Thank you.
Attached screenshots

Chosen solution

Ok, the code I posted above is about moving the icon that opens a PiP player window.

You need to hide this div container:

Note that this content is in shadowDOM.

<div class="pictureInPictureOverlay stackItem" status="pictureInPicture">
  <div id="statusIcon" class="statusIcon" type="pictureInPicture"></div>
  <bdi class="statusLabel" id="pictureInPicture">&status.pictureInPicture;</bdi>
</div>

You can try this code in userContent.css

#statusIcon[type="pictureInPicture"],
#statusIcon[type="pictureInPicture"] + #pictureInPicture { visibility:hidden !important; }

Read this answer in context 👍 0

All Replies (8)

more options

You can override the current CSS code for this button via code in userContent.css (not userChrome.css).

You can right-click the PiP button to open this element or other (PiP) elements in the Inspector.

Add CSS code to the userContent.css file.


/* Picture in Picture | #pictureInPictureToggle */
.pip-wrapper { top: 5% !important; }

It is not that difficult to create userContent.css if you have never used it.

The first step is to open the "Help -> Troubleshooting Information" page and find the button to access the profile folder.

You can find the button to go to the profile folder under the "Application Basics" section as "Profile Folder -> Open Folder". If you click this button then you open the profile folder in the Windows File Explorer. You need to create a folder with the name chrome in this folder (name is all lowercase). In the chrome folder you need to create a plain text file with the name userContent.css (name is case sensitive). In this userContent.css text file you paste the text posted.

In Windows saving the file is usually the only time things get more complicated because Windows can silently add a .txt file extension and you end up with a file named userContent.css.txt. To avoid this you need to make sure to select "All files" in the dialog to save the file in the text editor using "Save File as".

You need to close (Quit/Exit) and restart Firefox when you create or modify the userContent.css file.

See also:

In Firefox 69 and later you need to set this pref to true on the about:config page to enable userChrome.css and userContent.css in the chrome folder.

  • toolkit.legacyUserProfileCustomizations.stylesheets = true
more options

Hello cor-el, Thank you for the reply. After trying your method. unfortunately, it didn't work to solve the issue.

Just to be clear, the icon need to be moved is this one since there are more than one such icon. In the original post, The text below it has been moved.

Follow your instruction, file created with

  /!* Picture in Picture | #pictureInPictureToggle */
  .pip-wrapper { top: 5% !important; }

in /Users/life/Library/Application Support/Firefox/Profiles/8a767azs.default-release/ chrome

Modified by mobilelifeful

more options

Chosen Solution

Ok, the code I posted above is about moving the icon that opens a PiP player window.

You need to hide this div container:

Note that this content is in shadowDOM.

<div class="pictureInPictureOverlay stackItem" status="pictureInPicture">
  <div id="statusIcon" class="statusIcon" type="pictureInPicture"></div>
  <bdi class="statusLabel" id="pictureInPicture">&status.pictureInPicture;</bdi>
</div>

You can try this code in userContent.css

#statusIcon[type="pictureInPicture"],
#statusIcon[type="pictureInPicture"] + #pictureInPicture { visibility:hidden !important; }

more options

Unfortunately, it doesn't work.

modify the userContent.css file with

  #statusIcon[type="pictureInPicture"],
  #statusIcon[type="pictureInPicture"] + #pictureInPicture { visibility:hidde    n !important; }


Close Firefox ,then launched it again. Play video PiP, icon still visible.

Modified by mobilelifeful

more options

The code works for me, so make sure you have set toolkit.legacyUserProfileCustomizations.stylesheets = true on the about:config page.

more options

mobilelifeful said

Unfortunately, it doesn't work. modify the userContent.css file with #statusIcon[type="pictureInPicture"], #statusIcon[type="pictureInPicture"] + #pictureInPicture { visibility:hidde n !important; } Close Firefox ,then launched it again. Play video PiP, icon still visible.

Probably in your actual file, there are not a bunch of spaces inserted into the word hidden, but in case there are, you need to fix that.

more options

I missed the four spaces or newline in 'hidden' in the code you posted, so if you have them then remove them like posted above.

  • { visibility:hidde    n !important; }
    => { visibility:hidden !important; }
more options

I like the effect of this, it moves the icon to the top and shrinks and fades it so hopefully it won't interfere with your CC but it's there as a subtle reminder of what's going on:

div.pictureInPictureOverlay[status="pictureInPicture"] {
  justify-content: flex-start !important;
}
div.pictureInPictureOverlay[status="pictureInPicture"] .statusIcon {
  min-height: 0 !important;
  min-width: 0 !important;
  opacity: 0.5 !important;
}
div.pictureInPictureOverlay[status="pictureInPicture"] .statusLabel {
  display: none !important;
}


I'm a little surprised it goes into userContent.css instead of userChrome.css, considering that it modifies the innards of the built-in video player, but "whatever works."