NW.js v0.13.0-beta2 released

766 views
Skip to first unread message

Roger

unread,
Dec 30, 2015, 11:31:23 AM12/30/15
to nwjs-g...@googlegroups.com
0.13.0-beta2 is an urgent fix on 0.13.0-beta1, which was just
released. This version fix an issue that application window is opened
out of the screen on Windows.

Release Notes of 0.13.0-beta1:

We are delighted to announce NW.js 0.13.0-beta1, the first beta
release of the 0.13 version, which is based on an adjusted
architecture. It will bring the benefit of enabling most features in
the Chromium browser, including Chrome Apps support, chrome.* platform
APIs, NaCl and Pepper plugin, builtin PDF viewer, printing preview,
rich notifications and many more. We also expect faster release cycle
with the new architecture in 2016.

In this version Chromium is updated to 47.0.2526.73 and Node.js is
updated to 5.1. We’ll keep updating with the 2 upstreams in the beta
cycle.

We also changed the API to put everything from the ‘nw.gui’ library
into the ‘nw’ object. To provide API compatibility with 0.12
applications, we evaluate a builtin shim script at window context
creation. It simulates the API provided by 'require('nw.gui')'.

Starting from this version, the official documentation is maintained
in the same repo we use for development, and is available in
http://docs.nwjs.io . Welcome to submit PR for it. Documents for the
previous versions will be in the wiki as usual.

There is a new feature “content verification”, or “app signing”,
prevents loading unsigned files with your official binary. For more
information, see
http://docs.nwjs.io/en/latest/For%20Users/Advanced/Content%20Verification/

See what’s changed in the new version and how to migrate your application:
http://docs.nwjs.io/en/latest/For%20Users/Migration/From%200.12%20to%200.13/

Download
========
http://dl.nwjs.io/v0.13.0-beta2/nwjs-v0.13.0-beta2-win-x64.zip
http://dl.nwjs.io/v0.13.0-beta2/nwjs-v0.13.0-beta2-osx-x64.zip
http://dl.nwjs.io/v0.13.0-beta2/nwjs-v0.13.0-beta2-linux-x64.tar.gz

SDK build:
http://dl.nwjs.io/v0.13.0-beta2/nwjs-sdk-v0.13.0-beta2-win-x64.zip
http://dl.nwjs.io/v0.13.0-beta2/nwjs-sdk-v0.13.0-beta2-osx-x64.zip
http://dl.nwjs.io/v0.13.0-beta2/nwjs-sdk-v0.13.0-beta2-linux-x64.tar.gz

NaCl build and other platforms: http://dl.nwjs.io/v0.13.0-beta2/

There are 3 builds for each platform - normal build, sdk build and
Nacl build. Normal build doesn't have devtools, only SDK build does.
lt can be opened by pressing F12 (Cmd-Alt-I on OSX). SDK packages also
have more development tools to be exposed in the following releases,
as well as the NaCl support.

Our build infrastructure enables live binary build from git tip so you
can access to the latest binary from http://dl.nwjs.io/live-build/

More chrome.* API and features from Chromium browser
============================================
In previous 0.12 version we started to support chrome.webRequest API
to let you intercept network requests made by DOM. In this version we
bring even more of chrome.* API. Including rich notification, context
menu, usb, etc.

NW is now able to support rich notifications (aka message center based
notifications), with which you can put buttons, lists, images, icon
and progress bar in the notification. In this version we also supports
print preview and SSL client certificates.

Under the hood for this improvement is the effort made by upstream to
move the extension mechanism towards the Content layer, as well as
componentizing the browser modules
(https://www.chromium.org/developers/design-documents/browser-components).
NW will evolve with upstream towards the “app shell” architecture. In
future we’ll split the browser components as separate loadable modules
so the binary size can be shrunk significantly. The new architecture
diagram is posted here:
https://github.com/nwjs/nw.js/wiki/NW13-architecture

We are also using it to refactor the implementation of ‘nw.gui’
library in 0.12. The extension mechanism provide a lightweight and
elegant solution for JS API binding. With it we are able to eliminate
the overhead of additional IPC messages used in previous version.

See the upstream docs for the listing of chrome APIs:
https://developer.chrome.com/apps/api_index . Note that APIs related
to browser window operation is not supported, because there is no
normal Chrome browser window in NW. We support the “app window”
instead.

NW developers follows upstream changes closely and bring them to the
application developers. Previously in 0.12 we used the new code cache
feature in the V8 engine to improve JS source code compilaton (
http://docs.nwjs.io/en/latest/For%20Users/Advanced/Protect%20JavaScript%20Source%20Code/
)

Chrome (Packaged) App support
=========================
After supporting many chrome.* APIs, the manifest spec for Chrome Apps
are also supported in straightforward way. That means many Chrome Apps
can be run directly on NW. Clone the sample apps repository
(https://github.com/GoogleChrome/chrome-app-samples) and run one of
them with:

$ /path/to/nw.exe <folder path of the manifest.json file>

or drag the folder to the NW executable. CRX packaging for Chrome Apps
is not supported but you can use the packaging mechanisms provided by
NW. See http://docs.nwjs.io/en/latest/For%20Users/Package%20and%20Distribute/

And of course Node.js APIs can be accessed from Chrome App: add “node”
permission to manifest.json and you are ready to call nw.require().

So NW supports 2 kinds of applications now: Chrome Apps and NW Apps.
The one with a ‘manifest.json’ file is a Chrome App (with an exception
below), while NW App is the one with ‘package.json’. They run in
different security model: Chrome Apps run in the same model from
Chromium upstream; NW App runs in the native “Node” security model
provided by NW platfrom. Apps that has “node” permission in
‘manifest.json’ is a NW App.

The native security model tries to provide you the maximum capability
as in a traditional C++ desktop application. You can access all the
chrome.* APIs without declaring permission in manifest, load all
Node.js libraries and DOM operations are not limited by cross origin
checks any more. Untrusted contents are still running in the same
security model from Chromium browser. For more information, see
http://docs.nwjs.io/en/latest/For%20Users/Advanced/Security%20in%20NW.js/

Known issues
===========
http://docs.nwjs.io/en/latest/For%20Users/Migration/From%200.12%20to%200.13/#known-issues

Acknowledgements
===============
Thanks to the following people for their contributions to the release:
* Liu Cong: porting APIs, documentation and tests
* Jefry Tedjokusumo from V-cube Global Services: transparency and
click-through feature
* Kevin Fan: rebase to Chromium 47 and Node.js 5.1
* Chase Willden: porting APIs
* Adam Lynch, Steffen Müller, etc for package tools
* And to all the people who submit bug reports, wiki docs and
answering questions in mailing list and gitter channel!

VoidVolker

unread,
Dec 30, 2015, 3:21:20 PM12/30/15
to nw.js
Awesome! Roger, thanks for the great job :D
Is this version stable for production use?

Roger Wang

unread,
Dec 30, 2015, 11:31:15 PM12/30/15
to nw.js
On Thursday, December 31, 2015 at 12:31:23 AM UTC+8, Roger Wang wrote:
0.13.0-beta2 is an urgent fix on 0.13.0-beta1, which was just
released. This version fix an issue that application window is opened
out of the screen on Windows.

You'll need to remove the user data dir if you ever experienced this bug, because in 0.13 NW will record and restore the window geometry between sessions. The geometry is saved/restored according to a 'id' option when you create windows. The default id is '.main'. Will add this to the documentation. See also https://developer.chrome.com/apps/app_window#type-CreateWindowOptions

Roger

Ashley Gullen

unread,
Dec 31, 2015, 6:48:35 AM12/31/15
to nwjs-g...@googlegroups.com
A number of Construct 2 users are concerned about upgrading their already-released games using 0.12.x or earlier. Apparently storage works differently in 0.13+ which means updating an existing app will erase all storage (e.g. losing user's savegames). Is there any solution for this?

Ashley



--
You received this message because you are subscribed to the Google Groups "nw.js" group.
To unsubscribe from this group and stop receiving emails from it, send an email to nwjs-general...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Roger Wang

unread,
Dec 31, 2015, 7:55:33 AM12/31/15
to nw.js
There is a feature to automatically migrate the localstorage on startup. We added it as a test case. Please try it and provide feedback.


btw, the data used by the case is generated with 0.10. I think it's the same for 0.12.

Roger
To unsubscribe from this group and stop receiving emails from it, send an email to nwjs-general+unsubscribe@googlegroups.com.

Roger Wang

unread,
Dec 31, 2015, 7:58:19 AM12/31/15
to nw.js
We have user start using it in production with the alpha version for the NaCl feature. But please test your application before shipping.

Roger

Ashley Gullen

unread,
Jan 1, 2016, 9:11:58 AM1/1/16
to Roger Wang, nw.js
Is this migration new to this beta release? I didn't think the alphas were importing anything.

Roger
To unsubscribe from this group and stop receiving emails from it, send an email to nwjs-general...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "nw.js" group.
To unsubscribe from this group and stop receiving emails from it, send an email to nwjs-general...@googlegroups.com.

Roger

unread,
Jan 1, 2016, 9:53:58 AM1/1/16
to Ashley Gullen, nw.js
It's in alpha6 and later.

lithi...@gmail.com

unread,
Jan 2, 2016, 9:36:07 AM1/2/16
to nw.js
I have this: "chromium-args" : "--data-path='storage/'" in package.json, but it seems it doesn't work or am I doing something wrong?

cong...@gmail.com

unread,
Jan 4, 2016, 1:43:01 AM1/4/16
to nw.js, lithi...@gmail.com
--data-path is not supported yet. See known issues from official doc website.

在 2016年1月2日星期六 UTC+8下午10:36:07,lithi...@gmail.com写道:

gita...@gmail.com

unread,
Jan 4, 2016, 3:31:37 AM1/4/16
to nw.js
congrat!! nwjs is going strong in new year :)

Ashley Gullen

unread,
Jan 6, 2016, 3:10:17 PM1/6/16
to Roger, nwjs-g...@googlegroups.com
I think I've found a weird problem in 0.13.0-beta2: if the "name" field of the manifest includes an uppercase character, it fails to create the window and leaves a ghost process (at least on Windows). alpha7 did not have this issue. This breaks pretty much all Construct 2 content, because they all use names derived from the name of the project, which usually has a capital letter.

In general I have to say it would be very useful if NW.js had better failure modes. Almost every problem I've ever had has involved leaving NW.js ghost processes behind which leave nothing useful in debug.log and provide no information at all on what the problem might be. It makes issues (such as this one) turn in to frustrating hours-long hunts, generally starting from a known-good demo and making line-by-line changes towards something that is not working. It would save so much time if it could just prompt a messagebox (or at least write to debug.log) something like "invalid name field", "failed to create window", "failed to initialise node" or anything at all!

- Ashley




On 30 December 2015 at 16:31, Roger <wen...@gmail.com> wrote:

Ashley Gullen

unread,
Jan 6, 2016, 3:16:25 PM1/6/16
to Roger, nwjs-g...@googlegroups.com
Actually, scratch that - it turned out to be a case of a corrupt folder in AppData\Local. I think it was corrupted by using "Reload app" or some other context menu option, and deleting it or changing the name in the manifest fixed it. Still, my point about NW.js failure modes stands...

Alain Ekambi

unread,
Jan 7, 2016, 5:54:57 AM1/7/16
to nw.js
It seems like login into services like Google or Facebook does not work.
This is my package.json

{

  "name": "Google Desktop",

   "main": "https://google.com", 

  "window": {

    "icon": "favicon.ico",

"width" : 1000,

"height" :750,

"toolbar" : true

  }

}


But I can't login into my Google account ? 

Any idea what 's wrong ? 


Also OAuth seems to not working.

Alain Ekambi

unread,
Jan 7, 2016, 6:40:23 AM1/7/16
to nw.js
Seems to work with the latest nightly build but window.open crashes nw.js as reported here : https://github.com/nwjs/nw.js/issues/4180

--
You received this message because you are subscribed to the Google Groups "nw.js" group.
To unsubscribe from this group and stop receiving emails from it, send an email to nwjs-general...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--

Alain Ekambi

Co-Founder

Ahomé Innovation Technologies

http://www.ahome-it.com/

Reply all
Reply to author
Forward
0 new messages