Closed Bug 1014080 Opened 11 years ago Closed 11 years ago

When dragging tab to existing window: "A coding exception was thrown in a Promise resolution callback. ... TypeError: msg.target.messageManager is undefined"

Categories

(Firefox :: New Tab Page, defect)

defect
Not set
normal

Tracking

()

RESOLVED DUPLICATE of bug 1013722

People

(Reporter: dholbert, Unassigned)

References

Details

STR: 0. Start Firefox (nightly) from a terminal. Keep the terminal in view. 1. Ctrl+N to open a new (second) Firefox window, with only one tab, at about:home (though location doesn't seem to matter). 2. Drag that tab back to your original window. ACTUAL RESULTS: This appears in your terminal: { ************************* A coding exception was thrown in a Promise resolution callback. Full message: TypeError: msg.target.messageManager is undefined See https://developer.mozilla.org/Mozilla/JavaScript_code_modules/Promise.jsm/Promise Full stack: this.ContentSearch._reply@resource://app/modules/ContentSearch.jsm:123:5 this.ContentSearch.onGetState@resource://app/modules/ContentSearch.jsm:74:5 this.ContentSearch.receiveMessage/<@resource://app/modules/ContentSearch.jsm:68:9 Handler.prototype.process@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:863:11 this.PromiseWalker.walkerLoop@resource://gre/modules/Promise.jsm -> resource://gre/modules/Promise-backend.js:742:7 ************************* } Additionally, after 5-10 seconds, this error appears in the Browser Console: { A promise chain failed to handle a rejection. Date: Wed May 21 2014 09:47:11 GMT-0700 (PDT) Full Message: TypeError: msg.target.messageManager is undefined } ...linking to ContentSearch.jsm:123, which is this code: >122 _reply: function (msg, type, data) { >123 msg.target.messageManager.sendAsyncMessage(...this._msgArgs(type, data)); >124 }, http://mxr.mozilla.org/mozilla-central/source/browser/modules/ContentSearch.jsm?rev=345a99667b7c#123 Adding dependency on bug 962490, which added this _reply function. (Not sure this started with that bug's checkin, but just getting it hooked up for relatedness at least.)
Mozilla/5.0 (X11; Linux x86_64; rv:32.0) Gecko/20100101 Firefox/32.0 32.0a1 (2014-05-21)
Thanks for CC'ing me. Bug 1013722 fixes this and is more or less a duplicate. But the circumstances here are different, and at first I wasn't sure why this would be happening when it seems like about:newtab isn't involved at all. When the tab is dragged and dropped, this ends up happening: Preloader_newTab@resource:///modules/BrowserNewTabPreloader.jsm:81:13 addTab@chrome://browser/content/tabbrowser.xml:1610:15 _beginRemoveTab@chrome://browser/content/tabbrowser.xml:1928:49 swapBrowsersAndCloseOther@chrome://browser/content/tabbrowser.xml:2186:17 onxbldrop@chrome://browser/content/tabbrowser.xml:4427:11 tabbrowser.xml is preprocessed so the line number is off. It's actually http://mxr.mozilla.org/mozilla-central/source/browser/base/content/tabbrowser.xml?rev=4dc06a48ed13#1624 So as part of the drag and drop process, tabbrowser ends up creating an about:newtab tab that's swapped out of the newtab preloader, triggering the mutation observer in page.js, which then calls gSearch.setUpInitialState, which sends a GetState message to ContentSearch. I think what then happens is that the new about:newtab page is swapped for the dragged page in the other window; then the about:newtab that's now in the other window is closed, giving the illusion that the tab was moved. So the about:newtab is gone before ContentSearch can reply to it.
Status: NEW → RESOLVED
Closed: 11 years ago
Component: Search → New Tab Page
OS: Linux → All
Hardware: x86_64 → All
Resolution: --- → DUPLICATE
Blocks: 1009313
No longer depends on: 962490
You need to log in before you can comment on or make changes to this bug.