Closed Bug 77974 Opened 24 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)

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 (deleted) —
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) (deleted) — 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) (deleted) —
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) (deleted) — Splinter Review
Attachment #76689 - Attachment is obsolete: true
Attached patch patch (obsolete) (deleted) — Splinter Review
Attachment #139097 - Attachment is obsolete: true
Attached patch patch (obsolete) (deleted) — Splinter Review
Attachment #139099 - Attachment is obsolete: true
Attached patch patch (obsolete) (deleted) — 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) (deleted) — 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 patch (deleted) — Splinter 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) (deleted) —
Attached file more thorough testcase (obsolete) (deleted) —
Attachment #139164 - Attachment is obsolete: true
Attached file more thorough testcase (deleted) —
Attachment #139165 - 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: