Closed Bug 650505 Opened 14 years ago Closed 14 years ago

Get rid of ComputedCSSStyleDeclaration

Categories

(Core :: DOM: CSS Object Model, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla6

People

(Reporter: emk, Assigned: emk)

Details

Attachments

(2 files)

Steps to reproduce: 1. Open Web Console 2. Type getComputedStyle(document.body,"") into Web Console. Actual result: [object ComputedCSSStyleDeclaration] Expected result: [object CSSStyleDeclaration] All other browsers work as expected. DOM Level 2 CSS doesn't define ComputedCSSStyleDeclaration. getComputedStyle should not expose implementation details to content.
Attached patch patchSplinter Review
Attachment #526500 - Flags: review?(dbaron)
Comment on attachment 526500 [details] [diff] [review] patch looks ok to me, but somebody more familiar with classinfo should review this -- in particular, is it ok for two different classes to have the same classinfo?
Attachment #526500 - Flags: review?(jst)
Attachment #526500 - Flags: review?(dbaron)
Attachment #526500 - Flags: review+
In particular, there's a DOMCI_DATA line that associates CSSStyleDeclaration with nsDOMCSSDeclaration, yet you're changing nsComputedDOMStyle to use CSSStyleDeclaration.
Comment on attachment 526500 [details] [diff] [review] patch Looks good to me, but I'd like peterv to sign off on this as well as he's more familiar with all the perf work that's happened here lately.
Attachment #526500 - Flags: review?(peterv)
Attachment #526500 - Flags: review?(jst)
Attachment #526500 - Flags: review+
Comment on attachment 526500 [details] [diff] [review] patch >diff --git a/layout/style/nsComputedDOMStyle.cpp b/layout/style/nsComputedDOMStyle.cpp > NS_INTERFACE_TABLE_HEAD(nsComputedDOMStyle) > NS_INTERFACE_TABLE3(nsComputedDOMStyle, > nsICSSDeclaration, > nsIDOMCSSStyleDeclaration, > nsIDOMCSS2Properties) > NS_INTERFACE_TABLE_TO_MAP_SEGUE > NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY > NS_INTERFACE_MAP_ENTRIES_CYCLE_COLLECTION(nsComputedDOMStyle) >- NS_DOM_INTERFACE_MAP_ENTRY_CLASSINFO(ComputedCSSStyleDeclaration) >+ NS_DOM_INTERFACE_MAP_ENTRY_CLASSINFO(CSSStyleDeclaration) > NS_INTERFACE_MAP_END I think this should just be: NS_INTERFACE_MAP_BEGIN(nsComputedDOMStyle) NS_WRAPPERCACHE_INTERFACE_MAP_ENTRY NS_INTERFACE_MAP_ENTRIES_CYCLE_COLLECTION(nsComputedDOMStyle) NS_INTERFACE_MAP_END_INHERITING(nsDOMCSSDeclaration)
Attachment #526500 - Flags: review?(peterv) → review+
Keywords: checkin-needed
Assignee: nobody → VYV03354
Status: NEW → RESOLVED
Closed: 14 years ago
Keywords: checkin-needed
Resolution: --- → FIXED
Target Milestone: --- → mozilla6
I've found a problem in an old webapp that uses ComputedCSSStyleDeclaration, and I think it can be related to this bug. When I try to do var cs=ComputedCSSStyleDeclaration.prototype; it throws this error: ComputedCSSStyleDeclaration is not defined This works perfecty in Firefox4, but fails in firefox6. Do you know how to avoid this problem? Do I have to create a new bug?
Use CSSStyleDeclaration instead.
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: