r=av, sean@beatnik.com
bug=50547
This change allows the plugin to have a greater degree of control over
the plugin lifecycle. This change makes it possible for the plugin to
tell mozilla:
1. Whether or not they want to allow the browser to cache their
instance. Default is yes, do allow the browser to cache their instance.
2. If they answer no to 1, that is, no the plugin does not want the
browser to cache their instance, do you want the shutdown calls to be:
a.
inst->SetWindow(nsnull);
inst->Stop();
inst->Destroy();
b.
inst->Stop();
inst->Destroy();
inst->SetWindow(nsnull);
a. is the default.
Please visit the bug to see the patches:
http://bugzilla.mozilla.org/show_bug.cgi?id=50547
Detail:
This fix was requested by Stanley Ho of the Sun Java Plugin Team. A
conference call between Eric Krock, Andrei Volkov, Sun, Adobe and other
plugin vendors was used to agree on the above solution.
M modules/plugin/public/nsplugindefs.h
M modules/plugin/nglsrc/nsPluginHostImpl.cpp
M modules/plugin/nglsrc/nsPluginViewer.cpp
M layout/html/base/src/nsObjectFrame.cpp
nsTextTransformer.cpp.
I moved where we translate the nbsp to a (ascii 32 space character) until after the i18n routines are called, so they can properly account
for the space as non-breaking and therefore part of the first word in the block.
bug 39901 and 38396
nsHTMLImageLoader.*, nsImageFrame.cpp
I backed out the bad fix for 38396, and put in a new fix where I store a little state in the image loader flags for cases where the image
gets an unconstrained reflow and has %-based width. This does not handle %-based min-width or max-width, that would be a separate
bug that I'll file shortly. But this fixes the vast majority of real cases out there.
bug 18754
nsHRFrame.cpp, quirks.css, nsCSSFrameConstructor.cpp, last part of nsLineLayout.cpp
in quirks mode, I changed HR from a block element to a replaced inline element that acts like a block, using generated content to get
newlines before and after the HR. This isn't ideal, but it gets us backwards compatibility, and ian and dbaron have blessed the approach.
bug 50257
nsLineLayout.cpp
Did a couple of things in here:
* The actual fix is controlled by FIX_BUG_50257 #define symbol. This basically says that an break (BR) will always fit on a line.
A more general solution would probably be to round up to the nearest pixel, and if the thing is less than a pixel make it fit on a
line. This is a wimpier, safer solution.
* I noticed that the way we got the compatibility mode was way out of date, very wasteful. So I fixed that.
* I noticed that there were a bunch of redundant SetFlag calls. Since the flag variable is initialized to 0, setting a flag to 0 on a newly
created object is a waste.
nsBlockFrame.cpp -- just added a comment to some odd looking code, to make sure no one comes along later and breaks it
r=karnaze
The problem was we were over-eager in optimizing away a resize reflow for lines
that contain %-aware children. We were only looking at the first-level children
of a line, not all the children. Now, we compute a bit for each inline container
based on it's children, true if any of them are %-aware wrt any width measurement.
We propogate this bit upwards to a bit on the line itself, and check this bit during reflow.
Right now, nsIPluginManager::PostURL() has parameters for
postHeadersLength and postHeaders. However, nothing is being done with
these parameters. This bug fix utilizes these params for their intended
purpose: to allow the plugin the ability to add HTTP headers to a POST
data stream.
Important assumptions made by this fix:
* postHeadersLength is the correct length for postHeaders.
* postHeaders is a buffer of headers in the form
"HeaderName: HeaderValue\r\n"
each header, including the last, MUST be followed by "\r\n".
To affect this fix I had to modify the following files:
M docshell/base/nsDocShell.cpp
M docshell/base/nsDocShell.h
M docshell/base/nsWebShell.cpp
M modules/plugin/nglsrc/nsPluginViewer.cpp
M docshell/base/nsWebShell.h
M layout/html/base/src/nsObjectFrame.cpp
M modules/plugin/nglsrc/nsIPluginInstanceOwner.h
M modules/plugin/nglsrc/nsPluginHostImpl.cpp
M modules/plugin/nglsrc/nsPluginInstancePeer.cpp
M webshell/public/nsILinkHandler.h
Basically, it involved clearing a path so the headers arguments can make
it down to nsIPluginInstanceOwner::GetURL()'s implementation in
nsObjectFrame.cpp, where an nsIInputStream is made of the headers.
- Rewrote the auto-scrolling code to handle the fact that events are now passed
directly to frames, even though the mouse is outside the window, and the frame
is not in the clip view. The old code assumed that the viewport frame always
caught and handled the event, which was the way it used to be.
- AutoScroll methods now give the option of scrolling parent scrollable views.
r=jfrancis@netscape.com
Fix for bug #49467 (Spell checking not working in composer or NS 6 IM )
- We no longer throw an error if we are trying to scroll the selection
into view, when the selection is in a view that has no parent scrollable
view ... we just return NS_OK and do nothing.
r=syd@netscape.com