Custom about: URLs Topic is solved

General discussion, compatibility and contributed extensions.

Moderators: Lootyhoof, FranklinDM

Locked
User avatar
RealityRipple
Lunatic
Lunatic
Posts: 262
Joined: 2018-05-17, 02:34
Location: Los Berros Canyon, California
Contact:

Custom about: URLs

Post by RealityRipple » 2018-08-18, 05:44

One of the extension forks I maintain, Palesomething, has a leftover easter egg from Firesomething - about:firesomething, an "extended edition" excerpt from the Book of Mozilla. It doesn't seem to be working on PM 28, though. The code that handles it is here. And the error message I'm getting is:

Code: Select all

A promise chain failed to handle a rejection. Did you forget to '.catch', or did you forget to 'return'?
See https://developer.mozilla.org/Mozilla/JavaScript_code_modules/Promise.jsm/Promise

Date: Fri Aug 17 2018 22:33:11 GMT-0700 (Pacific Standard Time)
Full Message: Component returned failure code: 0x80570030 (NS_ERROR_XPC_JSOBJECT_HAS_NO_FUNCTION_NAMED) [nsIWebNavigation.loadURIWithOptions]
Full Stack: JS frame :: chrome://global/content/bindings/browser.xml :: loadURIWithFlags/< :: line 157
JS frame :: chrome://global/content/bindings/browser.xml :: _wrapURIChangeCall :: line 50
JS frame :: chrome://global/content/bindings/browser.xml :: loadURIWithFlags :: line 156
JS frame :: chrome://browser/content/tabbrowser.xml :: loadURIWithFlags :: line 2815
JS frame :: chrome://browser/content/urlbarBindings.xml :: loadCurrent :: line 315
JS frame :: chrome://browser/content/urlbarBindings.xml :: continueOperation :: line 350
JS frame :: chrome://browser/content/urlbarBindings.xml :: handleCommand/< :: line 286
JS frame :: chrome://browser/content/urlbarBindings.xml :: _canonizeURL/< :: line 415
JS frame :: resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js :: process :: line 932
JS frame :: resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js :: walkerLoop :: line 813
JS frame :: resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js :: scheduleWalkerLoop/< :: line 747
I've noticed a lot of nested function methods don't work on ES6, so maybe that's what's doing it. Once I find a good backward compatible methodology for faking modules, I'll probably switch all the extensions I've made or ported to use it, but that tends to get a "undefined" or "not a function" error, whereas this seems to be related to the component registrar? I'm not really sure...

User avatar
Moonchild
Pale Moon guru
Pale Moon guru
Posts: 29203
Joined: 2011-08-28, 17:27
Location: Tranås, SE
Contact:

Re: Custom about: URLs

Post by Moonchild » 2018-08-18, 05:46

RealityRipple wrote:I've made or ported to use it, but that tends to get a "undefined" or "not a function" error, whereas this seems to be related to the component registrar? I'm not really sure...
Full Message: Component returned failure code: 0x80570030 (NS_ERROR_XPC_JSOBJECT_HAS_NO_FUNCTION_NAMED) [nsIWebNavigation.loadURIWithOptions]
"Son, in life you do not fight battles because you expect to win, you fight them merely because they need to be fought." -- Snagglepuss
Image

User avatar
Isengrim
Board Warrior
Board Warrior
Posts: 1323
Joined: 2015-09-08, 22:54
Location: 127.0.0.1
Contact:

Re: Custom about: URLs

Post by Isengrim » 2018-08-18, 11:04

The newChannel method in the nsIAboutModule interface has changed. I had to make this change in one of my add-ons:

Code: Select all

- newChannel: function(aURI) {
-     let channel = Services.io.newChannel(ABOUTPAGE_URI, null, null);
+ newChannel: function(aURI, aLoadInfo) {
+     let uri = Services.io.newURI(ABOUTPAGE_URI, null, null);
+     let channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo);
+     channel.originalURI = aURI;
+     return channel;
a.k.a. Ascrod
Linux Mint 19.3 Cinnamon (64-bit), Debian Bullseye (64-bit), Windows 7 (64-bit)
"As long as there is someone who will appreciate the work involved in the creation, the effort is time well spent." ~ Tetsuzou Kamadani, Cave Story

User avatar
RealityRipple
Lunatic
Lunatic
Posts: 262
Joined: 2018-05-17, 02:34
Location: Los Berros Canyon, California
Contact:

Re: Custom about: URLs

Post by RealityRipple » 2018-08-18, 17:45

Moonchild wrote:
RealityRipple wrote:I've made or ported to use it, but that tends to get a "undefined" or "not a function" error, whereas this seems to be related to the component registrar? I'm not really sure...
Full Message: Component returned failure code: 0x80570030 (NS_ERROR_XPC_JSOBJECT_HAS_NO_FUNCTION_NAMED) [nsIWebNavigation.loadURIWithOptions]
I meant a function I had defined. loadURIWithOptions is part of the framework. Or was.
Last edited by RealityRipple on 2018-08-18, 17:45, edited 1 time in total.

User avatar
RealityRipple
Lunatic
Lunatic
Posts: 262
Joined: 2018-05-17, 02:34
Location: Los Berros Canyon, California
Contact:

Re: Custom about: URLs

Post by RealityRipple » 2018-08-18, 18:25

Isengrim wrote:The newChannel method in the nsIAboutModule interface has changed. I had to make this change in one of my add-ons:

Code: Select all

- newChannel: function(aURI) {
-     let channel = Services.io.newChannel(ABOUTPAGE_URI, null, null);
+ newChannel: function(aURI, aLoadInfo) {
+     let uri = Services.io.newURI(ABOUTPAGE_URI, null, null);
+     let channel = Services.io.newChannelFromURIWithLoadInfo(uri, aLoadInfo);
+     channel.originalURI = aURI;
+     return channel;
Still getting the same error with just that. You helped me find this, though, so I'm sure I'll find my mistake. Thank you!

Edit: Yep, I was missing the getURIFlags function as well!
Last edited by RealityRipple on 2018-08-18, 18:42, edited 1 time in total.

User avatar
Isengrim
Board Warrior
Board Warrior
Posts: 1323
Joined: 2015-09-08, 22:54
Location: 127.0.0.1
Contact:

Re: Custom about: URLs

Post by Isengrim » 2018-08-18, 18:57

Glad to hear, and happy to help. :)
a.k.a. Ascrod
Linux Mint 19.3 Cinnamon (64-bit), Debian Bullseye (64-bit), Windows 7 (64-bit)
"As long as there is someone who will appreciate the work involved in the creation, the effort is time well spent." ~ Tetsuzou Kamadani, Cave Story

Locked