The behavior here is a bit weird because Document is still not a
WebIDL object, so calling createNodeIterator or createTreeWalker via
an Xray will call the XPCOM versions of those methods. That means
that I can't just disable XPCOM-based wrapping for TreeWalker and
NodeIterator altogether, unfortunately, which means a web page could
try stashing a TreeWalker in something like userdata and then getting
it back and end up wrapping it as an XPCOM object the second time.
I could "fix" that by adding a wrapper cache and whatnot, I guess, if
desired... But the problem will go away once we convert Document in
any case.
This does allow people to accidentally hit the slower path through use
of non-const strings, but I think that's OK now that we're mostly
autogenerating this stuff
There were merges in configure.in and some Makefile.in. None had any
conflicts. I spot verified the Makefile.in changes and confirmed that
the changes did not touch any DIRS* variables.
When nsPluginInstanceOwner passes input events to the plugin instance,
it's safe to reenter Gecko from plugin code and do anything, even
arbitrary script execution.
--HG--
extra : rebase_source : 815683c3027b906c4744495e8e1cfdb261e0c557
When Gecko is reentered from unsafe call sites, we allow the reentry, but we
suppress execution of the refresh driver to minimize the danger.
In this patch, we treat all sites as unsafe.
--HG--
extra : rebase_source : 0730f41c9158c868ed4ffcba74ff77abbfebc2cd
Make this test less sensitive to the timing of its own unloading by
passing on only the expected messages and not any messages that occur
during unloading. Such messages might cause exceptions (e.g.,
"'TypeError: can't access dead object' when calling method:
[nsIPrompt::alert]"), and those exceptions might in turn trigger leaks
in nsXPConnect that last until shutdown because we store the most recent
exception from a call to an XPCWrappedJS on the XPCJSRuntime through
shutdown (rather than reporting it, as we probably should, and then
freeing it), leaking the window.
The error we're fixing is
E/GeckoConsole( 397): [JavaScript Error: "NS_ERROR_FACTORY_NOT_REGISTERED: Component returned failure code: 0x80040154 (NS_ERROR_FACTORY_NOT_REGISTERED)
[nsIComponentManager.getClassObject]" {file: "resource://gre/modules/BrowserElementPromptService.jsm" line: 572}]
For some reason, we're running code before the vanilla prompt service is
instantiated. We don't know why this is happening, but this patch works
around the problem on B2G, which is the only place where we ship this
code.