Open
Bug 1127810
Opened 9 years ago
Updated 2 years ago
UITour: Closing a tour tab hides highlights & info panels in other tour tabs
Categories
(Firefox :: Tours, defect)
Tracking
()
NEW
People
(Reporter: agibson, Unassigned)
Details
Attachments
(1 file, 1 obsolete file)
39 bytes,
text/x-review-board-request
|
Details |
STR: 1.) In Nightly click Help -> Nightly Tour to open (#tab1). 2.) Once the tour page opens, open a second tour (#tab2) by clicking Help -> Nightly Tour. 3.) Close #tab1 by clicking (x). Expected results: The door-hanger in #tab2 should remain visible Actual results: When the #tab1 closes, the door-hanger in #tab2 gets torn down.
Reporter | ||
Comment 1•9 years ago
|
||
Note: this doesn't seem to happen in Dev Edition (FF 37) or earlier, so is likely a regression caused by a recent change in Nightly.
Comment 2•9 years ago
|
||
Could you attach the Browser Console output with UITour debugging on while doing the STR? It seems like the ordering of events may have changed. Even better if you also attach from a working version.
Blocks: fx-UITour-hello-36
Flags: needinfo?(agibson)
Reporter | ||
Comment 3•9 years ago
|
||
From STR in Nightly: "onPageEvent:" Object { action: "hideMenu", data: Object } Object { target: <browser>, name: "UITour:onPageEvent", sync: false, json: Object, data: Object, objects: Object, principal: undefined } UITour.jsm:347 "hideMenu:" "appMenu" UITour.jsm:1451 "onPageEvent:" Object { action: "hideHighlight", data: Object } Object { target: <browser>, name: "UITour:onPageEvent", sync: false, json: Object, data: Object, objects: Object, principal: undefined } UITour.jsm:347 "_setAppMenuStateForAnnotation:" "highlight" UITour.jsm:941 "_setAppMenuStateForAnnotation: Menu is expected to be:" "closed" UITour.jsm:942 "_setAppMenuStateForAnnotation: Panel already in expected state" UITour.jsm:947 "onPageEvent:" Object { action: "hideInfo", data: Object } Object { target: <browser>, name: "UITour:onPageEvent", sync: false, json: Object, data: Object, objects: Object, principal: undefined } UITour.jsm:347 "_setAppMenuStateForAnnotation:" "info" UITour.jsm:941 "_setAppMenuStateForAnnotation: Menu is expected to be:" "closed" UITour.jsm:942 "_setAppMenuStateForAnnotation: Panel already in expected state" UITour.jsm:947 "onPageEvent:" Object { action: "getConfiguration", data: Object } Object { target: <browser>, name: "UITour:onPageEvent", sync: false, json: Object, data: Object, objects: Object, principal: undefined } UITour.jsm:347 "sendPageCallback" Object { data: Object, callbackID: "gtrtpiei" } UITour.jsm:858 "onPageEvent:" Object { action: "getConfiguration", data: Object } Object { target: <browser>, name: "UITour:onPageEvent", sync: false, json: Object, data: Object, objects: Object, principal: undefined } UITour.jsm:347 "sendPageCallback" Object { data: Object, callbackID: "uumqibw" } UITour.jsm:858 "onPageEvent:" Object { action: "getConfiguration", data: Object } Object { target: <browser>, name: "UITour:onPageEvent", sync: false, json: Object, data: Object, objects: Object, principal: undefined } UITour.jsm:347 "sendPageCallback" Object { data: Object, callbackID: "olnwmol" } UITour.jsm:858 "onPageEvent:" Object { action: "registerPageID", data: Object } Object { target: <browser>, name: "UITour:onPageEvent", sync: false, json: Object, data: Object, objects: Object, principal: undefined } UITour.jsm:347 "onPageEvent:" Object { action: "setTreatmentTag", data: Object } Object { target: <browser>, name: "UITour:onPageEvent", sync: false, json: Object, data: Object, objects: Object, principal: undefined } UITour.jsm:347 "onPageEvent:" Object { action: "setTreatmentTag", data: Object } Object { target: <browser>, name: "UITour:onPageEvent", sync: false, json: Object, data: Object, objects: Object, principal: undefined } UITour.jsm:347 " _.-~-. 7'' Q..\ _7 (_ _7 _/ _q. / _7 . ___ /VVvv-'_ . 7/ / /~- \_\\ '-._ .-' / // ./ ( /-~-/||'=.__ '::. '-~'' { ___ / // ./{ V V-~-~| || __''_ ':::. ''~-~.___.-'' _/ // / {_ / { / VV/-~-~-|/ \ .'__'. '. ':: _ _ _ ''. / /~~~~||VVV/ / \ ) \ _ __ ___ ___ ___(_) | | __ _ .::' / (~-~-~\\.-' / \' \::::. | '_ ` _ \ / _ \_ / | | |/ _` | :::' /..\ /..\__/ ' '::: | | | | | | (_) / /| | | | (_| | ::' vVVv vVVv ': |_| |_| |_|\___/___|_|_|_|\__,_| '' Hi there, nice to meet you! Interested in having a direct impact on hundreds of millions of users? Join Mozilla, and become part of a global community that’s helping to build a brighter future for the Web. Visit https://careers.mozilla.org to learn about our current job openings. Visit https://www.mozilla.org/contribute for more ways to get involved and help support Mozilla. --- If you don't want to see this message next time, run this JS statement: Tabzilla.disableEasterEgg() " tabzilla.js:672:20 "onPageEvent:" Object { action: "showInfo", data: Object } Object { target: <browser>, name: "UITour:onPageEvent", sync: false, json: Object, data: Object, objects: Object, principal: undefined } UITour.jsm:347 "getTarget:" "appMenu" UITour.jsm:870 "_setAppMenuStateForAnnotation:" "info" UITour.jsm:941 "_setAppMenuStateForAnnotation: Menu is expected to be:" "closed" UITour.jsm:942 "_setAppMenuStateForAnnotation: Panel already in expected state" UITour.jsm:947 "handleEvent: type =" "TabSelect" "event =" TabSelect { target: <tab.tabbrowser-tab>, isTrusted: true, detail: Object, currentTarget: <tabs#tabbrowser-tabs.tabbrowser-tabs>, eventPhase: 3, bubbles: true, cancelable: false, defaultPrevented: false, timeStamp: 1423037496152589, originalTarget: <tab.tabbrowser-tab>, explicitOriginalTarget: <tab.tabbrowser-tab> } UITour.jsm:681 "teardownTourForBrowser: aBrowser = " <browser type="content-targetable" message="true" messagemanagergroup="browsers" contextmenu="contentAreaContextMenu" tooltip="aHTMLTooltip" autocompletepopup="PopupAutoComplete" selectmenulist="ContentSelectDropdown" autoscrollpopup="autoscroller" nodefaultsrc="true" clickthrough="never"> false UITour.jsm:752 "_setAppMenuStateForAnnotation:" "highlight" UITour.jsm:941 "_setAppMenuStateForAnnotation: Menu is expected to be:" "closed" UITour.jsm:942 "_setAppMenuStateForAnnotation: Panel already in expected state" UITour.jsm:947 "_setAppMenuStateForAnnotation:" "info" UITour.jsm:941 "_setAppMenuStateForAnnotation: Menu is expected to be:" "closed" UITour.jsm:942 "_setAppMenuStateForAnnotation: Panel already in expected state" UITour.jsm:947 "hideMenu:" "appMenu" UITour.jsm:1451 "hideMenu:" "loop" UITour.jsm:1451 "onPageEvent:" Object { action: "hideMenu", data: Object } Object { target: <browser>, name: "UITour:onPageEvent", sync: false, json: Object, data: Object, objects: Object, principal: undefined } UITour.jsm:347 "hideMenu:" "appMenu" UITour.jsm:1451 "onPageEvent:" Object { action: "hideHighlight", data: Object } Object { target: <browser>, name: "UITour:onPageEvent", sync: false, json: Object, data: Object, objects: Object, principal: undefined } UITour.jsm:347 "_setAppMenuStateForAnnotation:" "highlight" UITour.jsm:941 "_setAppMenuStateForAnnotation: Menu is expected to be:" "closed" UITour.jsm:942 "_setAppMenuStateForAnnotation: Panel already in expected state" UITour.jsm:947 "onPageEvent:" Object { action: "hideInfo", data: Object } Object { target: <browser>, name: "UITour:onPageEvent", sync: false, json: Object, data: Object, objects: Object, principal: undefined } UITour.jsm:347 "_setAppMenuStateForAnnotation:" "info" UITour.jsm:941 "_setAppMenuStateForAnnotation: Menu is expected to be:" "closed" UITour.jsm:942 "_setAppMenuStateForAnnotation: Panel already in expected state" UITour.jsm:947 "onPageEvent:" Object { action: "getConfiguration", data: Object } Object { target: <browser>, name: "UITour:onPageEvent", sync: false, json: Object, data: Object, objects: Object, principal: undefined } UITour.jsm:347 "sendPageCallback" Object { data: Object, callbackID: "jdthqzgqm" } UITour.jsm:858 "onPageEvent:" Object { action: "getConfiguration", data: Object } Object { target: <browser>, name: "UITour:onPageEvent", sync: false, json: Object, data: Object, objects: Object, principal: undefined } UITour.jsm:347 "sendPageCallback" Object { data: Object, callbackID: "qrovgo" } UITour.jsm:858 "onPageEvent:" Object { action: "getConfiguration", data: Object } Object { target: <browser>, name: "UITour:onPageEvent", sync: false, json: Object, data: Object, objects: Object, principal: undefined } UITour.jsm:347 "sendPageCallback" Object { data: Object, callbackID: "oyhzlbo" } UITour.jsm:858 "onPageEvent:" Object { action: "registerPageID", data: Object } Object { target: <browser>, name: "UITour:onPageEvent", sync: false, json: Object, data: Object, objects: Object, principal: undefined } UITour.jsm:347 "onPageEvent:" Object { action: "setTreatmentTag", data: Object } Object { target: <browser>, name: "UITour:onPageEvent", sync: false, json: Object, data: Object, objects: Object, principal: undefined } UITour.jsm:347 "onPageEvent:" Object { action: "setTreatmentTag", data: Object } Object { target: <browser>, name: "UITour:onPageEvent", sync: false, json: Object, data: Object, objects: Object, principal: undefined } UITour.jsm:347 " _.-~-. 7'' Q..\ _7 (_ _7 _/ _q. / _7 . ___ /VVvv-'_ . 7/ / /~- \_\\ '-._ .-' / // ./ ( /-~-/||'=.__ '::. '-~'' { ___ / // ./{ V V-~-~| || __''_ ':::. ''~-~.___.-'' _/ // / {_ / { / VV/-~-~-|/ \ .'__'. '. ':: _ _ _ ''. / /~~~~||VVV/ / \ ) \ _ __ ___ ___ ___(_) | | __ _ .::' / (~-~-~\\.-' / \' \::::. | '_ ` _ \ / _ \_ / | | |/ _` | :::' /..\ /..\__/ ' '::: | | | | | | (_) / /| | | | (_| | ::' vVVv vVVv ': |_| |_| |_|\___/___|_|_|_|\__,_| '' Hi there, nice to meet you! Interested in having a direct impact on hundreds of millions of users? Join Mozilla, and become part of a global community that’s helping to build a brighter future for the Web. Visit https://careers.mozilla.org to learn about our current job openings. Visit https://www.mozilla.org/contribute for more ways to get involved and help support Mozilla. --- If you don't want to see this message next time, run this JS statement: Tabzilla.disableEasterEgg() " tabzilla.js:672:20 "onPageEvent:" Object { action: "showInfo", data: Object } Object { target: <browser>, name: "UITour:onPageEvent", sync: false, json: Object, data: Object, objects: Object, principal: undefined } UITour.jsm:347 "getTarget:" "appMenu" UITour.jsm:870 "_setAppMenuStateForAnnotation:" "info" UITour.jsm:941 "_setAppMenuStateForAnnotation: Menu is expected to be:" "closed" UITour.jsm:942 "_setAppMenuStateForAnnotation: Panel already in expected state" UITour.jsm:947 "handleEvent: type =" "TabClose" "event =" TabClose { target: <tab.tabbrowser-tab>, isTrusted: true, view: ChromeWindow → browser.xul, detail: 0, layerX: 0, layerY: 0, pageX: 0, pageY: 0, which: 0, rangeParent: <xul:hbox.tab-content>, rangeOffset: 5 } UITour.jsm:681 "teardownTourForBrowser: aBrowser = " <browser type="content-targetable" message="true" messagemanagergroup="browsers" contextmenu="contentAreaContextMenu" tooltip="aHTMLTooltip" autocompletepopup="PopupAutoComplete" selectmenulist="ContentSelectDropdown" autoscrollpopup="autoscroller" nodefaultsrc="true" clickthrough="never"> true UITour.jsm:752 "_setAppMenuStateForAnnotation:" "highlight" UITour.jsm:941 "_setAppMenuStateForAnnotation: Menu is expected to be:" "closed" UITour.jsm:942 "_setAppMenuStateForAnnotation: Panel already in expected state" UITour.jsm:947 "_setAppMenuStateForAnnotation:" "info" UITour.jsm:941 "_setAppMenuStateForAnnotation: Menu is expected to be:" "closed" UITour.jsm:942 "_setAppMenuStateForAnnotation: Panel already in expected state" UITour.jsm:947 "hideMenu:" "appMenu" UITour.jsm:1451 "hideMenu:" "loop" UITour.jsm:1451
Flags: needinfo?(agibson)
Reporter | ||
Comment 4•9 years ago
|
||
From STR in Firefox 37 dev edition: "onPageEvent:" Object { action: "getConfiguration", data: Object } Object { target: <browser>, name: "UITour:onPageEvent", sync: false, json: Object, data: Object, objects: Object, principal: undefined } UITour.jsm:344 "sendPageCallback" Object { data: Object, callbackID: "irjvgosn" } UITour.jsm:874 "onPageEvent:" Object { action: "getConfiguration", data: Object } Object { target: <browser>, name: "UITour:onPageEvent", sync: false, json: Object, data: Object, objects: Object, principal: undefined } UITour.jsm:344 "sendPageCallback" Object { data: Object, callbackID: "bojirxnmvi" } UITour.jsm:874 "onPageEvent:" Object { action: "getConfiguration", data: Object } Object { target: <browser>, name: "UITour:onPageEvent", sync: false, json: Object, data: Object, objects: Object, principal: undefined } UITour.jsm:344 "sendPageCallback" Object { data: Object, callbackID: "tdbtbxbj" } UITour.jsm:874 "onPageEvent:" Object { action: "registerPageID", data: Object } Object { target: <browser>, name: "UITour:onPageEvent", sync: false, json: Object, data: Object, objects: Object, principal: undefined } UITour.jsm:344 "onPageEvent:" Object { action: "setTreatmentTag", data: Object } Object { target: <browser>, name: "UITour:onPageEvent", sync: false, json: Object, data: Object, objects: Object, principal: undefined } UITour.jsm:344 "onPageEvent:" Object { action: "setTreatmentTag", data: Object } Object { target: <browser>, name: "UITour:onPageEvent", sync: false, json: Object, data: Object, objects: Object, principal: undefined } UITour.jsm:344 " _.-~-. 7'' Q..\ _7 (_ _7 _/ _q. / _7 . ___ /VVvv-'_ . 7/ / /~- \_\\ '-._ .-' / // ./ ( /-~-/||'=.__ '::. '-~'' { ___ / // ./{ V V-~-~| || __''_ ':::. ''~-~.___.-'' _/ // / {_ / { / VV/-~-~-|/ \ .'__'. '. ':: _ _ _ ''. / /~~~~||VVV/ / \ ) \ _ __ ___ ___ ___(_) | | __ _ .::' / (~-~-~\\.-' / \' \::::. | '_ ` _ \ / _ \_ / | | |/ _` | :::' /..\ /..\__/ ' '::: | | | | | | (_) / /| | | | (_| | ::' vVVv vVVv ': |_| |_| |_|\___/___|_|_|_|\__,_| '' Hi there, nice to meet you! Interested in having a direct impact on hundreds of millions of users? Join Mozilla, and become part of a global community that’s helping to build a brighter future for the Web. Visit https://careers.mozilla.org to learn about our current job openings. Visit https://www.mozilla.org/contribute for more ways to get involved and help support Mozilla. --- If you don't want to see this message next time, run this JS statement: Tabzilla.disableEasterEgg() " tabzilla.js:672:20 "onPageEvent:" Object { action: "showInfo", data: Object } Object { target: <browser>, name: "UITour:onPageEvent", sync: false, json: Object, data: Object, objects: Object, principal: undefined } UITour.jsm:344 "getTarget:" "appMenu" UITour.jsm:886 "_setAppMenuStateForAnnotation:" "info" UITour.jsm:965 "_setAppMenuStateForAnnotation: Menu is expected to be:" "closed" UITour.jsm:966 "_setAppMenuStateForAnnotation: Panel already in expected state" UITour.jsm:971 "teardownTour: aWindowClosing = false" UITour.jsm:799 "_setAppMenuStateForAnnotation:" "highlight" UITour.jsm:965 "_setAppMenuStateForAnnotation: Menu is expected to be:" "closed" UITour.jsm:966 "_setAppMenuStateForAnnotation: Panel already in expected state" UITour.jsm:971 "_setAppMenuStateForAnnotation:" "info" UITour.jsm:965 "_setAppMenuStateForAnnotation: Menu is expected to be:" "closed" UITour.jsm:966 "_setAppMenuStateForAnnotation: Panel already in expected state" UITour.jsm:971 "onPageEvent:" Object { action: "hideMenu", data: Object } Object { target: <browser>, name: "UITour:onPageEvent", sync: false, json: Object, data: Object, objects: Object, principal: undefined } UITour.jsm:344 "Ignoring disallowed action from a hidden page:" "hideMenu" UITour.jsm:366 "onPageEvent:" Object { action: "hideHighlight", data: Object } Object { target: <browser>, name: "UITour:onPageEvent", sync: false, json: Object, data: Object, objects: Object, principal: undefined } UITour.jsm:344 "Ignoring disallowed action from a hidden page:" "hideHighlight" UITour.jsm:366 "onPageEvent:" Object { action: "hideInfo", data: Object } Object { target: <browser>, name: "UITour:onPageEvent", sync: false, json: Object, data: Object, objects: Object, principal: undefined } UITour.jsm:344 "Ignoring disallowed action from a hidden page:" "hideInfo" UITour.jsm:366 "onPageEvent:" Object { action: "getConfiguration", data: Object } Object { target: <browser>, name: "UITour:onPageEvent", sync: false, json: Object, data: Object, objects: Object, principal: undefined } UITour.jsm:344 "sendPageCallback" Object { data: Object, callbackID: "sltdelnr" } UITour.jsm:874 "onPageEvent:" Object { action: "getConfiguration", data: Object } Object { target: <browser>, name: "UITour:onPageEvent", sync: false, json: Object, data: Object, objects: Object, principal: undefined } UITour.jsm:344 "sendPageCallback" Object { data: Object, callbackID: "ztgpej" } UITour.jsm:874 "onPageEvent:" Object { action: "getConfiguration", data: Object } Object { target: <browser>, name: "UITour:onPageEvent", sync: false, json: Object, data: Object, objects: Object, principal: undefined } UITour.jsm:344 "sendPageCallback" Object { data: Object, callbackID: "qjhlyrbb" } UITour.jsm:874 "onPageEvent:" Object { action: "registerPageID", data: Object } Object { target: <browser>, name: "UITour:onPageEvent", sync: false, json: Object, data: Object, objects: Object, principal: undefined } UITour.jsm:344 "onPageEvent:" Object { action: "setTreatmentTag", data: Object } Object { target: <browser>, name: "UITour:onPageEvent", sync: false, json: Object, data: Object, objects: Object, principal: undefined } UITour.jsm:344 "onPageEvent:" Object { action: "setTreatmentTag", data: Object } Object { target: <browser>, name: "UITour:onPageEvent", sync: false, json: Object, data: Object, objects: Object, principal: undefined } UITour.jsm:344 " _.-~-. 7'' Q..\ _7 (_ _7 _/ _q. / _7 . ___ /VVvv-'_ . 7/ / /~- \_\\ '-._ .-' / // ./ ( /-~-/||'=.__ '::. '-~'' { ___ / // ./{ V V-~-~| || __''_ ':::. ''~-~.___.-'' _/ // / {_ / { / VV/-~-~-|/ \ .'__'. '. ':: _ _ _ ''. / /~~~~||VVV/ / \ ) \ _ __ ___ ___ ___(_) | | __ _ .::' / (~-~-~\\.-' / \' \::::. | '_ ` _ \ / _ \_ / | | |/ _` | :::' /..\ /..\__/ ' '::: | | | | | | (_) / /| | | | (_| | ::' vVVv vVVv ': |_| |_| |_|\___/___|_|_|_|\__,_| '' Hi there, nice to meet you! Interested in having a direct impact on hundreds of millions of users? Join Mozilla, and become part of a global community that’s helping to build a brighter future for the Web. Visit https://careers.mozilla.org to learn about our current job openings. Visit https://www.mozilla.org/contribute for more ways to get involved and help support Mozilla. --- If you don't want to see this message next time, run this JS statement: Tabzilla.disableEasterEgg() " tabzilla.js:672:20 "onPageEvent:" Object { action: "showInfo", data: Object } Object { target: <browser>, name: "UITour:onPageEvent", sync: false, json: Object, data: Object, objects: Object, principal: undefined } UITour.jsm:344 "getTarget:" "appMenu" UITour.jsm:886 "_setAppMenuStateForAnnotation:" "info" UITour.jsm:965 "_setAppMenuStateForAnnotation: Menu is expected to be:" "closed" UITour.jsm:966 "_setAppMenuStateForAnnotation: Panel already in expected state" UITour.jsm:971
Reporter | ||
Comment 5•9 years ago
|
||
What's weird is I just noticed this bug does not happen in 37 dev edition, but it does in FF 35 release version....
Comment 6•9 years ago
|
||
My hope is that our TabClose handler probably just needs to check if the closed tab was selected.
Comment 7•9 years ago
|
||
/r/3381 - Bug 1127810 - UITour: Don't teardown tour UI for a tab if it isn't selected. Pull down this commit: hg pull review -r 33ad66476a843111715df5811e913cc1556021a4
Comment 8•9 years ago
|
||
Comment on attachment 8559630 [details]
MozReview Request: bz://1127810/MattN
This feels kinda dirty to me and I worry about possible regressions (though the tours deal with teardown on tab switch too).
Attachment #8559630 -
Flags: feedback?(bmcbride)
Updated•9 years ago
|
Assignee: nobody → MattN+bmo
Status: NEW → ASSIGNED
Comment 9•9 years ago
|
||
https://reviewboard.mozilla.org/r/3381/#review2811 ::: browser/components/uitour/UITour.jsm (Diff revision 1) > this.setExpiringTelemetryBucket(pageID, aTourPageClosing ? "closed" : "inactive"); Hm... if the current tab is a tour page, and we close another tour page, this current sets a "closed" expiring bucket. It should be keeping the bucket from the current tour page. ::: browser/components/uitour/UITour.jsm (Diff revision 1) > if (aTourPageClosing) { This seems like the only thing we should be doing when closing a non-current tab.
Updated•9 years ago
|
Attachment #8559630 -
Flags: feedback?(bmcbride) → feedback-
Comment 10•9 years ago
|
||
Just pinging this bug. Do we think it will be completed by FF36?
Comment 11•9 years ago
|
||
(In reply to Cory Price [:ckprice] from comment #10) > Just pinging this bug. Do we think it will be completed by FF36? Sorry, I think it won't since the release candidate was already built.
No longer blocks: fx-UITour-hello-36
Comment 12•9 years ago
|
||
This isn't a priority for me at the moment and it's quite a tricky problem.
Assignee: MattN+bmo → nobody
Status: ASSIGNED → NEW
OS: Mac OS X → All
Hardware: x86 → All
Comment 13•9 years ago
|
||
Attachment #8559630 -
Attachment is obsolete: true
Comment 14•9 years ago
|
||
Updated•2 years ago
|
Severity: normal → S3
You need to log in
before you can comment on or make changes to this bug.
Description
•