Closed Bug 583000 Opened 14 years ago Closed 14 years ago

Chrome messed up in popup windows when closeWindowWithLastTab = false

Categories

(Firefox :: Tabbed Browser, defect)

defect
Not set
major

Tracking

()

RESOLVED FIXED
Firefox 4.0b5
Tracking Status
blocking2.0 --- -
status2.0 --- wanted

People

(Reporter: c.ascheberg, Assigned: dao)

References

()

Details

(Keywords: regression)

Attachments

(3 files)

User-Agent:       Mozilla/5.0 (Windows; Windows NT 6.1; rv:2.0b3pre) Gecko/20100729 Minefield/4.0b3pre
Build Identifier: Mozilla/5.0 (Windows; Windows NT 6.1; rv:2.0b3pre) Gecko/20100729 Minefield/4.0b3pre

When opening a popup, the URL is not displayed in the urlbar

Reproducible: Always

Steps to Reproduce:
1. on einslive.de: click link "webradio" on top of page
2. switch to opened popup
Actual Results:  
urlbar is empty

Expected Results:  
urlbar should shown current URL
Attached file testcase
Version: unspecified → Trunk
Keywords: regression
this only seems happens when browser.tabs.closeWindowWithLastTab is set to false
blocking2.0: --- → ?
I confirm the bug, and it's surprising to me. Doesn't block because it only appears under non-standard configuration, but I would like to see it fixed regardless!
Status: UNCONFIRMED → NEW
blocking2.0: ? → -
status2.0: --- → wanted
Ever confirmed: true
Summary: URL not displayed in popup → URL not displayed in popup window when closeWindowWithLastTab = false
I'm getting these errors:

Warning: reference to undefined property this.tabContainer
Source File: chrome://browser/content/tabbrowser.xml
Line: 89

Error: this.browsers[i] is undefined
Source File: chrome://browser/content/tabbrowser.xml
Line: 253

Error: uncaught exception: [Exception... "Component returned failure code: 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIObserverService.addObserver]"  nsresult: "0x80070057 (NS_ERROR_ILLEGAL_VALUE)"  location: "JS frame :: chrome://browser/content/browser.js :: prepareForStartup :: line 5283"  data: no]
Component: Location Bar → Tabbed Browser
OS: Windows 7 → All
QA Contact: location.bar → tabbed.browser
Hardware: x86 → All
look like that the problem is in gBrowser.tabs
changing tabs from field to property fix the porplem

-     <field name="tabs" readonly="true">
-       this.tabContainer.childNodes;
-     </field>
+     <property name="tabs"
+               onget="return this.tabContainer.childNodes;"
+               readonly="true"/>
(In reply to comment #5)
> look like that the problem is in gBrowser.tabs
> changing tabs from field to property fix the porplem
> 
> -     <field name="tabs" readonly="true">
> -       this.tabContainer.childNodes;
> -     </field>
> +     <property name="tabs"
> +               onget="return this.tabContainer.childNodes;"
> +               readonly="true"/>

This is more expensive, though. I don't really see what's wrong with the <field>. I also don't understand how the closeWindowWithLastTab pref affects this.
set browser.tabs.closeWindowWithLastTab=false and browser.tabs.closeButtons=1

tabbrowser-tabs constructor call adjustTabstrip 
adjustTabstrip call _numPinnedTabs

then in _numPinnedTabs this.tabs is undefined
(In reply to comment #7)
> tabbrowser-tabs constructor call adjustTabstrip 
> adjustTabstrip call _numPinnedTabs

This explains why closeWindowWithLastTab makes a difference. Thanks!
This leaves the question of why tabbrowser.tabContainer.childNodes fails when called from the tabContainer constructor.
not tabbrowser.tabContainer.childNodes fails tabbrowser.tabs fails.

tabContainer constructor calls tabbrowser.tabs that calls tabbrowser.tabContainer.childNodes.

this loop of tabContainer > tabbrowser > tabbrowser.tabContainer from tabContainer constructor don't look so good to me

the simple fux will be to move the call to adjustTabstrip from tabContainer constructor to tabbrowser constructor
(In reply to comment #9)
> not tabbrowser.tabContainer.childNodes fails tabbrowser.tabs fails.

That's essentially the same.

> tabContainer constructor calls tabbrowser.tabs that calls
> tabbrowser.tabContainer.childNodes.
> 
> this loop of tabContainer > tabbrowser > tabbrowser.tabContainer from
> tabContainer constructor don't look so good to me

It's circular, sure, but this doesn't mean it should fail...
i guess that it fail in this circumstance since tabbrowser is not ready when tabContainer  try to call it.
I imagine tabbrowser should automagically become ready when it's accessed, but maybe XBL bindings can't be constructed concurrently or something.
Attached patch fixSplinter Review
This is the right thing to do anyway. No point in trying to measure the tab width if there is only one tab.
Assignee: nobody → dao
Status: NEW → ASSIGNED
Attachment #469035 - Flags: review?(gavin.sharp)
Attachment #469035 - Flags: review?(gavin.sharp)
Attachment #469035 - Flags: review+
Attachment #469035 - Flags: approval2.0+
http://hg.mozilla.org/mozilla-central/rev/ef33d7afce7c
Status: ASSIGNED → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 4.0b5
Attached image screenshot
http://www.pcurtis.com/popup.htm

on javascript popup window,
no Firefox button/tabbar.
title(bar) displayed.

intended ?
(In reply to comment #16)
> Created attachment 469405 [details]
> screenshot
> 
> http://www.pcurtis.com/popup.htm
> 
> on javascript popup window,
> no Firefox button/tabbar.
> title(bar) displayed.
> 
> intended ?

Yes.
Summary: URL not displayed in popup window when closeWindowWithLastTab = false → Chrome messed up in popup windows when closeWindowWithLastTab = false
(In reply to comment #17)

OK, thanks.
Thanks for fixing this!

Mozilla/5.0 (Windows NT 6.1; rv:2.0b5pre) Gecko/20100826 Minefield/4.0b5pre Firefox/4.0b4pre ID:20100826040655
Whiteboard: [switch-to-tab]
Whiteboard: [switch-to-tab]
Dennis, please don't remove my whiteboard tag.  I'm using [switch-to-tab] to track all bugs which affect switch-to-tab.
Whiteboard: [switch-to-tab]
I removed it because it doesn't have anything to do with switch to tab.  And since you cannot edit popup's switch to tab doesn't apply to them.
Whiteboard: [switch-to-tab]
(In reply to comment #23)
> I removed it because it doesn't have anything to do with switch to tab.  And
> since you cannot edit popup's switch to tab doesn't apply to them.

This bug has an affect on switch-to-tab as per the duped bug in comment 21.
Whiteboard: [switch-to-tab]
It affected countless random things, as it broke the popup's whole chrome... Please don't add them all to the whiteboard.
Whiteboard: [switch-to-tab]
(In reply to comment #25)
> It affected countless random things, as it broke the popup's whole chrome...
> Please don't add them all to the whiteboard.

I don't track all areas...I track switch-to-tab.  Having the whiteboard tag will help me track this.  Please don't remove the tag again.  It has no affect on your work with this bug.
Whiteboard: [switch-to-tab]
Please track bug 586054. Mark it fixed by this one or something.

This is no switch-to-tab bug. It's also mine. Please stop messing with it.
Whiteboard: [switch-to-tab]
(In reply to comment #27)
> Please track bug 586054. Mark it fixed by this one or something.
> 
> This is no switch-to-tab bug. It's also mine. Please stop messing with it.

Please explain to me the harm having my whiteboard tag in this bug causes?

I am tracking bug 586054.  However, there is no dependency tree so this bug will get lost without me using the whiteboard tag.  It's really a necessity for me.
Blocks: 586054
Can you guys sort this out outside of bugzilla - ideally with voices (if not faces) involved? This is a bugzilla slapfight right now, and you are all, each one of you, above it.
It's resolved. Bug 586054, blocked and fixed by this one, is the switch-to-tab bug to track. This avoids the confusion of tagging a non-switch-to-tab bug with [switch-to-tab].

People build and read bug lists in various ways and for various reasons. Stuff you put in the whiteboard can mislead them, since it isn't private. In this case it would have lead me to believe that I worked on a switch-to-tab bug when I didn't. If you don't expect others to understand and use your tags, you can avoid this by obscuring them.
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: