mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 687134 - Get at the JSContext through IDL for pccount methods; r=bholley
This commit is contained in:
parent
f97cb260f5
commit
e696a7d909
@ -1982,77 +1982,37 @@ nsDOMWindowUtils::GetFileReferences(const nsAString& aDatabaseName,
|
|||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline JSContext *
|
|
||||||
GetJSContext()
|
|
||||||
{
|
|
||||||
nsCOMPtr<nsIXPConnect> xpc = nsContentUtils::XPConnect();
|
|
||||||
|
|
||||||
// get the xpconnect native call context
|
|
||||||
nsAXPCNativeCallContext *cc = nsnull;
|
|
||||||
xpc->GetCurrentNativeCallContext(&cc);
|
|
||||||
if(!cc)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
// Get JSContext of current call
|
|
||||||
JSContext* cx;
|
|
||||||
nsresult rv = cc->GetJSContext(&cx);
|
|
||||||
if(NS_FAILED(rv) || !cx)
|
|
||||||
return NULL;
|
|
||||||
|
|
||||||
return cx;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
NS_IMETHODIMP
|
||||||
nsDOMWindowUtils::StartPCCountProfiling()
|
nsDOMWindowUtils::StartPCCountProfiling(JSContext* cx)
|
||||||
{
|
{
|
||||||
JSContext *cx = GetJSContext();
|
|
||||||
if (!cx)
|
|
||||||
return NS_ERROR_FAILURE;
|
|
||||||
|
|
||||||
js::StartPCCountProfiling(cx);
|
js::StartPCCountProfiling(cx);
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP
|
NS_IMETHODIMP
|
||||||
nsDOMWindowUtils::StopPCCountProfiling()
|
nsDOMWindowUtils::StopPCCountProfiling(JSContext* cx)
|
||||||
{
|
{
|
||||||
JSContext *cx = GetJSContext();
|
|
||||||
if (!cx)
|
|
||||||
return NS_ERROR_FAILURE;
|
|
||||||
|
|
||||||
js::StopPCCountProfiling(cx);
|
js::StopPCCountProfiling(cx);
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP
|
NS_IMETHODIMP
|
||||||
nsDOMWindowUtils::PurgePCCounts()
|
nsDOMWindowUtils::PurgePCCounts(JSContext* cx)
|
||||||
{
|
{
|
||||||
JSContext *cx = GetJSContext();
|
|
||||||
if (!cx)
|
|
||||||
return NS_ERROR_FAILURE;
|
|
||||||
|
|
||||||
js::PurgePCCounts(cx);
|
js::PurgePCCounts(cx);
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP
|
NS_IMETHODIMP
|
||||||
nsDOMWindowUtils::GetPCCountScriptCount(PRInt32 *result)
|
nsDOMWindowUtils::GetPCCountScriptCount(JSContext* cx, PRInt32 *result)
|
||||||
{
|
{
|
||||||
JSContext *cx = GetJSContext();
|
|
||||||
if (!cx)
|
|
||||||
return NS_ERROR_FAILURE;
|
|
||||||
|
|
||||||
*result = js::GetPCCountScriptCount(cx);
|
*result = js::GetPCCountScriptCount(cx);
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP
|
NS_IMETHODIMP
|
||||||
nsDOMWindowUtils::GetPCCountScriptSummary(PRInt32 script, nsAString& result)
|
nsDOMWindowUtils::GetPCCountScriptSummary(PRInt32 script, JSContext* cx, nsAString& result)
|
||||||
{
|
{
|
||||||
JSContext *cx = GetJSContext();
|
|
||||||
if (!cx)
|
|
||||||
return NS_ERROR_FAILURE;
|
|
||||||
|
|
||||||
JSString *text = js::GetPCCountScriptSummary(cx, script);
|
JSString *text = js::GetPCCountScriptSummary(cx, script);
|
||||||
if (!text)
|
if (!text)
|
||||||
return NS_ERROR_FAILURE;
|
return NS_ERROR_FAILURE;
|
||||||
@ -2066,12 +2026,8 @@ nsDOMWindowUtils::GetPCCountScriptSummary(PRInt32 script, nsAString& result)
|
|||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP
|
NS_IMETHODIMP
|
||||||
nsDOMWindowUtils::GetPCCountScriptContents(PRInt32 script, nsAString& result)
|
nsDOMWindowUtils::GetPCCountScriptContents(PRInt32 script, JSContext* cx, nsAString& result)
|
||||||
{
|
{
|
||||||
JSContext *cx = GetJSContext();
|
|
||||||
if (!cx)
|
|
||||||
return NS_ERROR_FAILURE;
|
|
||||||
|
|
||||||
JSString *text = js::GetPCCountScriptContents(cx, script);
|
JSString *text = js::GetPCCountScriptContents(cx, script);
|
||||||
if (!text)
|
if (!text)
|
||||||
return NS_ERROR_FAILURE;
|
return NS_ERROR_FAILURE;
|
||||||
|
@ -69,7 +69,7 @@ interface nsIDOMBlob;
|
|||||||
interface nsIDOMFile;
|
interface nsIDOMFile;
|
||||||
interface nsIFile;
|
interface nsIFile;
|
||||||
|
|
||||||
[scriptable, uuid(3af3c5ce-6f2a-47e7-acd0-555ed576fa82)]
|
[scriptable, uuid(9df58cf3-7094-4c8d-96f2-bebd765099fe)]
|
||||||
interface nsIDOMWindowUtils : nsISupports {
|
interface nsIDOMWindowUtils : nsISupports {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -945,28 +945,33 @@ interface nsIDOMWindowUtils : nsISupports {
|
|||||||
* Begin opcode-level profiling of all JavaScript execution in the window's
|
* Begin opcode-level profiling of all JavaScript execution in the window's
|
||||||
* runtime.
|
* runtime.
|
||||||
*/
|
*/
|
||||||
|
[implicit_jscontext]
|
||||||
void startPCCountProfiling();
|
void startPCCountProfiling();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Stop opcode-level profiling of JavaScript execution in the runtime, and
|
* Stop opcode-level profiling of JavaScript execution in the runtime, and
|
||||||
* collect all counts for use by getPCCount methods.
|
* collect all counts for use by getPCCount methods.
|
||||||
*/
|
*/
|
||||||
|
[implicit_jscontext]
|
||||||
void stopPCCountProfiling();
|
void stopPCCountProfiling();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Purge collected PC counters.
|
* Purge collected PC counters.
|
||||||
*/
|
*/
|
||||||
|
[implicit_jscontext]
|
||||||
void purgePCCounts();
|
void purgePCCounts();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the number of scripts with opcode-level profiling information.
|
* Get the number of scripts with opcode-level profiling information.
|
||||||
*/
|
*/
|
||||||
|
[implicit_jscontext]
|
||||||
long getPCCountScriptCount();
|
long getPCCountScriptCount();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get a JSON string for a short summary of a script and the PC counts
|
* Get a JSON string for a short summary of a script and the PC counts
|
||||||
* accumulated for it.
|
* accumulated for it.
|
||||||
*/
|
*/
|
||||||
|
[implicit_jscontext]
|
||||||
AString getPCCountScriptSummary(in long script);
|
AString getPCCountScriptSummary(in long script);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -974,5 +979,6 @@ interface nsIDOMWindowUtils : nsISupports {
|
|||||||
* including the decompilation of the script and placement of decompiled
|
* including the decompilation of the script and placement of decompiled
|
||||||
* operations within it, and PC counts for each operation.
|
* operations within it, and PC counts for each operation.
|
||||||
*/
|
*/
|
||||||
|
[implicit_jscontext]
|
||||||
AString getPCCountScriptContents(in long script);
|
AString getPCCountScriptContents(in long script);
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user