savescreenshot icon indicating copy to clipboard operation
savescreenshot copied to clipboard

Problem: Save Screenshot can NOT capture WHOLE chat in ChatGPT WebApp in Firefox Browser

Open tobwz opened this issue 8 months ago • 4 comments

As you know famous ChatGPT KI-System offers a free Chat WebApp in browsers available at:

https://chatgpt.com/

After free registering with an email and login you can ask questions and gets lots of lines with an answers.

After a longer conversation I wanted to capture the whole chat into a *.png image file on my local computer with "Save Screenshot" WebExtension in newest Firefox v137 on Windows 10.

In general SS works with almost all other webpages. BUT NOT with screenshots in ChatGPT WebApp.

When using it "as usual" via toolbar icon then only the currently visible part is captures but not the parts accessible only by scrolling.

This is bad.

Can you make it working in ChatGPT too?

Since ChatGPT is widespread and becomes more and more important to all users its worth checking this problem.

Thank you

tobwz avatar Apr 10 '25 06:04 tobwz

I don't use ChatGPT and the last time, I checked, they wanted a phone number from me (which I won't give them).

Basically the same applies here as for any other "account requiring" website. I won't create accounts to fix bugs, so someone else will have to provide the fix.

M-Reimer avatar Apr 10 '25 10:04 M-Reimer

You don't need a telephone any more for WebApp. Only if you want to generate API-Keys. But in WebApp you don't need API-keys. So registering with fake email is enough

tobwz avatar Apr 10 '25 10:04 tobwz

Seems like it is possible to actually use without login. I could prepare a fix for this mode. But that's all I could offer.

M-Reimer avatar Apr 10 '25 15:04 M-Reimer

Perfect. Any fix appreciated

tobwz avatar Apr 10 '25 16:04 tobwz

Initial support for this is added. You could, in theory, load the Add-on temporarily using "about:debugging" in the Firefox URL bar.

M-Reimer avatar May 17 '25 11:05 M-Reimer

New version is published

M-Reimer avatar May 18 '25 13:05 M-Reimer

The new version looks good except one thing: Users can print now the WHOLE current chat. Good

But what if I discussed a dozend of questions in the current chat. And I want to screenshot only the conversation beginning with the current position downwards to the end?

Can I somehow tell this your WebExt? or can this be added too?

Printing the whole chat oftentime exceeds 32767pixel height. So the most interesting last part is omitted then

tobwz avatar May 18 '25 13:05 tobwz

No need to open new issues for the same topic.

Probably the solution is to just not discuss multiple questions in one chat.

The "scroll position" effectively is gone while creating the screenshot. The whole idea was to manipulate the website style to make it actually span the whole window height and so make the browser scroll. This is the only situation to get "full" screenshots.

Maybe it is possible to do some creative trick to get the original "internal" scroll position and calculate a "window scroll position" from that. I don't know if CSS styling changes this value. My first guess is that it shouldn't.

I will have another look at this. Especially if it is possible to easily keep the scroll position even if the previous scroll position gets invalid.

If this gets a tendency to get way too complicated, I'll undo my last change and mark this as WONTFIX.

M-Reimer avatar May 18 '25 16:05 M-Reimer

Sorry, I didn't want to be pushing. I appreciate your Save Screenshot WebExt as it is. My suggestion for partial snapshots was just a friendly additional demand.

As far as I know you can get the current vertical scroll position with javascript commands like::

let scrollPosition = window.scrollY;

or

let scrollPosition = document.documentElement.scrollTop;

Maybe this could help. If you cannot find (now) a solution for partial snapshots so leave it open. Capturing the whole chat is already useful. Thank you again

tobwz avatar May 19 '25 05:05 tobwz

Exactly this will not work.

In websites like Chatgpt you scroll in an element inside the website and not the website itself.

My current solution makes this "website internal" element grow so the actual website grows high enough to show the full chat output.

What I have to try is to read the scroll position from the element which was actually scrolled. Then calculate from that and the absolute position of this element to a vertical position in the website.

This may work. First tests show that growing the element keeps the previous scroll position.

M-Reimer avatar May 19 '25 10:05 M-Reimer

The property "scrollTop" is still visible in developer tools but delivered to scripts as just zero as standard says "return zero if no scrollbar is visible". But it was not that difficult to read the property before applying the CSS changes. Still needs more testing before I can publish this.

M-Reimer avatar May 19 '25 18:05 M-Reimer

Great news.

Just one more suggestion: If you publish the new version don't close this issue but leave it open for a couple of months in case that there are still problems. Thank you

tobwz avatar May 20 '25 11:05 tobwz

That's not how I handle issues. If needed, an issue can be reopened.

M-Reimer avatar May 20 '25 15:05 M-Reimer

Fix is checked in. I'll add the same fix to the second style, I have, tomorrow and then publish a new version.

M-Reimer avatar May 23 '25 17:05 M-Reimer

Thank you. One more thing: As I found out Save Screenshot adds some footer overlays to the screen shot. See red arrows in attached screenshot. Can you omit them? I am not logged in into ChatGPT at the time of screenshot

Image

tobwz avatar May 24 '25 05:05 tobwz

I observed this issue in the past for other webpages too, which contain a floating, sticky navigation bar

As soon as I find such a non-ChatGPT website I could tell you if necessary

tobwz avatar May 24 '25 18:05 tobwz

On such websites the right solution is to scroll all the way to the top so the floating navigation bar actually lands on the top. Save Screenshot saves exactly what is visible on the browser, even if parts of the websites are hidden "behind the top of the browser".

But I have to check your ChatGPT case as this seems to be actually stuff hidden out of sight. And it should absolutely be possible to hide this if it can be selected using CSS.

M-Reimer avatar May 24 '25 19:05 M-Reimer

Should be fixed on GIT. I won't have the time to create the new release, today, but I'll do that next week.

M-Reimer avatar May 25 '25 17:05 M-Reimer

New version is out. I hope this fixes the outstanding issues. Some inconveniences will always be there as I can't really influence how ChatGPT renders its output. For example you should scroll through the whole chat, again, to be sure everything is properly rendered before attempting to create a screenshot.

M-Reimer avatar May 29 '25 16:05 M-Reimer