use-chromeutils-generateqi

避免使用 XPCOMUtils.generateQI 和 JS 实现的 QueryInterface 方法,而应使用 ChromeUtils

此规则不符合代码示例:

X.prototype.QueryInterface = XPCOMUtils.generateQI(["nsIMeh"]);
X.prototype = { QueryInterface: XPCOMUtils.generateQI(["nsIMeh"]) };
X.prototype = { QueryInterface: function QueryInterface(iid) {
  if (
    iid.equals(Ci.nsISupports) ||
    iid.equals(Ci.nsIMeh) ||
    iid.equals(nsIFlug) ||
    iid.equals(Ci.amIFoo)
  ) {
    return this;
  }
  throw Components.Exception("", Cr.NS_ERROR_NO_INTERFACE);
} };

此规则符合代码示例:

X.prototype.QueryInterface = ChromeUtils.generateQI(["nsIMeh"]);
X.prototype = { QueryInterface: ChromeUtils.generateQI(["nsIMeh"]) }