DOM: getting rid of JS_GetContextPrivate wherever possible. Use static parent
links where we can. When we do need to find this info about the caller
we call a function that knows how to get that info rather than inline calls
to JS_GetContextPrivate. This is all required for calling DOM objects on
non-DOM JSContexts as we do via xpconnect.
XPConnect: basic refactoring work to disassociate wrappers from the JSContext
that was active when the wrapper was constructed. This allows for calling into
wrapped JS objects on the right JSContext and for proper grouping of wrapped
native objects so that they can share proto objects. This also allows for
better sharing of objects and lays the foundations for threadsafety and
interface flattening.
Also, xpconnect tests are reorganized and improved.
fixes bugs: 13419, 17736, 17746, 17952, 22086
r=vidur r=mccabe r=norris r=cbegle
a=chofmann
git-svn-id: svn://10.0.0.236/trunk@56202 18797224-902f-48f8-a5cc-f745e15eee43
#ifdef strftime formatting string "%#c" ('format to 4-digit date string, any format') to "%c" for non-Windows platform, as only Windows accepts, requires or understands that extra '#' to get a 4-digit date.
Thanks to KerryGinn@computer.org for spotting this one. (document.lastModified came out as "%#c" on a mac.)
r=Pavlov
a=choffman.
git-svn-id: svn://10.0.0.236/trunk@56089 18797224-902f-48f8-a5cc-f745e15eee43
fixed the webshell leak in <textarea> and <input type=text|password>
the problem was the new nsWebShell::SetDocument() call was indirectly causing nsHTMLDocument to instantiate a parser
and fire off a parse. bad circular references ensued. The fix is to use the "aCommand" param to pass a hint
to the nsHTMLDocument, telling it there's no need to involve a parser.
in the simple case, we no longer leak webshells. That is, if you open mozilla.exe, look at a page (whether it has a text
control on it or not), and shut down the app, no webshell is leaked. If I browse around, sometimes we still leak a webshell
somewhere. I haven't figured out exactly where that is yet. A guess is history, which is in the process of being reworked
anyway.
r=mscott
a=chofmann
git-svn-id: svn://10.0.0.236/trunk@55796 18797224-902f-48f8-a5cc-f745e15eee43
selection, because output needs to get style nodes on the body. r=sfraser
git-svn-id: svn://10.0.0.236/trunk@55681 18797224-902f-48f8-a5cc-f745e15eee43
2.) WebShell now implements the new nsIScriptGlobalObjectOwner.
3.) WebShell supports GetInterface to nsIScriptGlobalObject.
4.) Documents no longer carry around a reference to nsIScriptContextOwner. Instead they hold on to a nsIScriptGlobalObject. nsIDocument::GetScriptContextOwner has now become nsIDocument::GetScriptGlobalObject(). Same change to the set methods.
git-svn-id: svn://10.0.0.236/trunk@55175 18797224-902f-48f8-a5cc-f745e15eee43
* Implement site-specific security policies (bug 858)
r=mstoltz
* Use Recycle rather than delete[] to clean up Purify logs
r=law
git-svn-id: svn://10.0.0.236/trunk@53631 18797224-902f-48f8-a5cc-f745e15eee43
14443 "Same origin" security policy may be circumvented using docu
14820 Fixing up the relationship between nsCodeBasePrincipal and n
14919 Crash in JS MM code
Reviewed by mstoltz, approved by scc.
git-svn-id: svn://10.0.0.236/trunk@49647 18797224-902f-48f8-a5cc-f745e15eee43
to add new flags (pass a flag in the constructor, rather than specific
booleans. This in order to fix:
11249: Add flag to write only the body in html output.
git-svn-id: svn://10.0.0.236/trunk@44308 18797224-902f-48f8-a5cc-f745e15eee43