Closed
Bug 597360
Opened 15 years ago
Closed 14 years ago
Closing the last group results in weird behavior (window closes after pressing Ctrl+T, unresponsiveness, tabview asserts...)
Categories
(Firefox Graveyard :: Panorama, defect, P3)
Firefox Graveyard
Panorama
Tracking
(blocking2.0 betaN+)
VERIFIED
FIXED
Tracking | Status | |
---|---|---|
blocking2.0 | --- | betaN+ |
People
(Reporter: steffen.wilberg, Assigned: raymondlee)
References
Details
Attachments
(1 file, 3 obsolete files)
11.02 KB,
patch
|
Details | Diff | Splinter Review |
Mozilla/5.0 (Windows NT 6.0; WOW64; rv:2.0b7pre) Gecko/20100916 Firefox/4.0b7pre
Closing the last group results in weird behavior (window closes, unresponsiveness, tabview asserts...).
Tested with a new profile:
1. Open tabcandy.
--> it displays the open tabs in a group, and the intro video.
2. Close all tab groups in tabcandy by clicking on the "x" in the top-right corner of the group.
--> Panorama is now pretty empty, showing only the tabcandy button on the top right, the search box below, and the Undo Close Group box.
Notice that Esc, Ctrl+Space, and the tabcandy button don't work.
The search box works, but that doesn't help...
3. Press Ctrl+T
--> The window is closed! Luckily, I had the error console open, and could do window.open()
Second try:
0. In about:config, set browser.tabs.closeWindowWithLastTab to false.
1. and 2. like before. The intro video is back again as well.
3. Press Ctrl+T to open a new tab.
--> The new tab is displayed instead of tabcandy.
4. Press Ctrl+Space
--> A single new tab is displayed, outside any group.
5. Click on that new tab, click on the tabcandy button, hit Esc, hit Ctrl+Space.
--> nothing happens.
6. Draw a new group over it
--> the tab moves away from the new group.
7. Move the tab into the new group, and click the tab.
--> it becomes larger, and shrinks again.
8. Click again for a second (and maybe a third) time.
--> it opens up.
9. Go back to tabcandy, move that tab outside the group.
--> the (then empty) group is removed.
10. Click on the tab.
--> from here on, I get different results, sometimes the tab opens up (unlike step 5), and I can go back to tabcandy, draw a group above it, and the tab moves into the group (unlike step 6)
--> but sometimes, I get the same behaviour as steps 6 and 7 above.
After step 3, the error console displays:
tabview assert: should already be linked([object XULElement],[object Event])@chrome://browser/content/tabview.js:4769
((function (tab) {if (tab.ownerDocument.defaultView != gWindow || tab.pinned) {return;}self.update(tab);}),1,[object Array])@resource:///modules/tabview/AllTabs.jsm:127
([object Event])@resource:///modules/tabview/AllTabs.jsm:125
_tabAttrModified([object XULElement])@chrome://browser/content/tabbrowser.xml:895
updateCurrentBrowser()@chrome://browser/content/tabbrowser.xml:862
onselect([object Event])@chrome://browser/content/browser.xul:1
@:0
set_selectedIndex(1)@chrome://global/content/bindings/tabbox.xml:654
set_selectedPanel([object XULElement])@chrome://global/content/bindings/tabbox.xml:673
set_selectedIndex(1)@chrome://global/content/bindings/tabbox.xml:394
set_selectedItem([object XULElement])@chrome://global/content/bindings/tabbox.xml:426
set_selectedTab([object XULElement])@chrome://global/content/bindings/tabbox.xml:106
set_selectedTab([object XULElement])@chrome://browser/content/tabbrowser.xml:1902
_blurTab([object XULElement])@chrome://browser/content/tabbrowser.xml:1648
_endRemoveTab([object XULElement])@chrome://browser/content/tabbrowser.xml:1517
removeTab([object XULElement])@chrome://browser/content/tabbrowser.xml:1403
TabItem_close()@chrome://browser/content/tabview.js:4540
([object Object],1,[object Array])@chrome://browser/content/tabview.js:4086
([object Object],0,[object Array])@chrome://browser/content/tabview.js:4084
GroupItems_removeHiddenGroups()@chrome://browser/content/tabview.js:4081
UI_hideTabView()@chrome://browser/content/tabview.js:6805
UI_onTabSelect([object XULElement])@chrome://browser/content/tabview.js:6961
([object XULElement],[object Event])@chrome://browser/content/tabview.js:6893
((function (tab) {if (tab.ownerDocument.defaultView != gWindow) {return;}self.onTabSelect(tab);}),0,[object Array])@resource:///modules/tabview/AllTabs.jsm:127
([object Event])@resource:///modules/tabview/AllTabs.jsm:125
updateCurrentBrowser()@chrome://browser/content/tabbrowser.xml:860
onselect([object Event])@chrome://browser/content/browser.xul:1
set_selectedIndex(1)@chrome://global/content/bindings/tabbox.xml:654
set_selectedPanel([object XULElement])@chrome://global/content/bindings/tabbox.xml:673
set_selectedIndex(1)@chrome://global/content/bindings/tabbox.xml:394
set_selectedItem([object XULElement])@chrome://global/content/bindings/tabbox.xml:426
set_selectedTab([object XULElement])@chrome://global/content/bindings/tabbox.xml:106
set_selectedTab([object XULElement])@chrome://browser/content/tabbrowser.xml:1902
loadOneTab("about:blank",(void 0))@chrome://browser/content/tabbrowser.xml:1038
BrowserOpenTab()@chrome://browser/content/browser.js:6992
oncommand([object XULCommandEvent])@chrome://browser/content/browser.xul:1
Error: browser.webProgress is undefined
Source File: chrome://browser/content/tabbrowser.xml
Line: 1470
which is the last line of this code:
// Remove the tab's filter and progress listener.
const filter = this.mTabFilters[aTab._tPos];
browser.webProgress.removeProgressListener(filter);
After step 6, the error console displays:
Warning: Error in parsing value for 'size'. Declaration dropped.
Source File: chrome://browser/content/tabview.html
Line: 0
Warning: Error in parsing value for 'position'. Declaration dropped.
Source File: chrome://browser/content/tabview.html
Line: 0
(several times)
tabview assert: should already be linkedTabItem_setBounds([object Object],false)@chrome://browser/content/tabview.js:4465
([object Object],0,[object Array])@chrome://browser/content/tabview.js:3077
GroupItem_arrange([object Object])@chrome://browser/content/tabview.js:3075
GroupItem_setBounds([object Object])@chrome://browser/content/tabview.js:2511
([object Object],0,[object Array])@chrome://browser/content/tabview.js:1466
Item_pushAway()@chrome://browser/content/tabview.js:1462
Drag_stop()@chrome://browser/content/tabview.js:5484
Item_snap()@chrome://browser/content/tabview.js:1534
GroupItem([object Array],[object Object])@chrome://browser/content/tabview.js:2331
finalize([object MouseEvent])@chrome://browser/content/tabview.js:7248
([object MouseEvent])@chrome://browser/content/tabview.js:699
([object MouseEvent])@chrome://browser/content/tabview.js:669
(twice)
After step 7, the error console displays:
Error: browser.webProgress is undefined
Source File: chrome://browser/content/tabbrowser.xml
Line: 1470
I also saw this:
tabview assert: should already be linkedTabItem_setBounds([object Object],false)@chrome://browser/content/tabview.js:4465
([object Object],1,[object Array])@chrome://browser/content/tabview.js:3077
GroupItem_arrange([object Object])@chrome://browser/content/tabview.js:3075
GroupItem_setBounds([object Object])@chrome://browser/content/tabview.js:2511
([object Object],0,[object Array])@chrome://browser/content/tabview.js:2033
Items_unsquish()@chrome://browser/content/tabview.js:2032
()@chrome://browser/content/tabview.js:2589
(16)@chrome://browser/content/tabview.js:607
Reporter | ||
Updated•15 years ago
|
blocking2.0: --- → ?
Summary: Closing the last group results in weird behavior (window closes, unresponsiveness, tabview asserts...) → Closing the last group results in weird behavior (window closes after pressing Ctrl+T, unresponsiveness, tabview asserts...)
Updated•15 years ago
|
Priority: -- → P3
Updated•15 years ago
|
blocking2.0: ? → betaN+
Updated•14 years ago
|
Assignee: nobody → raymond
Assignee | ||
Updated•14 years ago
|
Status: NEW → ASSIGNED
Assignee | ||
Comment 1•14 years ago
|
||
Closes the last group, the undo button gets displayed, presses cmd/ctrl+t and the window would remain and the new tab would be opened.
Attachment #495785 -
Flags: feedback?(ian)
Comment 2•14 years ago
|
||
Comment on attachment 495785 [details] [diff] [review]
v1
It seems to me the root of the problem is that it's possible for a hidden group to be the activeGroupItem. Let's fix that: make it impossible for a hidden group to be activeGroupItem (deactivate it when it becomes hidden, for instance, much like we already do with the active tab if it's in a group that gets hidden).
I'm not against also checking in GroupItems.newTab just to verify that a hidden activeGroupItem hasn't slipped through (though if the above is taken care of, presumably we don't need it). If you do do so, however, rather than creating a fresh group immediately, you should just fall through to the rest of the newTab logic.
Attachment #495785 -
Flags: feedback?(ian) → feedback-
Assignee | ||
Comment 3•14 years ago
|
||
Attachment #495785 -
Attachment is obsolete: true
Attachment #496130 -
Flags: feedback?(ian)
Comment 4•14 years ago
|
||
Comment on attachment 496130 [details] [diff] [review]
v1
Looks good. Comments:
>+ if (closestTabItem.parent)
>+ GroupItems.setActiveGroupItem(closestTabItem.parent);
>+ else
>+ GroupItems.setActiveOrphanTab(closestTabItem);
You should also setActiveGroupItem(null) if it's an orphan, right?
>+ let orphanedTabs = this.getOrphanedTabs();
>+ // add the new tabItem to the first visible group item
> // set the orphan tab, and create a new group for orphan tab and
> // new tabItem
>- let orphanedTabs = this.getOrphanedTabs();
> if (orphanedTabs.length > 0)
> orphanTabItem = orphanedTabs[0];
The "add the new tabItem to the first visible group item" comment is out of place.
R+ with those addressed.
Attachment #496130 -
Flags: feedback?(ian) → review+
Assignee | ||
Comment 5•14 years ago
|
||
Sent to try and waiting for the results
Attachment #496130 -
Attachment is obsolete: true
Assignee | ||
Comment 6•14 years ago
|
||
Attachment #496386 -
Attachment is obsolete: true
Assignee | ||
Updated•14 years ago
|
Keywords: checkin-needed
Assignee | ||
Comment 7•14 years ago
|
||
(In reply to comment #6)
> Created attachment 496570 [details] [diff] [review]
> Patch for check-in
Passed Try!
Assignee | ||
Updated•14 years ago
|
OS: Windows Vista → All
Hardware: x86 → All
Comment 8•14 years ago
|
||
Updated•9 years ago
|
Product: Firefox → Firefox Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•