Open Bug 1231982 Opened 9 years ago Updated 8 years ago

Add-on SDK tabs problem: Type does not implements method: modelFor#f3j817b45hk

Categories

(SeaMonkey :: Tabbed Browser, defect)

SeaMonkey 2.42 Branch
x86_64
macOS
defect
Not set
normal

Tracking

(Not tracked)

UNCONFIRMED

People

(Reporter: per, Unassigned)

Details

(Whiteboard: Addon-SDK compat)

User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:42.0) Gecko/20100101 Firefox/42.0
Build ID: 20151029151421

Steps to reproduce:

Started SeaMonkey 2.42a1 Build identifier: 20151210003002 with my extension DCC enabled.

https://addons.mozilla.org/de/seamonkey/addon/direct-currency-converter-2-fo/


Actual results:

Error when using SDK require("sdk/tabs") activeTab:

console.error: direct-currency-converter-2-sm: 
  Message: TypeError: Type does not implements method: modelFor#f3j817b45hk
  Stack:
    dispatch@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/method/core.js:116:1
dispatcher/dispatch@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/util/dispatcher.js:35:24
Worker<.tab@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/content/worker.js:108:22
FirefoxContentInterface/sendSettingsToPage@resource://gre/modules/commonjs/toolkit/loader.js -> resource://dcc-sm-at-joint-dot-ax/direct-currency-converter-2-sm/lib/ff-contentInterface.js:62:9
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/page-mod.js:178:7
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
emitOnObject@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/event/core.js:123:45
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/content/worker.js:154:3
dispatch@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/method/core.js:119:12
@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/page-mod.js:189: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
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
emitOnObject@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/event/core.js:123:45
emit@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/event/core.js:89:38
messageReceived@resource://gre/modules/commonjs/toolkit/loader.js -> resource://gre/modules/commonjs/sdk/remote/parent.js:96:37



Expected results:

No error.
OS: Unspecified → Mac OS X
Hardware: Unspecified → x86_64
Whiteboard: Addon-SDK compat
According to #jetpack you need to require sdk/model/core e.g.

const { modelFor } = require('sdk/model/core')
Flags: needinfo?(per)
> Actual results:

> Error when using SDK require("sdk/tabs") activeTab:

> console.error: direct-currency-converter-2-sm: 
>   Message: TypeError: Type does not implements method: modelFor#f3j817b45hk

In sdk/tabs/tabs-firefox.js we have:

>   get activeTab() {
>     let activeDomWin = getMostRecentBrowserWindow();
>     if (!activeDomWin)
>       return null;
>     return modelFor(getSelectedTab(activeDomWin));
>   },
So for some reason modelFor() fails here.
> Error when using SDK require("sdk/tabs") activeTab:
When does this error happen? What are the STR? (Steps to reproduce)
(In reply to Philip Chee from comment #3)
> > Error when using SDK require("sdk/tabs") activeTab:
> When does this error happen? What are the STR? (Steps to reproduce)

With SeaMonkey 2.42a1 20151213003002 started from command line so logging is shown.

1. Start SeaMonkey with about:blank as the only tab.
2. Go to https://addons.mozilla.org/sv-SE/seamonkey/addon/direct-currency-converter-2-fo/
3. Install the add-on. The error is shown in the command line window.

Or
1. Start SeaMonkey with the add-on already installed and about:blank as the only tab.
2. Switch focus to another window.
3. Switch focus back to SeaMonkey. The error is shown in the command line window.

If a tab with some content is loaded, I also get "domWindow.gBrowserInit is undefined".

However, sometimes the add-on works even though I get the error messages.

I have not yet tried to require sdk/model/core.
Flags: needinfo?(per)
You need to log in before you can comment on or make changes to this bug.