Closed Bug 77974 Opened 23 years ago Closed 21 years ago

CSS2 blocker: Alternate cursor should load if URI is broken

Categories

(Core :: CSS Parsing and Computation, defect, P2)

defect

Tracking

()

RESOLVED FIXED
mozilla1.7alpha

People

(Reporter: SkewerMZ, Assigned: dbaron)

Details

(Keywords: css2, testcase, Whiteboard: [patch])

Attachments

(3 files, 9 obsolete files)

668 bytes, text/html
Details
14.08 KB, patch
bzbarsky
: review+
bzbarsky
: superreview+
Details | Diff | Splinter Review
1.38 KB, text/html; charset=UTF-8
Details
Procedure: Load a document which specifies a cursor and move your mouse over the
affected element.

Expected: Element will load the first possible cursor in a comma-broken list.
Hopefully all of the CSS2 elements should be supported, and if reasonably
possible, Mozilla should try to fetch a .cur file specified in the URL value and
display it (at least on the Windows platform), reasonably possible defined as
able to connect and download the uncorrupted file without timing out.

Actual: Mozilla appears to ignore the cursor property entirely if more than one
value is specified on the list. Instead the default cursor for that element is used.

Also, Mozilla does not load cursors specified as a URL, even if they are not
part of a list.

Proposal: We need this browser to be, at the very least, 99.9% compatible with
CSS1 and CSS2 if it's going to live up to its expectations. This should be fixed
to behave as documented at the following URL:

http://www.w3.org/TR/REC-CSS2/ui.html#cursor-props

If I have time I will get a test page up this weekend to demonstrate this
behavior (unless someone knows of such a test that already exists).

Appears on: Build 20010426 Win98
I don't see how this is at all related to DOM style, reassigning to the Style
System component.
Assignee: jst → pierre
Component: DOM Style → Style System
Added URL of test page:

http://skewer.hypermart.net/csstest/

This page has several different tests for compatibility with CSS2's cursor
property. Mozilla fails most of these tests.
Can anyone confirm this behavior? In theory, the CSS interpreter should be the
same for all platforms, so anyone who has the privs is invited to change the
platform/OS to all.
Most of these testcases are wrong because the 'cursor' properties are assigned 
several generic values.  Per the spec, only an 'url()' value can be repeated:
http://www.w3.org/TR/REC-CSS2/ui.html#propdef-cursor.

We still have a bug with multiple URLs, or even with just an URL and a generic 
names.  I'm going to attach a small testcase based on the one provided by the 
reporter.
Status: UNCONFIRMED → ASSIGNED
Ever confirmed: true
Keywords: css2
Target Milestone: --- → mozilla1.0
Attached file testcase
Actually, the spec is vague in this respect. It doesn't specifically say that a
comma-broken list such as "cursor: wait, help;" is invalid, nor does it
specifically suggest it. However, since there are new cursors being added in
CSS3 anyway, I definitely think it SHOULD behave in this way, and at least TRY
to display the page as the author intended.
P: Your testcase will never work. It is dependent on the "pencil.cur" file being
located in the same directory.

You might want to remove my copyright notice, too...
'cursor: wait, help;' is invalid CSS per the CSS2 section 18.1.
The spec is not vague at all.  If you look at http://www.w3.org/TR/REC-CSS2/
ui.html#propdef-cursor, only the [<uri>,] part is followed by an asterisk * 
meaning that it can be repeated.

Also my testcase is valid even though there is no "pencil.cur" attached because 
then {cursor: url("pencil.cur"), wait;} should set the cursor to the 'wait' 
state, which it doesn't.  We have no plans to support url() cursors in the near 
future but we should at least support the syntax that allows for a fall-back 
generic cursor.
Why would you not have plans to meet the CSS2 standard? I thought you wanted to
win the browser war. Internet Explorer 6.0b supports the cursor property as
specifed by W3C.

Also, why do you keep giving me the W3C URL? I know about that page, or I
wouldn't have posted the URL to it in the initial bug description...
SkewerMZ: We do plan to do it, just not any time soon -- CSS1 is a higher
priority than CSS2, for obvious reasons.
Bug 38447 is about CSS2 cursors *not a dup*.
Updating summary.
Keywords: mozilla1.0, testcase
Summary: CSS2 cursor property is poorly implemented → CSS2 blocker: Alternate cursor should load if URI is broken
Priority: -- → P3
Moving to mozilla1.1. Engineers are overloaded!
Target Milestone: mozilla1.0 → mozilla1.1
Bulk moving from Moz1.1 to future-P1. I will pull from this list when scheduling
work post Mozilla1.0.
Priority: P3 → P1
Target Milestone: mozilla1.1 → Future
Attached patch possible patch (obsolete) — Splinter Review
I didn't try compiling this yet.  It removes the cursor image from the style
struct since I doubt we'll implement that anytime in the near future.  It fixes
the parsing to require a generic at the end, which is what the spec does, and
the rule node change relies on that parser change.
Taking.
Assignee: pierre → dbaron
Status: ASSIGNED → NEW
Target Milestone: Future → mozilla1.1alpha
Status: NEW → ASSIGNED
Priority: P1 → P2
cc'ing myself
Target Milestone: mozilla1.1alpha → mozilla1.1beta
Target Milestone: mozilla1.1beta → mozilla1.2alpha
Setting All/All per comment #3.
Keywords: review
OS: Windows 98 → All
Hardware: PC → All
That patch probably isn't the right approach, since we'd want to leave the URLs
in the style data for various reasons (editor round-tripping, DOM access, etc.).
Target Milestone: mozilla1.2alpha → Future
Attached file testcase (obsolete) —
Testcase trying to set the cursor of a paragraph just like in the CSS2 spec
http://www.w3.org/TR/REC-CSS2/ui.html#propdef-cursor 
When trying to access this value from dom an empty string is returned...
That file's invalid - use single quotes for the URI string values, else your
style is being processed as "cursor : url(".
Comment on attachment 100499 [details]
testcase

It's also unrelated to this bug, in addition to being invalid.
Attachment #100499 - Attachment is obsolete: true
Attached patch patch (obsolete) — Splinter Review
Attachment #76689 - Attachment is obsolete: true
Attached patch patch (obsolete) — Splinter Review
Attachment #139097 - Attachment is obsolete: true
Attached patch patch (obsolete) — Splinter Review
Attachment #139099 - Attachment is obsolete: true
Attached patch patch (obsolete) — Splinter Review
Attachment #139100 - Attachment is obsolete: true
Attachment #139103 - Flags: superreview?(bz-vacation)
Attachment #139103 - Flags: review?(bz-vacation)
Whiteboard: [patch]
Target Milestone: Future → mozilla1.7alpha
Attached patch patch (obsolete) — Splinter Review
Attachment #139103 - Attachment is obsolete: true
Attachment #139103 - Flags: superreview?(bz-vacation)
Attachment #139103 - Flags: review?(bz-vacation)
Attachment #139157 - Flags: superreview?(bz-vacation)
Attachment #139157 - Flags: review?(bz-vacation)
Attached patch patchSplinter Review
Attachment #139157 - Attachment is obsolete: true
Attachment #139157 - Flags: superreview?(bz-vacation)
Attachment #139157 - Flags: review?(bz-vacation)
Attachment #139162 - Flags: superreview?(bz-vacation)
Attachment #139162 - Flags: review?(bz-vacation)
Attached file more thorough testcase (obsolete) —
Attachment #139164 - Attachment is obsolete: true
Comment on attachment 139162 [details] [diff] [review]
patch

r+sr=bzbarsky
Attachment #139162 - Flags: superreview?(bz-vacation)
Attachment #139162 - Flags: superreview+
Attachment #139162 - Flags: review?(bz-vacation)
Attachment #139162 - Flags: review+
Fix checked in to trunk, 2004-01-17 17:12 -0800.
Status: ASSIGNED → RESOLVED
Closed: 21 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: