mozilla / tls-canary

DEPRECATED - TLS regression scanner for Firefox
https://tlscanary.mozilla.org/
Mozilla Public License 2.0
18 stars 15 forks source link

TypeError: XPCOMUtils.generateQI is not a function #171

Closed cr closed 6 years ago

cr commented 6 years ago

A recent patch in nightly removed XPCOMUtils.generateQI and XPCOMUtils.generateCI from js/xpconnect/loader/XPCOMUtils.jsm

Thunderbird devs are currently fighting the same problem, but I don't really like their fix of providing their own little generateQI implementation. See https://bugzilla.mozilla.org/show_bug.cgi?id=1484957

It will take considerable time to fix this. Until then, TLS Canary is globally out of order for nightly.

cr commented 6 years ago

Looks like the fix is simpler than anticipated. Needs testing, though.

dragondaksh commented 5 years ago

still qbrt fails to start ... please suggest a solution

cr commented 5 years ago

What is qbrt?

dragondaksh commented 5 years ago

qbrt is CLI to a Gecko desktop app runtime. LINK:- https://github.com/mozilla/qbrt

cr commented 5 years ago

TLS Canary has neither been intended for use in, nor tested with qbrt. Can you make a point why this should be a supported use case?

benfrancis commented 5 years ago

@cr qbrt is the "Quantum Browser Runtime", which an experimental project that uses Firefox Nightly as a desktop application runtime.

Currently https://github.com/mozilla/qbrt/issues/170 is preventing qbrt from starting with the error "TypeError: XPCOMUtils.generateQI is not a function", which is why people have been commenting here.

I'm not actually sure what tls-canary is, but do you think these things could be connected? Perhaps you have an idea of where to look for a workaround?

Thanks

cr commented 5 years ago

Thanks for the clarification, @benfrancis. I finally understand that @dragondaksh's question wasn't related to TLS Canary at all, just this particular fix not working for a different project. As you correctly pointed out in mozilla/qbrt#170, the easy fix for TLS Canary was to switch from XPCOMUtils.generateQI() to ChromeUtils.generateQI(), and it worked well for the one interface we're querying, Ci.nsIChannelEventSink. Since the two implementations appear to be slightly different, the fix may or may not work for whatever C++ function you're after.