Closed Bug 950986 Opened 11 years ago Closed 10 years ago

"Windows 8 Touch" (switch to Metro) not appearing in Australis menu panel or customization UI on a Windows 8 tablet

Categories

(Firefox :: Toolbars and Customization, defect, P2)

x86_64
Windows 8.1
defect

Tracking

()

VERIFIED FIXED
Firefox 29
Tracking Status
firefox28 --- verified
firefox29 --- verified

People

(Reporter: mbrubeck, Assigned: emtwo)

References

(Blocks 1 open bug)

Details

(Whiteboard: [beta28] [defect] p=2)

Attachments

(1 file)

The "Relaunch in Windows 8 Touch" button is supposed to appear in the menu panel when Firefox is running on Windows 8 or higher, but KarstenS on SUMO reports that it is not included anywhere, running Nightly on a Dell Venue Pro 8 with Windows 8.1, even after setting Nightly as the default browser and using the "Restore Defaults" button in the customization panel:

https://support.mozilla.org/en-US/questions/962513

We haven't seen this in our own testing, and I don't know what might cause it.  If anyone can figure out steps to reproduce this, that would be great.
Depends on: 951120
No longer depends on: 951120
Technical details from that tablet: http://i.dell.com/sites/doccontent/corporate/secure/en/Documents/dell-venue-8pro-brochure.pdf

Additional information: With firefox builds from Aurora branch it is working as intended to launch in Metro mode. The issue happans in the nightly branch.
(In reply to KarstenS from comment #1)
> Technical details from that tablet:
> http://i.dell.com/sites/doccontent/corporate/secure/en/Documents/dell-venue-
> 8pro-brochure.pdf
> 
> Additional information: With firefox builds from Aurora branch it is working
> as intended to launch in Metro mode. The issue happans in the nightly branch.

If you open the browser console (ctrl+shift+j on the desktop version) and evaluate:

Services.sysinfo.getProperty("hasWindowsTouchInterface")

What is the returned value?
Flags: needinfo?(karsten.schilder)
Whiteboard: [triage] → [triage] [defect] p=0
Device: DVP8, Branch: nightly, Metro working: no, Result of that command: false

Device: DVP8, Branch: nightly, Metro working: YES, Result of that command: false

Device: Desktop PC (without any touch device), Branch: nightly, Metro working: YES, Result of that command: false

Maybe the detection of the touch device is not working as it should, because the DVP8 has got 2 digitizers? One for fingers and one for pen.

When you look at the first and the third test, there is the question: does this value really belongs to that issue?
Flags: needinfo?(karsten.schilder)
(In reply to KarstenS from comment #3)

> Device: DVP8, Branch: nightly, Metro working: YES, Result of that command:
> false

Corrected line:

Device: DVP8, Branch: AURORA, Metro working: YES, Result of that command: false
(In reply to KarstenS from comment #3)

> Device: Desktop PC (without any touch device), Branch: nightly, Metro
> working: YES, Result of that command: false

Switching from Metro to desktop was possible in this case. Switching back to metro not, because of the missung entry in the menu.
(In reply to KarstenS from comment #3)
> Device: DVP8, Branch: nightly, Metro working: no, Result of that command:
> false
> 
> Device: DVP8, Branch: aurora, Metro working: YES, Result of that command:
> false

That's really weird, since hasWindowsTouchInterface should be set to "true" on any computer running Windows 8.0 or later, and the "Relaunch in Metro" menu item shouldn't be shown unless that property is true.
Another user reported the same problem:
https://twitter.com/GrandGerminator/status/413724614414827520
Keywords: steps-wanted
If you are seeing this problem, what do you get if you run the following code in the Browser Console (control-shift-J) in a version of desktop Firefox where the problem occurs?

Services.sysinfo.getProperty('version')
Flags: needinfo?(karsten.schilder)
Another question:  Is your Firefox/Nightly/Aurora application configured to run in "Compatibility mode"?  http://support.microsoft.com/kb/292533
Same problem here.
Services.sysinfo.getProperty("hasWindowsTouchInterface") = false
Services.sysinfo.getProperty('version') = 6.3
No compatibility mode.
But: using amd64 build.
Maybe the Windows 64-bit nightly does not have Metro enabled for some reason.  Could you paste the contents of the "about:buildconfig" page into this bug, please?

Does the same problem occur in the 32-bit nightly build from http://nightly.mozilla.org/?
Flags: needinfo?(karsten.schilder)
about:buildconfig
Build Machine

W64-IX-SLAVE76
Source

Built from http://hg.mozilla.org/mozilla-central/rev/5c7fa2bfea8b
Build platform
target
x86_64-pc-mingw32
Build tools
Compiler 	Version 	Compiler flags
cl 	16.00.30319.01 	-TC -nologo -W3 -Gy -Fdgenerated.pdb -wd4244 -wd4819 -we4553
cl 	16.00.30319.01 	-wd4099 -TP -nologo -W3 -Gy -Fdgenerated.pdb -wd4251 -wd4244 -wd4345 -wd4351 -wd4482 -wd4800 -wd4819 -we4553 -GR- -DNDEBUG -DTRIMMED -Zi -UDEBUG -DNDEBUG -O1 -Oy-
Configure arguments

--target=x86_64-pc-mingw32 --host=x86_64-pc-mingw32 --enable-crashreporter --enable-release --enable-update-channel=nightly --enable-update-packaging --enable-jemalloc --with-google-api-keyfile=/c/builds/gapi.data --enable-signmar --enable-profiling --enable-metro --enable-js-diagnostics
(In reply to Matt Brubeck (:mbrubeck) from comment #8)
> If you are seeing this problem, what do you get if you run the following
> code in the Browser Console (control-shift-J) in a version of desktop
> Firefox where the problem occurs?
> 
> Services.sysinfo.getProperty('version')

6.3
(In reply to Matt Brubeck (:mbrubeck) from comment #9)
> Another question:  Is your Firefox/Nightly/Aurora application configured to
> run in "Compatibility mode"?  http://support.microsoft.com/kb/292533

no
If we can confirm that the metro button in the file menu in Aurora is working but not the Australis one on Nightly, and if we still can't identify why XP_WIN or MOZ_METRO is not defined, we can remove those checks and instead check for sysInfo.getProperty("name") which is what is currently being done on Aurora.

http://mxr.mozilla.org/mozilla-aurora/source/browser/base/content/browser.js#2550
I have the same issue with my Surface Pro from Microsoft with Windows 8.1 : the button doesn't appear.
I'm using Nightly 29.0a.1 win32 without any compatibility mode.

Services.sysinfo.getProperty("hasWindowsTouchInterface")
false
Services.sysinfo.getProperty('version')
"6.3"
Services.sysinfo.getProperty("name")
"Windows_NT"

about:buildconfig
Build Machine

W64-IX-SLAVE125
Source

Built from http://hg.mozilla.org/mozilla-central/rev/cd3e9359fd64
Build platform
target
i686-pc-mingw32
Build tools
Compiler 	Version 	Compiler flags
cl 	16.00.30319.01 	-TC -nologo -W3 -Gy -Fdgenerated.pdb -wd4244 -wd4819 -we4553
cl 	16.00.30319.01 	-wd4099 -TP -nologo -W3 -Gy -Fdgenerated.pdb -wd4251 -wd4244 -wd4345 -wd4351 -wd4482 -wd4800 -wd4819 -we4553 -GR- -DNDEBUG -DTRIMMED -Zi -UDEBUG -DNDEBUG -O1 -Oy-
Configure arguments

--enable-crashreporter --enable-release --enable-update-channel=nightly --enable-update-packaging --enable-jemalloc --with-google-api-keyfile=/c/builds/gapi.data --enable-warnings-as-errors --enable-signmar --enable-profiling --enable-metro --enable-js-diagnostics


I hope knowing that the problem occurs also on 32-bits builds will help. I'm available for any other test. Just mail me.
I just registered to Bugzilla due to this bug.
Same problem here, no modern UI even though it has all the standards, no such button.
Unable to confirm if it works on Aurora: Should there be a button (I wouldn't know where) or should it just work after assigning the standards? The latter didn't work.

Device:
Lenovo IdeaPad Yoga 13 (ultrabook that can be used as tablet)
Windows 8.1

Services.sysinfo.getProperty('version') 6.3
Services.sysinfo.getProperty("hasWindowsTouchInterface") false

about:buildconfig
Build Machine

W64-IX-SLAVE125
Source

Built from http://hg.mozilla.org/mozilla-central/rev/4b242b19b006
Build platform
target
i686-pc-mingw32
Build tools
Compiler 	Version 	Compiler flags
cl 	16.00.30319.01 	-TC -nologo -W3 -Gy -Fdgenerated.pdb -wd4244 -wd4819 -we4553
cl 	16.00.30319.01 	-wd4099 -TP -nologo -W3 -Gy -Fdgenerated.pdb -wd4251 -wd4244 -wd4345 -wd4351 -wd4482 -wd4800 -wd4819 -we4553 -GR- -DNDEBUG -DTRIMMED -Zi -UDEBUG -DNDEBUG -O1 -Oy-
Configure arguments

--enable-crashreporter --enable-release --enable-update-channel=nightly --enable-update-packaging --enable-jemalloc --with-google-api-keyfile=/c/builds/gapi.data --enable-warnings-as-errors --enable-signmar --enable-profiling --enable-metro --enable-js-diagnostics

Should you need any more information, let me know.

Best regards
Chris
(In reply to ChrisF from comment #17)
> Unable to confirm if it works on Aurora: Should there be a button (I
> wouldn't know where) or should it just work after assigning the standards?
> The latter didn't work.

Hi Chris, Thanks for reporting. Are you able to switch to the modern UI on Aurora? There should be a button under the file menu that says "Relaunch in Windows 8 Style Aurora"

https://support.mozilla.org/en-US/kb/how-do-i-install-windows-8-metro-style-firefox
Flags: needinfo?(christian)
Hi kpoirot, thanks for reporting as well. Are you able to switch to the modern UI on Aurora? Please see comment 18 for how to do so. Thanks!
Flags: needinfo?(kpoirot)
(In reply to Marina Samuel [:emtwo] from comment #19)
> Hi kpoirot, thanks for reporting as well. Are you able to switch to the
> modern UI on Aurora? Please see comment 18 for how to do so. Thanks!

Yes I can switch to modern UI on Aurora 28.0a2.
And for the record, I used Modern UI on Nightly 28 (before the introduction of Australis menu panel). Since the 29th version, I'm not able to do it anymore.
Flags: needinfo?(kpoirot)
(In reply to Marina Samuel [:emtwo] from comment #18)
> (In reply to ChrisF from comment #17)
> > Unable to confirm if it works on Aurora: Should there be a button (I
> > wouldn't know where) or should it just work after assigning the standards?
> > The latter didn't work.
> 
> Hi Chris, Thanks for reporting. Are you able to switch to the modern UI on
> Aurora? There should be a button under the file menu that says "Relaunch in
> Windows 8 Style Aurora"

Yes, after installing Aurora 28.0a2 and deinstalling Nightly (which kept the standards no matter what) I was able to switch to Modern UI in Aurora using the button under the file menu.

Hope that helps.
Flags: needinfo?(christian)
Hi Brian,

We seem to be having an issue where sysinfo.getProperty("hasWindowsTouchInterface") returns false despite sysinfo.getProperty('version') >= 6.2

Which seems to imply that either XP_WIN or MOZ_METRO are not defined on some win8 builds so users cannot see the 'switch to metro' button. However the button shows up on Aurora which doesn't use these flags.

Do you have any idea why this may the case? If not, does it seem reasonable to remove XP_WIN and MOZ_METRO checks from http://dxr.mozilla.org/mozilla-central/source/browser/components/customizableui/src/CustomizableWidgets.jsm#780 and http://dxr.mozilla.org/mozilla-central/source/xpcom/base/nsSystemInfo.cpp#179

and instead check for os name == "Windows_NT like we do on Aurora?

Thanks!
Flags: needinfo?(netzen)
I think the problem is the atof() call here, which will fail in locales where the decimal separator is not a period:
http://hg.mozilla.org/mozilla-central/file/325c74addeba/xpcom/base/nsSystemInfo.cpp#l184
Flags: needinfo?(netzen)
Thanks for finding this, Matt!
Attachment #8355592 - Flags: review?(mbrubeck)
Comment on attachment 8355592 [details] [diff] [review]
v1: Use ToDouble() to convert version to a double independent of locale

Review of attachment 8355592 [details] [diff] [review]:
-----------------------------------------------------------------

Handing off review to an XPCOM peer.
Attachment #8355592 - Flags: review?(mbrubeck)
Attachment #8355592 - Flags: review?(doug.turner)
Attachment #8355592 - Flags: feedback+
May someone make a build with this patch please? Would like to test it.
(In reply to Marina Samuel [:emtwo] from comment #22)
> Which seems to imply that either XP_WIN or MOZ_METRO are not defined on some
> win8 builds so users cannot see the 'switch to metro' button.

It's impossible unless the users are using self-made builds because XP_WIN and MOZ_METRO are build-time options.
Blocks: 956629
Whiteboard: [triage] [defect] p=0 → [beta28] [defect] p=0
Marina Samuel:

Great! In your build I have the button and it works. Thanks!
(In reply to Marina Samuel [:emtwo] from comment #29)
> Karsten, there is a build here you can try:
> http://ftp.mozilla.org/pub/mozilla.org/firefox/try-builds/msamuel@mozilla.
> com-0a2783919ac3/try-win32/firefox-29.0a1.en-US.win32.installer.exe

Thanks alot.

Can confirm, the button is now available and working.
Comment on attachment 8355592 [details] [diff] [review]
v1: Use ToDouble() to convert version to a double independent of locale

lgtm
Attachment #8355592 - Flags: review?(doug.turner) → review+
https://hg.mozilla.org/integration/fx-team/rev/9e1c24e4206b
Whiteboard: [beta28] [defect] p=0 → [fixed-in-fx-team][beta28] [defect] p=0
Assignee: nobody → msamuel
Blocks: metrov1it22
No longer blocks: metrov1backlog
Status: NEW → ASSIGNED
Priority: -- → P2
QA Contact: jbecerra
Whiteboard: [fixed-in-fx-team][beta28] [defect] p=0 → [fixed-in-fx-team][beta28] [defect] p=2
https://hg.mozilla.org/mozilla-central/rev/9e1c24e4206b
Status: ASSIGNED → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Whiteboard: [fixed-in-fx-team][beta28] [defect] p=2 → [beta28] [defect] p=2
Target Milestone: --- → Firefox 29
Comment on attachment 8355592 [details] [diff] [review]
v1: Use ToDouble() to convert version to a double independent of locale

[Approval Request Comment]
Bug caused by (feature/regressing bug #): 945842

User impact if declined: Users with locales using ',' instead of '.' as a separator would not see the button in Australis to switch to Metro

Testing completed (on m-c, etc.): Tested locally and two users with the issue have tested a try build included in this bug

Risk to taking this patch (and alternatives if risky): Low risk, only metro-related code uses the "hasWindowsTouchInterface" sysinfo property

String or IDL/UUID changes made by this patch: none
Attachment #8355592 - Flags: approval-mozilla-aurora?
Attachment #8355592 - Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
This (neither the "fixed" version linked here nor nightly nor aurora) did unfortunately not fix the problem for me on an iconia w511 running win8.1,
Services.sysinfo.getProperty("hasWindowsTouchInterface") true
Services.sysinfo.getProperty('version') "6.3"
Services.sysinfo.getProperty("name") "Windows_NT"
(In reply to la from comment #38)
> This (neither the "fixed" version linked here nor nightly nor aurora) did
> unfortunately not fix the problem for me on an iconia w511 running win8.1,
> Services.sysinfo.getProperty("hasWindowsTouchInterface") true
> Services.sysinfo.getProperty('version') "6.3"
> Services.sysinfo.getProperty("name") "Windows_NT"

Do you not see the button when opening the customization UI in Nightly? (right click the toolbar, "Customize...")

If not, please file a new issue: https://bugzilla.mozilla.org/enter_bug.cgi?product=Firefox&component=Toolbars%20and%20Customization and either CC me or link to it here. Thank you!
Have you tried going to "Customize" in the top right toolbar then tapping "Restore Defaults"?
I've filed a new issue at https://bugzilla.mozilla.org/show_bug.cgi?id=961862
Juan, can you please verify this is fixed in Nightly and Aurora?
Flags: needinfo?(jbecerra)
Keywords: verifyme
Verified as fixed for iteration #22, with latest Nightly 32bit and 64bit build and latest Aurora 32bit on Surface pro 2 with Windows 8.1 64-bit.
Status: RESOLVED → VERIFIED
Keywords: verifyme
Removing *wanted keywords as per comment 43.
Flags: needinfo?(jbecerra)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: