"User-Agent Switcher" add-on's toolbar menu is blank. Exception... "Method not implemented" location: "JS frame :: resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk

RESOLVED DUPLICATE of bug 1294199

Status

()

Firefox
Extension Compatibility
RESOLVED DUPLICATE of bug 1294199
2 years ago
2 years ago

People

(Reporter: cpeterson, Unassigned)

Tracking

({regression})

49 Branch
regression
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(firefox47 unaffected, firefox48 unaffected, firefox49- fix-optional, firefox50 fixed, firefox51 fixed)

Details

(URL)

(Reporter)

Description

2 years ago
[Tracking Requested - why for this release]:

This is a regression in 49.

James, I bisected the regression to your fix for bug 1269361. Would you expect add-on breakage from your change?

STR:
1. Install the "User-Agent Switcher" add-on. Note that there are other add-ons with similar names, but you want this one:

https://addons.mozilla.org/en-US/firefox/addon/user-agent-switcher-firefox/

2. The add-on will add a globe icon to your toolbar.
3. Click the globe icon to see a menu of browser icons.
4. Open a Private Browsing window.
5. Click the globe icon in the Private Browsing window.

RESULT:
The menu is blank.

The following JavaScript exceptions is logged to the console:

console.error: useragentswitcher: 
  Message: [Exception... "Method not implemented"  nsresult: "0x80004001 (NS_ERROR_NOT_IMPLEMENTED)"  location: "JS frame :: resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/frame/utils.js :: swapFrameLoaders :: line 92"  data: no]
  Stack:
    swapFrameLoaders@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/frame/utils.js:92:10
onDisplayChange@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/panel/utils.js:289:7
openPopup@chrome://global/content/bindings/popup.xml:50:15
display@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/panel/utils.js:194:3
open@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/panel/utils.js:79:8
show@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/panel/utils.js:222:3
show@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/panel.js:292:7
button<.onClick@resource://gre/modules/commonjs/toolkit/loader.js -> resource://jid1-kyxeacwua7bekq-at-jetpack/lib/firefox/firefox.js:36:27
emitOnObject@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/event/core.js:112:9
emit@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/event/core.js:89:38
@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/ui/button/action.js:101:3
emitOnObject@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/event/core.js:112:9
emit@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/event/core.js:89:38
receive@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/event/utils.js:115:5
transform/next@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/event/utils.js:36:24
filter/<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/event/utils.js:53:7
transform/<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/event/utils.js:43:29
emitOnObject@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/event/core.js:112:9
emit@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/event/core.js:89:38
receive@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/event/utils.js:115:5
transform/next@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/event/utils.js:36:24
filter/<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/event/utils.js:53:7
transform/<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/event/utils.js:43:29
emitOnObject@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/event/core.js:112:9
emit@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/event/core.js:89:38
create/<.onBuild/<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/ui/button/view.js:155:11
EventListener.handleEvent*create/<.onBuild@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/ui/button/view.js:153:7
CustomizableUIInternal.wrapWidgetEventHandler/aWidget[aEventName]@resource://app/modules/CustomizableUI.jsm:2418:16
CustomizableUIInternal.buildWidget@resource://app/modules/CustomizableUI.jsm:1344:16
CustomizableUIInternal.getWidgetNode@resource://app/modules/CustomizableUI.jsm:897:16
CustomizableUIInternal.buildArea@resource://app/modules/CustomizableUI.jsm:723:32
CustomizableUIInternal.registerToolbarNode@resource://app/modules/CustomizableUI.jsm:676:9
this.CustomizableUI.registerToolbarNode@resource://app/modules/CustomizableUI.jsm:3061:5
_init@chrome://browser/content/customizableui/toolbar.xml:85:11
onReadyStateChange@chrome://browser/content/customizableui/toolbar.xml:37:15
EventListener.handleEvent*toolbar_XBL_Constructor@chrome://browser/content/customizableui/toolbar.xml:33:13

console.error: useragentswitcher: 
  Message: [Exception... "Method not implemented"  nsresult: "0x80004001 (NS_ERROR_NOT_IMPLEMENTED)"  location: "JS frame :: resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/frame/utils.js :: swapFrameLoaders :: line 92"  data: no]
  Stack:
    swapFrameLoaders@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/frame/utils.js:92:10
onDisplayChange@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/panel/utils.js:289:7
EventListener.handleEvent*make@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/panel/utils.js:323:3
setup@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/panel.js:171:16
@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/core/disposable.js:45:56
dispatch@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/method/core.js:119:12
Disposable<.initialize@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/core/disposable.js:135:17
constructor@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/core/heritage.js:146:23
@resource://gre/modules/commonjs/toolkit/loader.js -> resource://jid1-kyxeacwua7bekq-at-jetpack/lib/firefox/firefox.js:54:13
evaluate@resource://gre/modules/commonjs/toolkit/loader.js:279:19
load@resource://gre/modules/commonjs/toolkit/loader.js:331:5
_require@resource://gre/modules/commonjs/toolkit/loader.js:671:16
require@resource://gre/modules/commonjs/toolkit/loader.js:625:12
@resource://gre/modules/commonjs/toolkit/loader.js -> resource://jid1-kyxeacwua7bekq-at-jetpack/lib/common.js:3:13
evaluate@resource://gre/modules/commonjs/toolkit/loader.js:279:19
load@resource://gre/modules/commonjs/toolkit/loader.js:331:5
main@resource://gre/modules/commonjs/toolkit/loader.js:786:10
run@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/addon/runner.js:147:19
startup/</<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/addon/runner.js:87:9
Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:937:23
this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:816:7
Promise*this.PromiseWalker.scheduleWalkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:747:11
this.PromiseWalker.schedulePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:779:7
this.PromiseWalker.completePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:714:7
handler@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/addon/window.js:56:3
EventListener.handleEvent*@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/addon/window.js:54:1
evaluate@resource://gre/modules/commonjs/toolkit/loader.js:279:19
load@resource://gre/modules/commonjs/toolkit/loader.js:331:5
_require@resource://gre/modules/commonjs/toolkit/loader.js:671:16
require@resource://gre/modules/commonjs/toolkit/loader.js:625:12
startup/<@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/addon/runner.js:72:21
Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:937:23
this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:816:7
Promise*this.PromiseWalker.scheduleWalkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:747:11
this.PromiseWalker.schedulePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:779:7
this.PromiseWalker.completePromise@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:714:7
listener/<@resource://gre/modules/sdk/system/Startup.js:52:46
Flags: needinfo?(jandreou)

Comment 1

2 years ago
It is possible that the addon is using persisted OriginAttributes somewhere, and with the addition of new attributes something breaks.
Flags: needinfo?(jandreou)
(Reporter)

Comment 2

2 years ago
I reported this issue to the add-on developer here: http://mybrowseraddon.com/useragent-switcher.html
Version: unspecified → 49 Branch
Where do addon bugs get reported? Should we move the component? Or do we expect this type of breakage not to occur?
Flags: needinfo?(ryanvm)
Component: DOM → Extension Compatibility
Flags: needinfo?(ryanvm)
Product: Core → Firefox

Comment 4

2 years ago
Andy, this appears to be a problem in the sdk layer. Can your team take a look?
Flags: needinfo?(amckay)

Updated

2 years ago
Blocks: 905436
Flags: needinfo?(amckay)

Updated

2 years ago
See Also: → bug 1294199
status-firefox49: affected → fix-optional
status-firefox51: --- → affected
tracking-firefox49: ? → -

Updated

2 years ago
Blocks: 1287157

Comment 5

2 years ago
More information present in bug 1294199, so duping forward.
Status: NEW → RESOLVED
Last Resolved: 2 years ago
Resolution: --- → DUPLICATE
Duplicate of bug: 1294199
Mark 50/51 fixed as bug 1294199 was verified in 50/51.
status-firefox50: affected → fixed
status-firefox51: affected → fixed
You need to log in before you can comment on or make changes to this bug.