зеркало из https://github.com/mozilla/gecko-dev.git
- venkman only -
turn off verbose debugging for me push a thread event queue for necko before we enter a nested event loop
This commit is contained in:
Родитель
93959d48cc
Коммит
ea08067f65
|
@ -44,6 +44,7 @@
|
||||||
#include "nsIPref.h"
|
#include "nsIPref.h"
|
||||||
#include "nsICategoryManager.h"
|
#include "nsICategoryManager.h"
|
||||||
#include "nsIJSRuntimeService.h"
|
#include "nsIJSRuntimeService.h"
|
||||||
|
#include "nsIEventQueueService.h"
|
||||||
#include "nsMemory.h"
|
#include "nsMemory.h"
|
||||||
#include "jsdebug.h"
|
#include "jsdebug.h"
|
||||||
|
|
||||||
|
@ -102,9 +103,10 @@ jsds_GCCallbackProc (JSContext *cx, JSGCStatus status);
|
||||||
*******************************************************************************/
|
*******************************************************************************/
|
||||||
|
|
||||||
static NS_DEFINE_CID(kAppShellCID, NS_APPSHELL_CID);
|
static NS_DEFINE_CID(kAppShellCID, NS_APPSHELL_CID);
|
||||||
|
static NS_DEFINE_CID(kEventQueueServiceCID, NS_EVENTQUEUESERVICE_CID);
|
||||||
|
|
||||||
const char jsdServiceContractID[] = "@mozilla.org/js/jsd/debugger-service;1";
|
const char jsdServiceCtrID[] = "@mozilla.org/js/jsd/debugger-service;1";
|
||||||
const char jsdASObserverContractID[] = "@mozilla.org/js/jsd/app-start-observer;1";
|
const char jsdASObserverCtrID[] = "@mozilla.org/js/jsd/app-start-observer;1";
|
||||||
|
|
||||||
#ifdef DEBUG_verbose
|
#ifdef DEBUG_verbose
|
||||||
PRUint32 gScriptCount = 0;
|
PRUint32 gScriptCount = 0;
|
||||||
|
@ -1332,17 +1334,21 @@ jsdService::EnterNestedEventLoop (PRUint32 *_rval)
|
||||||
{
|
{
|
||||||
nsCOMPtr<nsIAppShell> appShell(do_CreateInstance(kAppShellCID));
|
nsCOMPtr<nsIAppShell> appShell(do_CreateInstance(kAppShellCID));
|
||||||
NS_ENSURE_TRUE(appShell, NS_ERROR_FAILURE);
|
NS_ENSURE_TRUE(appShell, NS_ERROR_FAILURE);
|
||||||
|
nsCOMPtr<nsIEventQueueService>
|
||||||
|
eventService(do_GetService(kEventQueueServiceCID));
|
||||||
|
NS_ENSURE_TRUE(eventService, NS_ERROR_FAILURE);
|
||||||
|
|
||||||
appShell->Create(0, nsnull);
|
appShell->Create(0, nsnull);
|
||||||
appShell->Spinup();
|
appShell->Spinup();
|
||||||
// Store locally so it doesn't die on us
|
|
||||||
|
|
||||||
nsCOMPtr<nsIJSContextStack>
|
nsCOMPtr<nsIJSContextStack>
|
||||||
stack(do_GetService("@mozilla.org/js/xpc/ContextStack;1"));
|
stack(do_GetService("@mozilla.org/js/xpc/ContextStack;1"));
|
||||||
nsresult rv = NS_OK;
|
nsresult rv = NS_OK;
|
||||||
PRUint32 nestLevel = ++mNestedLoopLevel;
|
PRUint32 nestLevel = ++mNestedLoopLevel;
|
||||||
|
|
||||||
if(stack && NS_SUCCEEDED(stack->Push(nsnull)))
|
nsCOMPtr<nsIEventQueue> eventQ;
|
||||||
|
if (stack && NS_SUCCEEDED(stack->Push(nsnull)) &&
|
||||||
|
NS_SUCCEEDED(eventService->PushThreadEventQueue(getter_AddRefs(eventQ))))
|
||||||
{
|
{
|
||||||
while(NS_SUCCEEDED(rv) && mNestedLoopLevel >= nestLevel)
|
while(NS_SUCCEEDED(rv) && mNestedLoopLevel >= nestLevel)
|
||||||
{
|
{
|
||||||
|
@ -1363,6 +1369,7 @@ jsdService::EnterNestedEventLoop (PRUint32 *_rval)
|
||||||
else
|
else
|
||||||
rv = NS_ERROR_FAILURE;
|
rv = NS_ERROR_FAILURE;
|
||||||
|
|
||||||
|
eventService->PopThreadEventQueue(eventQ);
|
||||||
appShell->Spindown();
|
appShell->Spindown();
|
||||||
|
|
||||||
NS_ASSERTION (mNestedLoopLevel <= nestLevel,
|
NS_ASSERTION (mNestedLoopLevel <= nestLevel,
|
||||||
|
@ -1687,7 +1694,7 @@ RegisterASObserver (nsIComponentManager *aCompMgr, nsIFile *aPath,
|
||||||
if (NS_SUCCEEDED(rv)) {
|
if (NS_SUCCEEDED(rv)) {
|
||||||
rv = categoryManager->AddCategoryEntry(APPSTART_CATEGORY,
|
rv = categoryManager->AddCategoryEntry(APPSTART_CATEGORY,
|
||||||
"JSDebugger app-start observer",
|
"JSDebugger app-start observer",
|
||||||
jsdASObserverContractID,
|
jsdASObserverCtrID,
|
||||||
PR_TRUE, PR_TRUE,nsnull);
|
PR_TRUE, PR_TRUE,nsnull);
|
||||||
}
|
}
|
||||||
return rv;
|
return rv;
|
||||||
|
@ -1711,8 +1718,8 @@ UnRegisterASObserver(nsIComponentManager *aCompMgr, nsIFile *aPath,
|
||||||
}
|
}
|
||||||
|
|
||||||
static nsModuleComponentInfo components[] = {
|
static nsModuleComponentInfo components[] = {
|
||||||
{"JSDService", JSDSERVICE_CID, jsdServiceContractID, jsdServiceConstructor},
|
{"JSDService", JSDSERVICE_CID, jsdServiceCtrID, jsdServiceConstructor},
|
||||||
{"JSDASObserver", JSDASO_CID, jsdASObserverContractID,
|
{"JSDASObserver", JSDASO_CID, jsdASObserverCtrID,
|
||||||
jsdASObserverConstructor, RegisterASObserver, UnRegisterASObserver }
|
jsdASObserverConstructor, RegisterASObserver, UnRegisterASObserver }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -42,9 +42,9 @@
|
||||||
#include "nsCOMPtr.h"
|
#include "nsCOMPtr.h"
|
||||||
#include "nspr.h"
|
#include "nspr.h"
|
||||||
|
|
||||||
#if defined(DEBUG_rginda_l)
|
// #if defined(DEBUG_rginda_l)
|
||||||
# define DEBUG_verbose
|
// # define DEBUG_verbose
|
||||||
#endif
|
// #endif
|
||||||
|
|
||||||
struct LiveEphemeral {
|
struct LiveEphemeral {
|
||||||
/* link in a chain of live values list */
|
/* link in a chain of live values list */
|
||||||
|
|
Загрузка…
Ссылка в новой задаче