own3mall / YouTubeNonStop-Legacy-XUL-Extension

YouTubeNonStop for Pale Moon and other XUL Browsers (Legacy)
3 stars 0 forks source link

YouTube video plays shortly after being paused. #2

Closed Ben-Fenner closed 1 year ago

Ben-Fenner commented 1 year ago

Okay, so this is a crazy one. I've noticed very rare cases where I will pause a video, and then shortly after pausing, the video will begin playing again. I'll pause the video again, and it'll start playing again, always within ~5 seconds of pausing.

I finally think I figured it out. I'm thinking it is this extension that is causing the problem, and I think I found what triggers it. There is an extremely rare thing YouTube will do where on the right side of a video (where the suggested related videos are) they will place a notice that says something like:

You've disabled watch history. You won't get good video recommendations. Enable watch history, or keep it disabled.

There buttons to enable watch history, keep it disabled, or to dismiss/hide the notice entirely.

For fucks sake YouTube. :angry:

So I finally noticed a video that I couldn't effectively pause, and saw this notice. I dismissed/hid the notice and suddenly the video could be paused properly. I know this is tough. Had I known I'd have taken a screen shot of the notice and looked at the HTML/CSS to see if it can be identified easily. Sorry for not having that info. If I see this again, I'll get more info for you.

Cheers!

own3mall commented 1 year ago

@Ben-Fenner were you logged in when this happened? I would recommend using this extension without being logged into Google / YouTube, if possible.

Yes, see if you can copy the HTML if it happens again.

Ben-Fenner commented 1 year ago

Thank you for the reply.

Yes, I was logged in when this happened. I am logged in 100% of the time. I have hundreds of channels I subscribe to, and rely on that list. =/

I'll see if I can ever get you a copy of the HTML. Obviously don't give this a second thought until that happens.

Ben-Fenner commented 1 year ago

Ha! I experienced this again today and have a screenshot and full HTML layout for you.

This was caused by a VERY slightly different dismissable pop-up than the one described in the original post, but it is basically the same thing and results in the same problem. I don't know if I'll ever come across the exact You've disabled watch history one again, but YouTube hit me with a similar one today.

It looks like this: image

The Recommendations not quite right? box is what we're talking about.

And here is the full HTML content that creates the dismissable notice: image

And I think this is the same thing but you know, actual text:

<div id="dismissible" class="style-scope ytd-feed-nudge-renderer">
  <div id="dismiss-button" class="style-scope ytd-feed-nudge-renderer">
    <ytd-button-renderer class="style-scope ytd-feed-nudge-renderer" button-renderer="" button-next="">
      <!--css-build:shady-->
      <yt-button-shape>
        <button class="yt-spec-button-shape-next yt-spec-button-shape-next--text yt-spec-button-shape-next--mono yt-spec-button-shape-next--size-m yt-spec-button-shape-next--icon-only-default " style="" aria-label="Close and leave history off">
          <div class="yt-spec-button-shape-next__icon" aria-hidden="true">
            <yt-icon style="width: 24px; height: 24px;">
              <!--css-build:shady-->
              <!--css-build:shady-->
              <yt-icon-shape class="style-scope yt-icon">
                <icon-shape class="yt-spec-icon-shape">
                  <div style="width: 100%; height: 100%; fill: currentcolor;">
                    <svg enable-background="new 0 0 24 24" height="24" viewBox="0 0 24 24" width="24" focusable="false" style="pointer-events: none; display: block; width: 100%; height: 100%;">
                      <path d="m12.71 12 8.15 8.15-.71.71L12 12.71l-8.15 8.15-.71-.71L11.29 12 3.15 3.85l.71-.71L12 11.29l8.15-8.15.71.71L12.71 12z"></path>
                    </svg>
                  </div>
                </icon-shape>
              </yt-icon-shape>
            </yt-icon>
          </div>
          <yt-touch-feedback-shape style="border-radius: inherit;">
          <div class="yt-spec-touch-feedback-shape yt-spec-touch-feedback-shape--touch-response" aria-hidden="true">
            <div class="yt-spec-touch-feedback-shape__stroke" style=""></div>
            <div class="yt-spec-touch-feedback-shape__fill" style=""></div>
          </div>
          </yt-touch-feedback-shape>
        </button>
      </yt-button-shape>
      <tp-yt-paper-tooltip fit-to-visible-bounds="" offset="8" disable-upgrade=""></tp-yt-paper-tooltip>
    </ytd-button-renderer>
  </div>
  <div id="content-wrapper" class="style-scope ytd-feed-nudge-renderer">
    <div id="header-container" class="style-scope ytd-feed-nudge-renderer">
      <div id="image-container" class="style-scope ytd-feed-nudge-renderer">
        <yt-img-shadow id="nudge-image" height="32" class="style-scope ytd-feed-nudge-renderer no-transition" style="background-color: transparent;" loaded=""><!--css-build:shady--><!--css-build:shady--><img id="img" draggable="false" class="style-scope yt-img-shadow" alt="" src="https://www.gstatic.com/youtube/img/promos/growth/assistive_feed_sparkle_icon_108x108.png" height="32"></yt-img-shadow>
      </div>
    </div>
    <div id="text-container" class="style-scope ytd-feed-nudge-renderer">
      <div id="title-container" class="style-scope ytd-feed-nudge-renderer">
        <yt-formatted-string id="title" class="style-scope ytd-feed-nudge-renderer">Recommendations not quite right?</yt-formatted-string>
      </div>
      <div id="subtitle-container" class="style-scope ytd-feed-nudge-renderer">
        <yt-formatted-string id="subtitle" class="style-scope ytd-feed-nudge-renderer">When you turn on watch history, you’ll get more personalized recommendations.</yt-formatted-string>
      </div>
    </div>
    <div id="contents" class="style-scope ytd-feed-nudge-renderer" hidden="">
    </div>
    <div id="button-container" class="style-scope ytd-feed-nudge-renderer">
      <div id="primary-button" class="style-scope ytd-feed-nudge-renderer">
        <ytd-button-renderer class="style-scope ytd-feed-nudge-renderer" button-renderer="" button-next="">
          <!--css-build:shady-->
          <yt-button-shape>
            <button class="yt-spec-button-shape-next yt-spec-button-shape-next--outline yt-spec-button-shape-next--mono yt-spec-button-shape-next--size-m " style="" aria-label="Leave history off">
              <div class="cbox yt-spec-button-shape-next__button-text-content">
                <span class="yt-core-attributed-string yt-core-attributed-string--white-space-no-wrap" role="text">Leave history off</span>
              </div>
              <yt-touch-feedback-shape style="border-radius: inherit;">
              <div class="yt-spec-touch-feedback-shape yt-spec-touch-feedback-shape--touch-response" aria-hidden="true">
                <div class="yt-spec-touch-feedback-shape__stroke" style=""></div>
                <div class="yt-spec-touch-feedback-shape__fill" style=""></div>
              </div>
              </yt-touch-feedback-shape>
            </button>
          </yt-button-shape>
          <tp-yt-paper-tooltip fit-to-visible-bounds="" offset="8" disable-upgrade=""></tp-yt-paper-tooltip>
        </ytd-button-renderer>
      </div>
      <div id="secondary-button" class="style-scope ytd-feed-nudge-renderer">
        <ytd-button-renderer class="style-scope ytd-feed-nudge-renderer" button-renderer="" button-next="">
          <!--css-build:shady-->
          <yt-button-shape>
            <button class="yt-spec-button-shape-next yt-spec-button-shape-next--outline yt-spec-button-shape-next--mono yt-spec-button-shape-next--size-m " style="" aria-label="Turn on history">
              <div class="cbox yt-spec-button-shape-next__button-text-content">
                <span class="yt-core-attributed-string yt-core-attributed-string--white-space-no-wrap" role="text">Turn on history</span>
              </div>
              <yt-touch-feedback-shape style="border-radius: inherit;">
                <div class="yt-spec-touch-feedback-shape yt-spec-touch-feedback-shape--touch-response" aria-hidden="true">
                  <div class="yt-spec-touch-feedback-shape__stroke" style=""></div>
                  <div class="yt-spec-touch-feedback-shape__fill" style=""></div>
                </div>
              </yt-touch-feedback-shape>
            </button>
          </yt-button-shape>
          <tp-yt-paper-tooltip fit-to-visible-bounds="" offset="8" disable-upgrade=""></tp-yt-paper-tooltip>
        </ytd-button-renderer>
      </div>
    </div>
  </div>
</div>
own3mall commented 1 year ago

@Ben-Fenner I need the full HTML as text. When this happens, go into dev tools (press F12 key), in the "Inspector" tab, scroll up to the top, right click on the html element, choose copy, and then click on Outer HTML:

image

Ben-Fenner commented 1 year ago

Like the full page worth of HTML? Because I gave you the full contents of that specific notice box HTML as text. Maybe you missed it? It's below the screenshot of the text... But if you need the full page worth of HTML, then I guess we're in trouble because I doubt I'll ever see that specific notice box again. I dismissed it and it said it would never come back (although I'm sure a slightly different one will because YouTube just can't resist).

own3mall commented 1 year ago

Yes, I need the full HTML. It looks like there is more HTML to it that didn't get included from what you posted, and as such, it will make it harder for me to investigate. Will still give it a shot though.

Ben-Fenner commented 1 year ago

I'm sorry I didn't get the entire page's worth of HTML. However, the screenshot shows everything contained within the control in question, and the text version of it is beneath and should contain all of the same content. It just doesn't look like it because it is very wide, and you must scroll to the right a bunch. I guess I'll edit that actually to make it so scrolling right is no longer needed. Hang tight.

Edit: Okay, I've formatted the HTML text to be much less wide. Of course I'd appreciate any attention you can give this. Thank you very much.

Edit 2: I see I failed to expand one of the <button> classes in the screenshot, but the text should be available below in the code block. :facepalm:

own3mall commented 1 year ago

@Ben-Fenner

Please try the newest release and let me know:

https://github.com/own3mall/YouTubeNonStop-Legacy-XUL-Extension/releases/tag/1.0.9

Note, this version now has an options page, and by default, the extension will only check for the video paused screen. However, the way the extension works is it looks for additional annoyances, but as these were causing issues at times for you, I've disabled this functionality by default. You can re-enable these by going to the options page and choosing Experimental option:

image

I think I did fix the issue originally reported, but it will only apply when experimental option is used.

Ben-Fenner commented 1 year ago

Okay, I'll give it a shot.

Would you prefer I test in default mode, or in Experimental mode? It sounds like default mode would be the safest bet for me and my desired behavior, but it sounds like you've also tried to apply a fix in the experimental mode that would retain the original (more aggressive scanning/dismissing) behavior while also allowing me to pause the video without it restarting even if a stray dismissable box is displayed. I'm happy to test either if you'd like. Which would you prefer for now?

own3mall commented 1 year ago

@Ben-Fenner, yes, please test the Experimental mode.

Ben-Fenner commented 1 year ago

Okay, I've installed 1.0.9 and set it to Experimental mode. How long do you think I should give it before reporting back?

Ben-Fenner commented 1 year ago

I've watched over 300 videos, with multi-hour sessions of continuous playback and manual pausing. Everything is working as expected. I'd say you're good to release. :+1:

own3mall commented 1 year ago

@Ben-Fenner Awesome, thanks! I will close this for now, and I did release the update on the main Pale Moon extensions area as well.