* we know all types frames may be cast to at compile time, so instead of extensible GUID IIDs, use a big enum (see nsQueryFrame::FrameIID)
* eliminate all vestiges of refcounting, since frames aren't refcounted
Some frames (SVG frames in particular) still implement nsISupports-derived interfaces, for example nsISVGValue. There is a FrameIID for nsISVGValue that lets you go from a frame to the XPCOM interface, but you can't query back.
r+sr=roc
nsITextControlFrame didn't have an IID the first time around, but this wasn't a compile error because nsITextControlFrame::kFrameIID inherited from nsIFormControlFrame::kFrameIID. I've added a static analysis pass to verify the correct behavior, since I can't figure out a way to make the compiler do it.
--HG--
extra : rebase_source : 4894a2ca0278e2ab92f27459db77165f8348cf41
* we know all types frames may be cast to at compile time, so instead of extensible GUID IIDs, use a big enum (see nsQueryFrame::FrameIID)
* eliminate all vestiges of refcounting, since frames aren't refcounted
Some frames (SVG frames in particular) still implement nsISupports-derived interfaces, for example nsISVGValue. There is a FrameIID for nsISVGValue that lets you go from a frame to the XPCOM interface, but you can't query back.
r+sr=roc
This patch locally causes two REFTEST-UNEXPECTED-PASS for Bidi stuff. It's possible that I accidentally fixed a bug, but I'm not sure, so I'm going to wait for the tinderboxes to confirm my local results.
- clean up nsObjectFrame and remove unnecessary includes
- make the instanceowner hold an owning reference to the content node
- use GetOwnerDoc rather than GetCurrentDoc
r+sr=bz
- add pseudo-classes for :-moz-type-unsupported and :-moz-has-handlerref (and a
content state for the former)
- make nsObjectLoadingContent return the right content state
- Add an XBL binding that gets instantiated for broken plugins
- Make it themable
- Remove a lot of now-unused code in nsObjectFrame
- Fixes pluginfinder.
r+sr=bz, r=mconnor
- Add some logging to nsObjectLoadingContent
- Add a StopPlugin() method to nsIObjectFrame
- Make use of that in PrepareInstanceOwner, so that loading a new plugin in
the same frame works as expected
- Initialize <applet> and <embed> elements to eType_Loading, so that the type is
only eType_Plugin if mURI and mContentType are valid
r+sr=bz
Move logic from nsObjectFrame::Instantiate(const char*, nsIURI*) into
nsObjectLoadingContent.
Also, fixes ext-to-type mapping if the URI does not implement nsIURL.
r+sr=bz
- Make object frames have no children
- Make the frame constructor construct a subdocumentframe, object frame or
image frame as appropriate
- start the load of <applet>, <embed> and <object> in content code
- fallback to alternate rendering correctly
NOTE: This checkin will break the plugin finder. This will be fixed soon.
r+sr=bz