Bug 45389 - <embed> with SVG always reloads
Summary: <embed> with SVG always reloads
Status: RESOLVED DUPLICATE of bug 39286
Alias: None
Product: WebKit
Classification: Unclassified
Component: SVG (show other bugs)
Version: 525.x (Safari 3.2)
Hardware: PC All
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks: 45259
  Show dependency treegraph
 
Reported: 2010-09-08 07:08 PDT by Armin Mueller
Modified: 2010-10-18 08:17 PDT (History)
7 users (show)

See Also:


Attachments
A testcase for this bug (3.01 KB, application/x-zip-compressed)
2010-09-08 07:08 PDT, Armin Mueller
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Armin Mueller 2010-09-08 07:08:45 PDT
Created attachment 66893 [details]
A testcase for this bug

If a svg is placed inside a Dojo Tab as <embed> then after changing the tabs the <embed> is reloaded and reset to default. Changes to the SVG are no longer visible.

The attached testcase shows the problem:
1. After loading click on the rectangle it change color from yellow to orange
2. change the tab
3. change back to first tab. Now the rectangle is yellow again. clicking has no effect

This effect is in Safari and Chrome. If you use this in other browsers FF, Opera, Ie (with Adobe SVGViewer) you see the coorect behavior.

I have already create a bug report 45259 which shows this behavior on a larger example
Comment 1 Armin Mueller 2010-09-08 07:33:45 PDT
It seems that Dojo set the tab property display to none. Niko Zimmermann told me that this has the effect that the Webkit kill the renderer an reset all properties to default.

But this does not explain fully the behavior described in bug 45259: Here the SVG legend is not reseted but it seemed freezed.
Comment 2 Nikolas Zimmermann 2010-09-08 08:35:33 PDT
CC'ing some of the rendering experts.

Our display="none" handling seems flawed, compared to other browsers.
When embedding eg. an external document (no matter if SVG, or HTML), one can write:

var document = myEmbed.getSVGDocument();
myEmbed.style.display = "none";

.... let style recalc etc ...

myEmbed.style.display ="inline";
document is now no longer valid, as the referenced document of "myEmbed" gets reloaded (RenderEmbeddedObject has been destructed, when setting display="none", and is now reloaded).

Specific question for Eric: It seems you're just working on a fix for that problem, is that right? (Thinking of bug 27775)
Comment 3 Darin Adler 2010-09-08 08:49:25 PDT
This is the same thing as bug 27775 but for subframes rather than plug-ins.
Comment 4 Eric Seidel (no email) 2010-09-08 15:02:08 PDT
I'm working in this area now.
Comment 5 Mike Capp 2010-10-18 05:58:31 PDT
I'm pretty sure this is an exact dupe of bug 39286
Comment 6 Darin Adler 2010-10-18 08:17:43 PDT
Yes, agreed.

*** This bug has been marked as a duplicate of bug 39286 ***