Last Comment Bug 503007 - Provide Javascript Access to User Agent Style Sheets.
: Provide Javascript Access to User Agent Style Sheets.
Status: NEW
[firebug-p2]
: helpwanted, student-project
Product: Core
Classification: Components
Component: CSS Parsing and Computation (show other bugs)
: 1.9.1 Branch
: x86 Windows XP
-- normal with 2 votes (vote)
: ---
Assigned To: Nobody; OK to take it and work on it
:
: Jet Villegas (:jet)
Mentors:
Depends on: 536379
Blocks: 343508
  Show dependency treegraph
 
Reported: 2009-07-07 21:40 PDT by John J. Barton
Modified: 2016-03-08 14:06 PST (History)
15 users (show)
roc: wanted1.9.2+
See Also:
Crash Signature:
(edit)
QA Whiteboard:
Iteration: ---
Points: ---
Has Regression Range: ---
Has STR: ---
?


Attachments

Description User image John J. Barton 2009-07-07 21:40:33 PDT
Firebug wants to apply the same workaround to User Agent Style sheets as we applied to page sheets in Bug 500365
	
Unfortunately we have no way to access the User Agent Sheets.

CSS editing is one of Firebug's top features and revealing the User Agent Sheets is a great way to help users understand CSS results. Currently editing User Agent sheets breaks Firefox, either making its UI fall apart or crash.

Firebug could try to implement read-only for the User Agent Sheet, but just then we will want the edit capability for Chromebug.
Comment 1 User image John J. Barton 2009-07-07 21:42:39 PDT
Boris, please set blocking/wanting flags according to your estimate of how hard this would be to implement.
Comment 2 User image Boris Zbarsky [:bz] (still a bit busy) 2009-07-07 21:47:28 PDT
Probably pretty easy, actually, via nsIDOMWindowUtils.  Could add a method that just returns a non-live array of user or UA sheets.

If someone wants to implement, I'm happy to point you to the relevant pieces.
Comment 3 User image Ondrej Donek 2009-07-08 09:20:06 PDT
Hi,
I've noticed this bug on http://blog.getfirebug.com/?p=265 and because I have some free time and I wanted to improve my C++ skills I see this as a great opportunity how to start.
I've currently have the latest trunk and prepared build environment so I'll start with it this night.
I have only question if there is any other what I need to know - but the previous post is pretty clear.
Regards,
Ondrej Donek
Comment 4 User image John J. Barton 2009-07-08 09:40:09 PDT
You'll need test cases to succeed and test cases will illustrate the proposed API, so I encourage you to start there.
Comment 5 User image Wladimir Palant 2009-07-11 07:38:22 PDT
I would rather prefer having this exposed via nsIStyleSheetService - so that user stylesheets are exposed as well.
Comment 6 User image Boris Zbarsky [:bz] (still a bit busy) 2009-07-11 16:21:46 PDT
John wants access to both, I think.

That said, this needs to be done per-document, so I'm not sure hanging it off of nsIStyleSheetService is a good approach; you'd have to have an API on there that takes a document or something.
Comment 7 User image Boris Zbarsky [:bz] (still a bit busy) 2009-07-11 16:22:48 PDT
That's assuming I diagnosed John's problem correctly, of course.  I looked again, and we only clone the quirks sheet; the other user/ua sheets are used as-is (we used to clone them, though).  So I'm not quite sure whether the issue John's seeing would be fixed by touching those sheets....
Comment 8 User image John J. Barton 2009-07-12 20:32:56 PDT
(In reply to comment #5)
> I would rather prefer having this exposed via nsIStyleSheetService - so that
> user stylesheets are exposed as well.

I can already get these from window.document.styleSheets.
Comment 9 User image Boris Zbarsky [:bz] (still a bit busy) 2009-07-12 22:02:51 PDT
No, you can get the document sheets.  User sheets are not in that collection.
Comment 10 User image David Baron :dbaron: ⌚️UTC-8 2009-12-29 06:25:46 PST
In order to make it ok for Firebug to mutate the UA sheets, we need to (1) ensure that the UA sheets get cloned in DocumentViewerImpl::CreateStyleSet or somewhere else and (2) ensure that they get unique inners before they're mutated (which bug 536379 should do for the get-style-rules case, and make it easy to do in other cases)

Note You need to log in before you can comment on or make changes to this bug.