mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-04 04:58:00 +00:00
Bug 711721 - merge nsIScriptError and nsIScriptError2 interfaces; r=neil, sr=bzbarsky
This commit is contained in:
parent
5d8935e244
commit
002cb306a6
@ -337,7 +337,7 @@ var Scratchpad = {
|
||||
let contentWindow = this.gBrowser.selectedBrowser.contentWindow;
|
||||
|
||||
let scriptError = Cc["@mozilla.org/scripterror;1"].
|
||||
createInstance(Ci.nsIScriptError2);
|
||||
createInstance(Ci.nsIScriptError);
|
||||
|
||||
scriptError.initWithWindowID(ex.message + "\n" + ex.stack, ex.fileName,
|
||||
"", ex.lineNumber, 0, scriptError.errorFlag,
|
||||
|
@ -6527,7 +6527,6 @@ HUDConsoleObserver = {
|
||||
}
|
||||
|
||||
if (!(aSubject instanceof Ci.nsIScriptError) ||
|
||||
!(aSubject instanceof Ci.nsIScriptError2) ||
|
||||
!aSubject.outerWindowID) {
|
||||
return;
|
||||
}
|
||||
|
@ -21,8 +21,7 @@ let TestObserver = {
|
||||
|
||||
observe: function test_observe(aSubject)
|
||||
{
|
||||
if (!(aSubject instanceof Ci.nsIScriptError) ||
|
||||
!(aSubject instanceof Ci.nsIScriptError2)) {
|
||||
if (!(aSubject instanceof Ci.nsIScriptError)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -2831,7 +2831,7 @@ nsContentUtils::ReportToConsole(PRUint32 aErrorFlags,
|
||||
if (aURI)
|
||||
aURI->GetSpec(spec);
|
||||
|
||||
nsCOMPtr<nsIScriptError2> errorObject =
|
||||
nsCOMPtr<nsIScriptError> errorObject =
|
||||
do_CreateInstance(NS_SCRIPTERROR_CONTRACTID, &rv);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
@ -2843,8 +2843,7 @@ nsContentUtils::ReportToConsole(PRUint32 aErrorFlags,
|
||||
innerWindowID);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
nsCOMPtr<nsIScriptError> logError = do_QueryInterface(errorObject);
|
||||
return sConsoleService->LogMessage(logError);
|
||||
return sConsoleService->LogMessage(errorObject);
|
||||
}
|
||||
|
||||
bool
|
||||
|
@ -1091,7 +1091,7 @@ nsEventSource::PrintErrorOnConsole(const char *aBundleURI,
|
||||
do_GetService(NS_CONSOLESERVICE_CONTRACTID, &rv));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
nsCOMPtr<nsIScriptError2> errObj(
|
||||
nsCOMPtr<nsIScriptError> errObj(
|
||||
do_CreateInstance(NS_SCRIPTERROR_CONTRACTID, &rv));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
@ -1106,16 +1106,16 @@ nsEventSource::PrintErrorOnConsole(const char *aBundleURI,
|
||||
}
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
errObj->InitWithWindowID(message.get(),
|
||||
mScriptFile.get(),
|
||||
nsnull,
|
||||
mScriptLine, 0,
|
||||
nsIScriptError::errorFlag,
|
||||
"Event Source", mInnerWindowID);
|
||||
rv = errObj->InitWithWindowID(message.get(),
|
||||
mScriptFile.get(),
|
||||
nsnull,
|
||||
mScriptLine, 0,
|
||||
nsIScriptError::errorFlag,
|
||||
"Event Source", mInnerWindowID);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
// print the error message directly to the JS console
|
||||
nsCOMPtr<nsIScriptError> logError = do_QueryInterface(errObj);
|
||||
rv = console->LogMessage(logError);
|
||||
rv = console->LogMessage(errObj);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
return NS_OK;
|
||||
|
@ -127,7 +127,7 @@ nsWebSocket::PrintErrorOnConsole(const char *aBundleURI,
|
||||
do_GetService(NS_CONSOLESERVICE_CONTRACTID, &rv));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
nsCOMPtr<nsIScriptError2> errorObject(
|
||||
nsCOMPtr<nsIScriptError> errorObject(
|
||||
do_CreateInstance(NS_SCRIPTERROR_CONTRACTID, &rv));
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
@ -142,15 +142,15 @@ nsWebSocket::PrintErrorOnConsole(const char *aBundleURI,
|
||||
}
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
errorObject->InitWithWindowID(message.get(),
|
||||
NS_ConvertUTF8toUTF16(mScriptFile).get(),
|
||||
nsnull, mScriptLine, 0,
|
||||
nsIScriptError::errorFlag, "Web Socket",
|
||||
mInnerWindowID);
|
||||
rv = errorObject->InitWithWindowID(message.get(),
|
||||
NS_ConvertUTF8toUTF16(mScriptFile).get(),
|
||||
nsnull, mScriptLine, 0,
|
||||
nsIScriptError::errorFlag, "Web Socket",
|
||||
mInnerWindowID);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
// print the error message directly to the JS console
|
||||
nsCOMPtr<nsIScriptError> logError(do_QueryInterface(errorObject));
|
||||
rv = console->LogMessage(logError);
|
||||
rv = console->LogMessage(errorObject);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
return NS_OK;
|
||||
|
@ -401,7 +401,7 @@ nsXMLDocument::Load(const nsAString& aUrl, bool *aReturn)
|
||||
nsAutoString error;
|
||||
error.AssignLiteral("Cross site loading using document.load is no "
|
||||
"longer supported. Use XMLHttpRequest instead.");
|
||||
nsCOMPtr<nsIScriptError2> errorObject =
|
||||
nsCOMPtr<nsIScriptError> errorObject =
|
||||
do_CreateInstance(NS_SCRIPTERROR_CONTRACTID, &rv);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
@ -416,9 +416,8 @@ nsXMLDocument::Load(const nsAString& aUrl, bool *aReturn)
|
||||
|
||||
nsCOMPtr<nsIConsoleService> consoleService =
|
||||
do_GetService(NS_CONSOLESERVICE_CONTRACTID);
|
||||
nsCOMPtr<nsIScriptError> logError = do_QueryInterface(errorObject);
|
||||
if (consoleService && logError) {
|
||||
consoleService->LogMessage(logError);
|
||||
if (consoleService) {
|
||||
consoleService->LogMessage(errorObject);
|
||||
}
|
||||
|
||||
return NS_ERROR_DOM_SECURITY_ERR;
|
||||
|
@ -1728,7 +1728,7 @@ PrintWarningOnConsole(JSContext *cx, const char *stringBundleProperty)
|
||||
return;
|
||||
}
|
||||
|
||||
nsCOMPtr<nsIScriptError2> scriptError =
|
||||
nsCOMPtr<nsIScriptError> scriptError =
|
||||
do_CreateInstance(NS_SCRIPTERROR_CONTRACTID);
|
||||
if (!scriptError) {
|
||||
return;
|
||||
@ -1761,9 +1761,8 @@ PrintWarningOnConsole(JSContext *cx, const char *stringBundleProperty)
|
||||
"DOM:HTML",
|
||||
nsJSUtils::GetCurrentlyRunningCodeInnerWindowID(cx));
|
||||
|
||||
if (NS_SUCCEEDED(rv)){
|
||||
nsCOMPtr<nsIScriptError> logError = do_QueryInterface(scriptError);
|
||||
consoleService->LogMessage(logError);
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
consoleService->LogMessage(scriptError);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -371,18 +371,10 @@ public:
|
||||
? "chrome javascript"
|
||||
: "content javascript";
|
||||
|
||||
nsCOMPtr<nsIScriptError2> error2(do_QueryInterface(errorObject));
|
||||
if (error2) {
|
||||
rv = error2->InitWithWindowID(mErrorMsg.get(), mFileName.get(),
|
||||
mSourceLine.get(),
|
||||
mLineNr, mColumn, mFlags,
|
||||
category, mInnerWindowID);
|
||||
} else {
|
||||
rv = errorObject->Init(mErrorMsg.get(), mFileName.get(),
|
||||
mSourceLine.get(),
|
||||
mLineNr, mColumn, mFlags,
|
||||
category);
|
||||
}
|
||||
rv = errorObject->InitWithWindowID(mErrorMsg.get(), mFileName.get(),
|
||||
mSourceLine.get(),
|
||||
mLineNr, mColumn, mFlags,
|
||||
category, mInnerWindowID);
|
||||
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
nsCOMPtr<nsIConsoleService> consoleService =
|
||||
|
@ -1109,36 +1109,31 @@ public:
|
||||
}
|
||||
|
||||
// Otherwise log an error to the error console.
|
||||
nsCOMPtr<nsIScriptError2> scriptError =
|
||||
nsCOMPtr<nsIScriptError> scriptError =
|
||||
do_CreateInstance(NS_SCRIPTERROR_CONTRACTID);
|
||||
NS_WARN_IF_FALSE(scriptError, "Faild to create script error!");
|
||||
|
||||
nsCOMPtr<nsIConsoleMessage> consoleMessage;
|
||||
NS_WARN_IF_FALSE(scriptError, "Failed to create script error!");
|
||||
|
||||
if (scriptError) {
|
||||
if (NS_SUCCEEDED(scriptError->InitWithWindowID(aMessage.get(),
|
||||
aFilename.get(),
|
||||
aLine.get(), aLineNumber,
|
||||
aColumnNumber, aFlags,
|
||||
"Web Worker",
|
||||
aInnerWindowId))) {
|
||||
consoleMessage = do_QueryInterface(scriptError);
|
||||
NS_ASSERTION(consoleMessage, "This should never fail!");
|
||||
}
|
||||
else {
|
||||
if (NS_FAILED(scriptError->InitWithWindowID(aMessage.get(),
|
||||
aFilename.get(),
|
||||
aLine.get(), aLineNumber,
|
||||
aColumnNumber, aFlags,
|
||||
"Web Worker",
|
||||
aInnerWindowId))) {
|
||||
NS_WARNING("Failed to init script error!");
|
||||
scriptError = nsnull;
|
||||
}
|
||||
}
|
||||
|
||||
nsCOMPtr<nsIConsoleService> consoleService =
|
||||
do_GetService(NS_CONSOLESERVICE_CONTRACTID);
|
||||
NS_WARN_IF_FALSE(consoleService, "Faild to get console service!");
|
||||
NS_WARN_IF_FALSE(consoleService, "Failed to get console service!");
|
||||
|
||||
bool logged = false;
|
||||
|
||||
if (consoleService) {
|
||||
if (consoleMessage) {
|
||||
if (NS_SUCCEEDED(consoleService->LogMessage(consoleMessage))) {
|
||||
if (scriptError) {
|
||||
if (NS_SUCCEEDED(consoleService->LogMessage(scriptError))) {
|
||||
logged = true;
|
||||
}
|
||||
else {
|
||||
|
@ -130,23 +130,21 @@ Decoder::Finish()
|
||||
// Log data errors to the error console
|
||||
nsCOMPtr<nsIConsoleService> consoleService =
|
||||
do_GetService(NS_CONSOLESERVICE_CONTRACTID);
|
||||
nsCOMPtr<nsIScriptError2> errorObject =
|
||||
nsCOMPtr<nsIScriptError> errorObject =
|
||||
do_CreateInstance(NS_SCRIPTERROR_CONTRACTID);
|
||||
|
||||
if (consoleService && errorObject && !HasDecoderError()) {
|
||||
nsAutoString msg(NS_LITERAL_STRING("Image corrupt or truncated: ") +
|
||||
NS_ConvertASCIItoUTF16(mImage.GetURIString()));
|
||||
|
||||
errorObject->InitWithWindowID
|
||||
(msg.get(),
|
||||
NS_ConvertUTF8toUTF16(mImage.GetURIString()).get(),
|
||||
nsnull,
|
||||
0, 0, nsIScriptError::errorFlag,
|
||||
"Image", mImage.InnerWindowID()
|
||||
);
|
||||
|
||||
nsCOMPtr<nsIScriptError> error = do_QueryInterface(errorObject);
|
||||
consoleService->LogMessage(error);
|
||||
if (NS_SUCCEEDED(errorObject->InitWithWindowID(
|
||||
msg.get(),
|
||||
NS_ConvertUTF8toUTF16(mImage.GetURIString()).get(),
|
||||
nsnull, 0, 0, nsIScriptError::errorFlag,
|
||||
"Image", mImage.InnerWindowID()
|
||||
))) {
|
||||
consoleService->LogMessage(errorObject);
|
||||
}
|
||||
}
|
||||
|
||||
// If we only have a data error, see if things are worth salvaging
|
||||
|
@ -43,7 +43,7 @@
|
||||
#include "nsISupports.idl"
|
||||
#include "nsIConsoleMessage.idl"
|
||||
|
||||
[scriptable, uuid(537ff844-c325-4047-92f5-e1c292d108bc)]
|
||||
[scriptable, uuid(c6dd877a-87b6-47cc-968d-90f4514ec65f)]
|
||||
interface nsIScriptError : nsIConsoleMessage
|
||||
{
|
||||
/** pseudo-flag for default case */
|
||||
@ -90,23 +90,6 @@ interface nsIScriptError : nsIConsoleMessage
|
||||
*/
|
||||
readonly attribute long long timeStamp;
|
||||
|
||||
void init(in wstring message,
|
||||
in wstring sourceName,
|
||||
in wstring sourceLine,
|
||||
in PRUint32 lineNumber,
|
||||
in PRUint32 columnNumber,
|
||||
in PRUint32 flags,
|
||||
in string category);
|
||||
|
||||
AUTF8String toString();
|
||||
};
|
||||
|
||||
/**
|
||||
* An interface that nsIScriptError objects can implement to allow
|
||||
* them to be initialized with a window id.
|
||||
*/
|
||||
[scriptable, uuid(444c5e66-a85d-4a3b-83ce-4c71882b09a3)]
|
||||
interface nsIScriptError2 : nsISupports {
|
||||
/* Get the window id this was initialized with. Zero will be
|
||||
returned if init() was used instead of initWithWindowID(). */
|
||||
readonly attribute unsigned long long outerWindowID;
|
||||
@ -115,6 +98,14 @@ interface nsIScriptError2 : nsISupports {
|
||||
returned if init() was used instead of initWithWindowID(). */
|
||||
readonly attribute unsigned long long innerWindowID;
|
||||
|
||||
void init(in wstring message,
|
||||
in wstring sourceName,
|
||||
in wstring sourceLine,
|
||||
in PRUint32 lineNumber,
|
||||
in PRUint32 columnNumber,
|
||||
in PRUint32 flags,
|
||||
in string category);
|
||||
|
||||
/* This should be called instead of nsIScriptError.init to
|
||||
initialize with a window id. The window id should be for the
|
||||
inner window associated with this error. */
|
||||
@ -126,6 +117,8 @@ interface nsIScriptError2 : nsISupports {
|
||||
in PRUint32 flags,
|
||||
in string category,
|
||||
in unsigned long long innerWindowID);
|
||||
|
||||
AUTF8String toString();
|
||||
};
|
||||
|
||||
%{ C++
|
||||
|
@ -2692,7 +2692,7 @@ nsXPCComponents_Utils::ReportError(const JS::Value &error, JSContext *cx)
|
||||
|
||||
nsCOMPtr<nsIConsoleService> console(do_GetService(NS_CONSOLESERVICE_CONTRACTID));
|
||||
|
||||
nsCOMPtr<nsIScriptError2> scripterr(do_CreateInstance(NS_SCRIPTERROR_CONTRACTID));
|
||||
nsCOMPtr<nsIScriptError> scripterr(do_CreateInstance(NS_SCRIPTERROR_CONTRACTID));
|
||||
|
||||
if (!scripterr || !console)
|
||||
return NS_OK;
|
||||
@ -2715,8 +2715,7 @@ nsXPCComponents_Utils::ReportError(const JS::Value &error, JSContext *cx)
|
||||
column, err->flags, "XPConnect JavaScript", innerWindowID);
|
||||
NS_ENSURE_SUCCESS(rv, NS_OK);
|
||||
|
||||
nsCOMPtr<nsIScriptError> logError = do_QueryInterface(scripterr);
|
||||
console->LogMessage(logError);
|
||||
console->LogMessage(scripterr);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
@ -2748,8 +2747,7 @@ nsXPCComponents_Utils::ReportError(const JS::Value &error, JSContext *cx)
|
||||
nsnull, lineNo, 0, 0, "XPConnect JavaScript", innerWindowID);
|
||||
NS_ENSURE_SUCCESS(rv, NS_OK);
|
||||
|
||||
nsCOMPtr<nsIScriptError> logError = do_QueryInterface(scripterr);
|
||||
console->LogMessage(logError);
|
||||
console->LogMessage(scripterr);
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
|
@ -1133,14 +1133,12 @@ nsXPCWrappedJSClass::CheckForException(XPCCallContext & ccx,
|
||||
rv = location->GetFilename(getter_Copies(sourceName));
|
||||
}
|
||||
|
||||
nsCOMPtr<nsIScriptError2> scriptError2 =
|
||||
do_QueryInterface(scriptError);
|
||||
rv = scriptError2->InitWithWindowID(newMessage.get(),
|
||||
NS_ConvertASCIItoUTF16(sourceName).get(),
|
||||
nsnull,
|
||||
lineNumber, 0, 0,
|
||||
"XPConnect JavaScript",
|
||||
nsJSUtils::GetCurrentlyRunningCodeInnerWindowID(cx));
|
||||
rv = scriptError->InitWithWindowID(newMessage.get(),
|
||||
NS_ConvertASCIItoUTF16(sourceName).get(),
|
||||
nsnull,
|
||||
lineNumber, 0, 0,
|
||||
"XPConnect JavaScript",
|
||||
nsJSUtils::GetCurrentlyRunningCodeInnerWindowID(cx));
|
||||
if (NS_FAILED(rv))
|
||||
scriptError = nsnull;
|
||||
}
|
||||
|
@ -46,8 +46,7 @@
|
||||
#include "nsGlobalWindow.h"
|
||||
#include "nsPIDOMWindow.h"
|
||||
|
||||
NS_IMPL_THREADSAFE_ISUPPORTS3(nsScriptError, nsIConsoleMessage, nsIScriptError,
|
||||
nsIScriptError2)
|
||||
NS_IMPL_THREADSAFE_ISUPPORTS2(nsScriptError, nsIConsoleMessage, nsIScriptError)
|
||||
|
||||
nsScriptError::nsScriptError()
|
||||
: mMessage(),
|
||||
|
@ -3936,8 +3936,7 @@ xpc_InstallJSDebuggerKeywordHandler(JSRuntime* rt);
|
||||
|
||||
// Definition of nsScriptError, defined here because we lack a place to put
|
||||
// XPCOM objects associated with the JavaScript engine.
|
||||
class nsScriptError : public nsIScriptError,
|
||||
public nsIScriptError2 {
|
||||
class nsScriptError : public nsIScriptError {
|
||||
public:
|
||||
nsScriptError();
|
||||
|
||||
@ -3948,7 +3947,6 @@ public:
|
||||
NS_DECL_ISUPPORTS
|
||||
NS_DECL_NSICONSOLEMESSAGE
|
||||
NS_DECL_NSISCRIPTERROR
|
||||
NS_DECL_NSISCRIPTERROR2
|
||||
|
||||
private:
|
||||
nsString mMessage;
|
||||
|
@ -424,7 +424,7 @@ nsCSSScanner::OutputError()
|
||||
}
|
||||
|
||||
nsresult rv;
|
||||
nsCOMPtr<nsIScriptError2> errorObject =
|
||||
nsCOMPtr<nsIScriptError> errorObject =
|
||||
do_CreateInstance(gScriptErrorFactory, &rv);
|
||||
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
@ -437,8 +437,7 @@ nsCSSScanner::OutputError()
|
||||
"CSS Parser",
|
||||
mInnerWindowID);
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
nsCOMPtr<nsIScriptError> logError = do_QueryInterface(errorObject);
|
||||
gConsoleService->LogMessage(logError);
|
||||
gConsoleService->LogMessage(errorObject);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -797,7 +797,7 @@ nsUserFontSet::LogMessage(gfxProxyFontEntry *aProxy,
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
}
|
||||
|
||||
nsCOMPtr<nsIScriptError2> scriptError =
|
||||
nsCOMPtr<nsIScriptError> scriptError =
|
||||
do_CreateInstance(NS_SCRIPTERROR_CONTRACTID, &rv);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
|
||||
@ -809,11 +809,8 @@ nsUserFontSet::LogMessage(gfxProxyFontEntry *aProxy,
|
||||
aFlags, // flags
|
||||
"CSS Loader", // category (make separate?)
|
||||
innerWindowID);
|
||||
if (NS_SUCCEEDED(rv)){
|
||||
nsCOMPtr<nsIScriptError> logError = do_QueryInterface(scriptError);
|
||||
if (logError) {
|
||||
console->LogMessage(logError);
|
||||
}
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
console->LogMessage(scriptError);
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
|
@ -947,13 +947,12 @@ nsExpatDriver::HandleError()
|
||||
nsCOMPtr<nsIScriptError> serr(do_CreateInstance(NS_SCRIPTERROR_CONTRACTID));
|
||||
nsresult rv = NS_ERROR_FAILURE;
|
||||
if (serr) {
|
||||
nsCOMPtr<nsIScriptError2> serr2(do_QueryInterface(serr));
|
||||
rv = serr2->InitWithWindowID(description.get(),
|
||||
mURISpec.get(),
|
||||
mLastLine.get(),
|
||||
lineNumber, colNumber,
|
||||
nsIScriptError::errorFlag, "malformed-xml",
|
||||
mInnerWindowID);
|
||||
rv = serr->InitWithWindowID(description.get(),
|
||||
mURISpec.get(),
|
||||
mLastLine.get(),
|
||||
lineNumber, colNumber,
|
||||
nsIScriptError::errorFlag, "malformed-xml",
|
||||
mInnerWindowID);
|
||||
}
|
||||
|
||||
// If it didn't initialize, we can't do any logging.
|
||||
|
Loading…
x
Reference in New Issue
Block a user