-
Notifications
You must be signed in to change notification settings - Fork 2
Description
The presence of StartPage or JS files does not indicate that an app uses WinJS or is a JS app. Solitaire uses XAML and D3D and is written in either C++ or C# (I'd guess the former). It uses a WebView with a little local JS for one very small web-based feature of the app. This is definitely not using WinJS, nor is it a JS app by most anyone's definition.
Also, XAML is often included as a resource in the executable or a DLL. Looking for .xaml or .xbf files in the package may not identify all uses of XAML. Furthermore, an app could use XAML and JS (and even WinJS). Heck, there's one Xbox app that uses WinJS and D3D.
Most games, especially the larger name 3D ones, are C++ D3D apps. Some use bits of XAML for menus (and some use bits of HTML too, like Solitaire). But I'd generally classify these as D3D apps, not XAML (or HTML) apps. However, building a tool to automatically determine that may prove difficult.
To specifically detect reference to the WinJS library, you'd have to inspect the HTML and JS payload for references to the WinJS framework path (i.e. to base.js). But you probably don't care so much about that, and are more interested in whether it's a WWA (i.e. a JS/HTML app that runs in wwahost.exe). You might best do that by looking for the absence of the Executable attribute on the manifest's Application element. Telling a XAML app from a D3D app, though, will be more complicated. Especially if it uses both and you just want to know which it's using more of.
If you want to distinguish C# from C++, that's another matter. One approach for that is here:
http://stackoverflow.com/questions/2080046/how-to-check-if-a-program-is-using-net
Furthermore, there are apps which use just enough XAML to create a WebView but then have all of their functionality written in HTML/JS, whether it's local for comes from a server. Classifying these is another challenge.