Bug 1426501 - Add nsINetUtil.notImplemented() method that always throws
MozReview-Commit-ID: Ij3M5Ydtlac
--- a/dom/bindings/test/TestInterfaceJS.js
+++ b/dom/bindings/test/TestInterfaceJS.js
@@ -79,23 +79,18 @@ TestInterfaceJS.prototype = {
},
testThrowNsresult: function() {
throw Components.results.NS_BINDING_ABORTED;
},
testThrowNsresultFromNative: function(x) {
// We want to throw an exception that we generate from an nsresult thrown
- // by a C++ component. Ideally we'd have one explicitly for testing, but
- // for now just piggyback on nsStandardURL.
- var url = Components.classes["@mozilla.org/network/standard-url;1"]
- .createInstance(Ci.nsIURI);
- url.QueryInterface(Ci.nsIMutable);
- url.mutable = false;
- url.spec = "http://example.com";
+ // by a C++ component.
+ Services.netUtils.notImplemented();
},
testThrowCallbackError: function(callback) {
callback();
},
testThrowXraySelfHosted: function() {
this._win.Array.indexOf();
--- a/netwerk/base/nsINetUtil.idl
+++ b/netwerk/base/nsINetUtil.idl
@@ -222,9 +222,16 @@ interface nsINetUtil : nsISupports
*
* @param aPolicyString
* the policy string given as attribute
* @return aPolicyEnum
* referrer policy code from nsIHttpChannel.idl, (see parser in
* ReferrerPolicy.h for details)
*/
unsigned long parseAttributePolicyString(in AString aPolicyString);
+
+
+ /**
+ * This is a void method that is C++ implemented and always
+ * returns NS_ERROR_NOT_IMPLEMENTED. To be used for testing.
+ */
+ void notImplemented();
};
--- a/netwerk/base/nsIOService.cpp
+++ b/netwerk/base/nsIOService.cpp
@@ -1904,10 +1904,16 @@ nsIOService::IsDataURIUniqueOpaqueOrigin
}
/*static*/ bool
nsIOService::BlockToplevelDataUriNavigations()
{
return sBlockToplevelDataUriNavigations;
}
+NS_IMETHODIMP
+nsIOService::NotImplemented()
+{
+ return NS_ERROR_NOT_IMPLEMENTED;
+}
+
} // namespace net
} // namespace mozilla