RESOLVED CONFIGURATION CHANGED 93344
CanvasRenderingContext2D::createPattern() should return null, if non-decodable image argument
https://bugs.webkit.org/show_bug.cgi?id=93344
Summary CanvasRenderingContext2D::createPattern() should return null, if non-decodabl...
Jussi Kukkonen (jku)
Reported 2012-08-07 01:07:51 PDT
Spec says: "If the image argument is an HTMLImageElement object that is not fully decodable ... then the implementation must return null." This does not currently happen so these tests fail: canvas/philip/tests/2d.pattern.image.broken.html = TEXT canvas/philip/tests/2d.pattern.image.incomplete.empty.html = TEXT canvas/philip/tests/2d.pattern.image.incomplete.omitted.html = TEXT HTMLImageElement does not seem to have "decodability" as a property and things are slightly complicated by the img.complete property being slightly illogical for this: currently images with empty, missing or non-existing source are "complete" (and IIRC this is according to current spec). So possibly these cases would have to be tested in CanvasRenderingContext2D. I'll take a closer look, advice is welcome also.
Attachments
Jussi Kukkonen (jku)
Comment 1 2012-08-07 01:24:11 PDT
to improve searchability: above comment relates to CanvasRenderingContext2D::createPattern()
Jussi Kukkonen (jku)
Comment 2 2012-08-08 06:12:55 PDT
After some testing: 2d.pattern.image.incomplete.omitted: works after checking image->src().isValid()) before creating pattern 2d.pattern.image.broken: needs knowledge of whether image really is decodable 2d.pattern.image.incomplete.empty: the image url used in createPattern() ends up as the _page_ url because HTMLIMageElement does document().completeURL(). This would still work with knowledge of whether image really is decodable
Brent Fulgham
Comment 3 2022-07-18 14:21:37 PDT
It looks like this was done as part of Bug 180718.
Note You need to log in before you can comment on or make changes to this bug.