Closed Bug 662756 Opened 13 years ago Closed 12 years ago

The default value for attributes lspace/rspace of <mo> should be thickmathspace

Categories

(Core :: MathML, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla16

People

(Reporter: fredw, Assigned: fredw)

References

()

Details

(Keywords: dev-doc-complete)

Attachments

(3 files, 2 obsolete files)

The MathML REC says that the default values are "thickmathspace":

http://www.w3.org/TR/MathML/chapter3.html#presm.mo.attrs

In general, people use operators that are in our dictionary, so that's not a problem.
Here is an example in the MathML testsuite where we can see a problem:

http://www.w3.org/Math/testsuite/build/main/Presentation/TokenElements/mo/mo6-full.xhtml
Blocks: 557086
Summary: mo should use use thickmathspace as a default value → The default value for attributes lspace/rspace of <mo> should be thickmathspace
Whiteboard: [good second bug]
I'm guessing we only need to initialize lspace and rspace to the value of thickmathspace instead of 0 here:

http://mxr.mozilla.org/mozilla-central/source/layout/mathml/nsMathMLmoFrame.cpp#386
Assignee: nobody → hage.jonathan
Attached file Testcase
Attached patch Patch add thickmathspace (obsolete) — Splinter Review
For both tests, we can see that the result is what we expected. But, with the tests proposed by Frédéric Wang, we can note there is a space not expected between f and (x). The applyfunction is treated like an mo that is not in the dictionary. If I comment the following condition: 
 http://mxr.mozilla.org/mozilla-central/source/layout/mathml/nsMathMLmoFrame.cpp#182
the result is good. But there is a new problem, because the line is more below than the line of the reftest but I don't know why.
To finish we can ask ourselves what we can do if the mo is not in the dictionary and at the beginning of the line. It would be better that the space shouldn't appear at the left of the mo.
Assignee: hage.jonathan → nobody
Whiteboard: [good second bug] → [mentor=fredw][lang=c++]
Attachment #542479 - Attachment mime type: text/plain → text/html
Attached patch Patch V2 (obsolete) — Splinter Review
Assignee: nobody → fred.wang
Attachment #542738 - Attachment is obsolete: true
Status: NEW → ASSIGNED
Attachment #630247 - Flags: review?(karlt)
Attached patch ReftestSplinter Review
Attachment #630248 - Flags: review?(karlt)
Whiteboard: [mentor=fredw][lang=c++]
Attachment #630248 - Flags: review?(karlt) → review+
I assume that, if the scriptlevel and IS_ISOLATED tuning is appropriate for
l/rspace from the dictionary, it would also be appropriate for default values.

An implementation that changed the initialization of the lspace and rspace
variables to the 5/18 default would be simpler and keep this tuning.
Is there a reason why you wanted to avoid the tuning?
(In reply to Karl Tomlinson (:karlt) from comment #10)
> An implementation that changed the initialization of the lspace and rspace
> variables to the 5/18 default would be simpler and keep this tuning.
> Is there a reason why you wanted to avoid the tuning?

Yes, that's what I was wondering too. I don't have a strong reason, except trying to follow the MathML spec (but even thickmathspace = 5/18 is only a recommended value and I know that MathJax does not always follow the spacing recommended by the spec). I'll keep the tuning.

(In general, I don't find this bug too important in practice, but it is a test in the MathML testsuite)
Comment on attachment 630247 [details] [diff] [review]
Patch V2

(Comment 10)
Attachment #630247 - Flags: review?(karlt) → review-
Attached patch Patch V3Splinter Review
I forgot to update my patch sorry. The previous Try Server results in comment 12 was for this new version.
Attachment #630247 - Attachment is obsolete: true
Attachment #635743 - Flags: review?(karlt)
Attachment #635743 - Flags: review?(karlt) → review+
Whiteboard: [autoland-try:-b do -p all -u all -t all]
Whiteboard: [autoland-try:-b do -p all -u all -t all] → [autoland-in-queue]
Keywords: checkin-needed
Whiteboard: [autoland-in-queue]
https://hg.mozilla.org/mozilla-central/rev/08f12e27bf51
https://hg.mozilla.org/mozilla-central/rev/ef4be3efbb41
Status: ASSIGNED → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Autoland Patchset:
	Patches: 630248, 635743
	Branch: mozilla-central => try
Patch 630248 could not be applied to mozilla-central.
file layout/reftests/mathml/mo-lspace-rspace-ref.html already exists
1 out of 1 hunks FAILED -- saving rejects to file layout/reftests/mathml/mo-lspace-rspace-ref.html.rej
file layout/reftests/mathml/mo-lspace-rspace.html already exists
1 out of 1 hunks FAILED -- saving rejects to file layout/reftests/mathml/mo-lspace-rspace.html.rej
patch failed, unable to continue (try -v)
patch failed, rejects left in working dir

Patchset could not be applied and pushed.
Keywords: dev-doc-needed
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: