Closed Bug 372232 Opened 14 years ago Closed 14 years ago

text inside <svg> won't render in FF 2.0.0.2 (it shows in DOM tree). However, it renders inside 2.0.0 and 2.0.0.1.

Categories

(Core :: SVG, defect)

x86
Windows XP
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: ipapadakis, Assigned: tor)

References

()

Details

(Keywords: regression, testcase, verified1.8.1.4, Whiteboard: caused by fix for bug 356493)

Attachments

(3 files, 1 obsolete file)

User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.2) Gecko/20070219 Firefox/2.0.0.2
Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.2) Gecko/20070219 Firefox/2.0.0.2

text inside <svg> (more specifically,<text><textpath><tspan>some text</tspan></textpath></text>) won't render in FF 2.0.0.2.
Moreover, the text exists inside the generated DOM tree.
The same code (in javascript) renders fine in previous versions of FF. 


Reproducible: Always

Steps to Reproduce:
visit http://195.251.111.53/~jpap/sb2/index.xhtml with FF 2.0.0.2
and then visit http://195.251.111.53/~jpap/sb2/index.xhtml with FF 2.0.0.1

Actual Results:  
no text on top of lines shown

Expected Results:  
text on top of lines connecting boxes shown (i.e. "contains")
This only occurs when the path is not defined in a <defs>

Following is an example:
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
  <svg version="1.1" x="0" y="0" baseProfile="full" 
     xmlns="http://www.w3.org/2000/svg" 
     xmlns:xlink="http://www.w3.org/1999/xlink">
     
   <!-- This works -->  
  <defs>
    <path id="MyPath"
          d="M 100 200 
             C 200 100 300   0 400 100
             C 500 200 600 300 700 200
             C 800 100 900 100 900 100" />
  </defs>
  <desc>Example toap01 - simple text on a path</desc>

  <use xlink:href="#MyPath" fill="none" stroke="red"  />
  <text font-family="Verdana" font-size="42.5" fill="blue" >

    <textPath xlink:href="#MyPath">
      We go up, then we go down, then up again
    </textPath>
  </text>
  
  <!-- This fails and should work -->
    <path id="MyPath2" fill="none" stroke="red" 
            d="M 300 200 
               C 300 100 300   0 400 100
               C 300 200 600 300 700 200
               C 300 100 900 100 900 100" />
   
    <text font-family="Verdana" font-size="42.5" fill="blue" >
      <textPath xlink:href="#MyPath2">
        Play it again
      </textPath>
    </text>
</svg>
Assignee: nobody → general
Component: General → SVG
Product: Firefox → Core
QA Contact: general → ian
This regressed between the 2007-01-02-04 and 2007-01-03-04 builds on MOZILLA_1_8_BRANCH.  Checkins:

http://bonsai.mozilla.org/cvsquery.cgi?treeid=default&module=MozillaTinderboxAll&branch=MOZILLA_1_8_BRANCH&branchtype=match&dir=&file=&filetype=match&who=&whotype=match&sortby=Date&hours=2&date=explicit&mindate=2007-01-02+04&maxdate=2007-01-03+04&cvsroot=%2Fcvsroot

I'd guess that makes it a regression from bug 356493

Not confirming, since I'm not sure what the right behavior here is per spec.
Blocks: 356493
Comment on attachment 260729 [details] [diff] [review]
allow path used as textPath reference to be a child of outer svg

>   if (useLocalTransform) {
>     CallQueryInterface(mParent, &svgParent);
>-    if (!svgParent)
>-      return NS_ERROR_FAILURE;

How about returning NS_ERROR_FAILURE if mParent->GetType() != nsGkAtoms::svgOuterSVGFrame?
Attachment #260729 - Flags: review?(jwatt) → review+
Attached patch add test as suggested (obsolete) — Splinter Review
Attachment #260740 - Flags: superreview?(roc)
Status: UNCONFIRMED → NEW
Ever confirmed: true
Keywords: regression
+  if (useLocalTransform) {
+    if (svgParent)
+      svgParent->SetMatrixPropagation(PR_FALSE);
+  } else {
     SetMatrixPropagation(PR_FALSE);
+  }

Instead of duplicating these conditionals, why not do
  nsISVGChildFrame* matrixFrame =
    useLocalTransform ? svgParent : this;
  if (matrixFrame) {
    matrixFrame->SetMatrixPropagation(PR_FALSE);
  }
  ...
  if (matrixFrame) {
    matrixFrame->SetMatrixPropagation(PR_TRUE);
  }
Flags: blocking1.8.1.4?
Attached patch compact logicSplinter Review
Attachment #260740 - Attachment is obsolete: true
Attachment #261164 - Flags: superreview?(roc)
Attachment #260740 - Flags: superreview?(roc)
Attachment #261164 - Flags: superreview?(roc) → superreview+
Comment on attachment 261164 [details] [diff] [review]
compact logic

Fixes regression from 2.0.0.1 and 2.0.0.2 caused by fixing bug 356493.
Attachment #261164 - Flags: approval1.8.1.4?
Whiteboard: caused by fix for bug 356493
Assignee: general → tor
Flags: blocking1.8.1.4? → blocking1.8.1.4+
Comment on attachment 261164 [details] [diff] [review]
compact logic

approved for 1.8.1.4, a=dveditz for release-drivers
Attachment #261164 - Flags: approval1.8.1.4? → approval1.8.1.4+
Checked in on MOZILLA_1_8_BRANCH.
Status: NEW → RESOLVED
Closed: 14 years ago
Keywords: fixed1.8.1.4
Resolution: --- → FIXED
verified fixed 1.8.1.4 using the testcase from comment #1 with builds:

Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.8.1.4pre) Gecko/2007042403 BonEcho/2.0.0.4pre

Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.4pre) Gecko/2007042603 BonEcho/2.0.0.4pre Fedora FC 6 

The Text inside the svg is rendered correctly.
You need to log in before you can comment on or make changes to this bug.