Coder Social home page Coder Social logo

Comments (6)

qq15725 avatar qq15725 commented on September 26, 2024

I need a minimal reproduction to debug your issue, thanks!

Playground for https://codesandbox.io

Playground for https://codepen.io

Playground for https://play.vuejs.org

from modern-screenshot.

mayurborkar27 avatar mayurborkar27 commented on September 26, 2024

@qq15725 we are having d3 chart as svg in our project and trying to take screenshot of that svg, in google chrome it is taking proper screenshot of that svg but in firefox it is getting as blank white image.

from modern-screenshot.

mtxue97 avatar mtxue97 commented on September 26, 2024

@qq15725 we are having d3 chart as svg in our project and trying to take screenshot of that svg, in google chrome it is taking proper screenshot of that svg but in firefox it is getting as blank white image.

Is the image dataURL generated in Firefox very large and contains many redundant styles?

from modern-screenshot.

henrikvilhelmberglund avatar henrikvilhelmberglund commented on September 26, 2024

I saw this with some icons: playground

from modern-screenshot.

PikPakPik avatar PikPakPik commented on September 26, 2024

@qq15725 we are having d3 chart as svg in our project and trying to take screenshot of that svg, in google chrome it is taking proper screenshot of that svg but in firefox it is getting as blank white image.

Is the image dataURL generated in Firefox very large and contains many redundant styles?

Yes very large and contains many redundant styles and same problem here with d3 chart, no solution since 1 year ?

from modern-screenshot.

crazy4chrissi avatar crazy4chrissi commented on September 26, 2024

We had the same problem. The root cause were global css variables with embedded graphics that summed up to 8MB of variables at the global scope. It even caused modern-screenshot to crash (NS_ERROR_OUT_OF_MEMORY) in Firefox. Reducing the CSS size to ~ 50KB caused it to produce blank images in Firefox.

We solved this by moving the css variables to the scope of the element using it. After that, modern-screenshot did not have any issues producing the image anymore.

Before:

:root {
  --icon-foo: url(data:image/png;base64,..............................);
}

after:

my-icon {
  --icon-foo: url(data:image/png;base64,..............................);
}

In our case my-icon is a custom element with a shadow dom, thus the variable needs to be declared at the scope of the custom element (or a ::part). If you are not using shadow dom, you can use css classes as selectors or whatever. Just make sure the dom elements in the tree that modern-screenshot should take images of do not have too many huge variables in their scope.

Of course this workaround does not help if the screenshot should include the images that cause the huge css.

from modern-screenshot.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.