Fixing bug 408257. Make JS executed from plugins reset the slow script timeout if not called from within JS. r+sr=jonas@sicking.cc

This commit is contained in:
jst%mozilla.org 2008-01-21 05:34:17 +00:00
Родитель 0e7f93e216
Коммит c110ebe9d6
1 изменённых файлов: 17 добавлений и 1 удалений

Просмотреть файл

@ -42,6 +42,7 @@
#include "nsPIPluginInstancePeer.h"
#include "nsIScriptGlobalObject.h"
#include "nsIScriptContext.h"
#include "nsDOMJSUtils.h"
#include "nsIDocument.h"
#include "nsIJSRuntimeService.h"
#include "nsIJSContextStack.h"
@ -265,7 +266,22 @@ struct AutoCXPusher
~AutoCXPusher()
{
sContextStack->Pop(nsnull);
JSContext *cx = nsnull;
sContextStack->Pop(&cx);
JSContext *currentCx = nsnull;
sContextStack->Peek(&currentCx);
if (!currentCx) {
// No JS is running, tell the context we're done executing
// script.
nsIScriptContext *scx = GetScriptContextFromJSContext(cx);
if (scx) {
scx->ScriptEvaluated(PR_TRUE);
}
}
OnWrapperDestroyed();
}