Closed Bug 772714 Opened 12 years ago Closed 11 years ago

right-click crashes metrofx when running on the desktop on win7

Categories

(Core :: Widget: Win32, defect)

x86_64
Windows 8.1
defect
Not set
critical

Tracking

()

RESOLVED FIXED

People

(Reporter: jimm, Assigned: jimm)

Details

(Keywords: crash, Whiteboard: completed-elm)

Crash Data

Attachments

(1 file, 1 obsolete file)

I get - 

###!!! ASSERTION: Attempting to load winrt libs in non-metro environment. (Winrt variable type placed in global scope?): '!IsWinRTDLLPresent(pdli, kwinrtprelim)', file f:/Mozilla/firefox/elm/toolkit/library/nsDllMain.cpp, line 90

Not sure when this got introduced. Hopefully there's a work around.
xul!__delayLoadHelper2+0x00000000000000E7 (f:\dd\vctools\delayimp\delayhlp.cpp, line 286)
xul!_tailMerge_api_ms_win_core_winrt_string_l1_1_0_dll+0x000000000000000D
xul!Platform::String::String+0x000000000000002F (c:\program files (x86)\microsoft visual studio 11.0\vc\include\vccorlib.h, line 1520)
xul!mozilla::widget::SecondaryTileController::IsTilePinned+0x0000000000000080 (f:\mozilla\firefox\elm\widget\windows\winrt\secondarytilecontroller.cpp, line 108)
xul!NS_InvokeByIndex_P+0x0000000000000027 (f:\mozilla\firefox\elm\xpcom\reflect\xptcall\src\md\win32\xptcinvoke.cpp, line 71)
xul!CallMethodHelper::Invoke+0x0000000000000041 (f:\mozilla\firefox\elm\js\xpconnect\src\xpcwrappednative.cpp, line 3071)
xul!CallMethodHelper::Call+0x00000000000000CA (f:\mozilla\firefox\elm\js\xpconnect\src\xpcwrappednative.cpp, line 2405)
xul!XPCWrappedNative::CallMethod+0x00000000000001D4 (f:\mozilla\firefox\elm\js\xpconnect\src\xpcwrappednative.cpp, line 2371)
xul!XPC_WN_CallMethod+0x000000000000027C (f:\mozilla\firefox\elm\js\xpconnect\src\xpcwrappednativejsops.cpp, line 1474)

Looks like something in bringing up the app bar & IsTilePinned. We might be able to use the XRE_GetWindowsEnvironment() == WindowsEnvironmentType_Desktop test to avoid stuff like this. Although we wouldn't want to do anything that would change behavior of tests.
So this happens only when using -metrodesktop? Or when launching firefox without command line args?
Severity: normal → critical
Crash Signature: [@ __delayLoadHelper2 | _tailMerge_api_ms_win_core_winrt_string_l1_1_0_dll]
Keywords: crash
(In reply to Brian R. Bondy [:bbondy] from comment #2)
> So this happens only when using -metrodesktop? Or when launching firefox
> without command line args?

Release elm build with the -metrodesktop command line option on Win7. The older desktop browser is fine. 

I think what's happening is that right-click triggers the app bar which somehow hits code in the tile controller that creates winrt strings. That triggers a load of the winrt string lib which doesn't exist on win7. The delay load hook catches that and asserts.
Assignee: nobody → netzen
Attached patch fix (obsolete) — Splinter Review
Recent front end changes are now triggering this on start up.

GetSnappedState should probably fail, but the front end doesn't deal well with the unexpected exception.
Attachment #641790 - Flags: review?(netzen)
Assignee: netzen → jmathies
Comment on attachment 641790 [details] [diff] [review]
fix

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

Sorry I was going to work on this but I can't get VS2012 working on my Win7 machine.

::: widget/windows/winrt/nsWinMetroUtils.cpp
@@ +149,5 @@
>  nsWinMetroUtils::GetSnappedState(PRInt32 *aSnappedState)
>  {
>    NS_ENSURE_ARG_POINTER(aSnappedState);
> +  if (XRE_GetWindowsEnvironment() == WindowsEnvironmentType_Desktop) {
> +    *aSnappedState = 0;

Value 0 is already used for FullScreenLandscape, so maybe we should return -1 in this case.  That or some big value that Windows won't reuse anytime soon.  Current values are [0, 3] inclusive.

http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.viewmanagement.applicationviewstate.aspx
Attachment #641790 - Flags: review?(netzen)
re: the review comment, Jim explained that we want the UI to think it's full without extra front end code.  Although this doesn't say if we're in portrait or landscape though.

That's fine w/ me overall but would prefer to update the "= 0" to "= (PRInt32) ApplicationViewState::FullScreenLandscape ".
Attachment #641790 - Flags: review+
Attached patch patchSplinter Review
Attachment #641790 - Attachment is obsolete: true
I ended up fixing the front end and failing.
Attachment #641859 - Flags: review?(netzen)
Comment on attachment 641859 [details] [diff] [review]
patch

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

This seems best, thanks!
Attachment #641859 - Flags: review?(netzen) → review+
https://hg.mozilla.org/projects/elm/rev/417ee5ff7d36
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
oops, not on mc yet.
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Whiteboard: completed-elm
Status: REOPENED → RESOLVED
Closed: 12 years ago11 years ago
Resolution: --- → FIXED
OS: Windows 8 Metro → Windows 8.1
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: