NW.js v0.13.0-alpha6 is available

1,537 views
Skip to first unread message

Roger

unread,
Nov 25, 2015, 1:41:42 AM11/25/15
to nwjs-g...@googlegroups.com
(NOTE: This version is a snapshot of the next major version 0.13 which
is under active development. For now it’s not compatible with some of
the APIs in 0.12, as we are refactoring them with a new technology
from upstream. In the final release of 0.13, it will be compatible
with all features in 0.12. It’s recommended for you to try this
release and give your valuable feedback.)

Hello,

We are pleased to announce NW.js 0.13.0-alpha6. In this version more
features are ported from 0.12 and a new feature "content verification"
is added.

The "content verification" feature, or "app signing", prevents loading
unsigned files with your official binary. Given a keypair,
'verified_contents.json' is the signature for the application files.
It's created with the tool 'sign.py' and the private key
(private_key.pem file). The public key is built into NW.js binary. To
run the signed application, use 'nw --verify-content=enforce_strict .'
in the application directory. It will show the simple page. In the
next, try to modify index.html a little bit and run it again. NW will
report the file is corrupted and quit immediately. For more
information on this feature, refer to the section below.

There are more APIs and features ported from 0.12: nw.App methods;
manifest fields; native module build support with new version of
nw-gyp. See the "Changes" section for detail.
Now we're using a chart to track the status in real time. It would be
helpful for you to decide whether nw13 could run with your
application:
https://docs.google.com/spreadsheets/d/1fy0-BBZaslqsEhgC0pFZmAloqRUSw3yO0taucskSCj8/edit?usp=sharing

Starting from 0.13.0-alpha0 we've been supporting Chrome Apps and many
chrome.* APIs. For more information about it, see the previous
announcement: https://groups.google.com/d/msg/nwjs-general/IqfH1RXNGlw/2PgeRGHO-B4J

Changes (features ported from nw12)
=============================
* nwjc: compile JS to machine code for source code protection
* nw.Tray fix
* 'single-instance' support ('true' only)
* 'user-agent' in manifest
* 'dom_storage_quota' and 'additional_trust_anchors' in manifest
* Fix 'child_process.fork'
* Fix: unable to launch in some Linux distributions
* nw.App methods: argv, clearCache, setProxyConfig,
addOriginAccessWhitelistEntry, removeOriginAccessWhitelistEntry, part
of 'open' event
* support migrating localstorage data file on app start
* nw-gyp updated to 0.13.0: Fix native module build support

Content Verification
===============
To sign an application with the demo keypair, do the following:
1. change to application directory
2. make sure 'verified_contents.json' or 'computed_hashes.json' is not
there (you can just remove them)
3. run 'python sign.py > /tmp/verified_contents.json' (it's important
that the tmp destination directory is not application directory)
4. move the generated 'verified_contents.json' file to application dir
and it's done.

To use your own keypair you'll need to rebuild the nw.js binary. And
the argument for '--verify-content=' in the command line need to be
set to 'enforce_strict' by default in your build.
1. generate your keypair: openssl genrsa -out private_key.pem 2048
(the output file contains both the private and public key)
2. run python convertkey.py; it will convert the public key to C source code.
3. put the generated source code in
content/nw/src/nw_content_verifier_delegate.cc; replace the default
key.
4. change the default value for the command line argument: change line
no.73 in that file to:
Mode experiment_value = ContentVerifierDelegate::ENFORCE_STRICT;
5. build the NW.js binary.

Tools, sample application and the demo private key is under
'tools/sign' directory. The demo private key is paired with the public
key built into the official NW.js binaries.

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

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

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

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 package will
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 for this branch from
http://dl.nwjs.io/live-build/

Known issues
==========
- [WIN] menubar not shown when DWN is disabled

Jet Ma

unread,
Nov 25, 2015, 4:23:17 AM11/25/15
to nw.js
wow

tiitr...@gmail.com

unread,
Nov 25, 2015, 6:52:47 AM11/25/15
to nw.js
Great work!

I read from this Google docs chart that manifest node-remote is implemeted but "with a different spec". Is there new spec or API documented somewhere? I would really like to use multiple hosts there. When i use old syntax it says: Invalid value for 'app.urls[0]': Invalid port.

Ryan J

unread,
Nov 25, 2015, 7:02:11 AM11/25/15
to nw.js
Would it be possible to get some wiki pages for NWjs 13 alphas, because I wish to start messing around with 13.0 but I don't know all the api changes/additions or manifest changes.
I tried messing with it once but everything I knew abut 12 didn't help at all. 

Roger Wang

unread,
Nov 25, 2015, 8:08:40 AM11/25/15
to nw.js, tiitr...@gmail.com

Roger Wang

unread,
Nov 25, 2015, 8:13:19 AM11/25/15
to nw.js
Will compose a wiki page soon. Basically all the features are moved from 'nw.gui' library into the 'nw' object: nw.require, nw.Window, nw.App etc. Under the hook it uses the same efficient API binding mechanism  which upstream is using for Chrome Apps. 

We are also working on an API wrapper to provide backward compatibility for nw12 apps.

Thanks,

Roger

Ashley Gullen

unread,
Nov 25, 2015, 8:39:08 AM11/25/15
to Roger Wang, nw.js
Thanks, these updates are great!

I'm wondering if there's a way we could reduce the download size for Construct 2 games built with NW.js. It's a pure HTML5 engine so we don't need any of the nacl/pnacl stuff, but we need devtools for development and diagnostics. I think I read the "sdk" build includes both nacl and devtools stuff. Is there a build that has only devtools and no nacl? Or can I delete nacl related files from the SDK build without breaking anything? Also what's "nwjc"?

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.

Siddhartha Gupta

unread,
Nov 25, 2015, 11:10:24 PM11/25/15
to nw.js
Hey Roger,

I'd really like to appreciated the amount of time and effort nw devs and community has put in to build such an great & awesome project. We are using nw from quite some time for our internal projects and we are closely following the progress of nw13 as well. In case you have a roadmap of nw upcoming release, can you share the same, i.e after alpha are we going to have beta(s) and RC(s) and then a final version? If so, do we have a tentative release date(like 1/2 month(s)) for final version as well?

VoidVolker

unread,
Nov 26, 2015, 1:32:07 AM11/26/15
to nw.js
`nw.Window.open` did not return new window object.

Roger Wang

unread,
Nov 26, 2015, 3:46:48 AM11/26/15
to nw.js
On Wednesday, November 25, 2015 at 9:39:08 PM UTC+8, Ashley Gullen wrote:
Thanks, these updates are great!

I'm wondering if there's a way we could reduce the download size for Construct 2 games built with NW.js. It's a pure HTML5 engine so we don't need any of the nacl/pnacl stuff, but we need devtools for development and diagnostics. I think I read the "sdk" build includes both nacl and devtools stuff. Is there a build that has only devtools and no nacl? Or can I delete nacl related files from the SDK build without breaking anything? Also what's "nwjc"?

You can just remove the nacl files and nwjc, which compiles JS code to JITed machine code:  https://github.com/nwjs/nw.js/wiki/Protect-JavaScript-source-code-with-v8-snapshot

Roger

Roger Wang

unread,
Nov 26, 2015, 3:51:31 AM11/26/15
to nw.js
We don't have any schedule but we are trying to complete porting all the features and then release beta before the end of Dec. RC and final version will follow shortly because the current code quality is stable. If you don't use the missing APIs or you're just developing Chrome Apps with NW you can start today. The only reason the version is marked 'alpha' is the missing APIs to be ported.

Thanks,

Roger

Roger Wang

unread,
Nov 26, 2015, 3:54:09 AM11/26/15
to nw.js

On Thursday, November 26, 2015 at 2:32:07 PM UTC+8, VoidVolker wrote:
`nw.Window.open` did not return new window object.

nw.Window.open() is using callback to notify the result, please see the test case for example:

VoidVolker

unread,
Nov 26, 2015, 4:03:17 AM11/26/15
to nw.js
Thanks! 

I migrated my windows nw12 app to this new alfa, but after app closing I have message "Whoa! NW.js has crashed. Relaunch now?".

Also, looks like exec starts cmd without flag "hidden window":

exec('ping localhost')



четверг, 26 ноября 2015 г., 11:54:09 UTC+3 пользователь Roger Wang написал:

kao.l...@gmail.com

unread,
Nov 26, 2015, 12:30:44 PM11/26/15
to nw.js
Why is this https://www.npmjs.com/package/nedb crashing upon loading a db file like:

var Datastore = nw.require('nedb'),
tradesdb = new Datastore({
filename: 'database.db',
autoload: true
});

There is no crash log or something, how can I track what is causing nwjs to be shutdown?

Roger Wang

unread,
Nov 27, 2015, 1:39:47 AM11/27/15
to nw.js, kao.l...@gmail.com
Thanks for reporting. This is just fixed in git and you could try after the live build is done:

Roger Wang

unread,
Nov 27, 2015, 1:41:00 AM11/27/15
to nw.js
Could you please send a case? Or you could wait for another build, it could fix the same crash issue as yours.

I'll also look into the issue on exec()

Thanks,

Roger

Siddhartha Gupta

unread,
Nov 27, 2015, 4:21:00 AM11/27/15
to nw.js
Thanks for replying :)

kao.l...@gmail.com

unread,
Nov 27, 2015, 7:29:15 AM11/27/15
to nw.js, kao.l...@gmail.com
Thanks Roger, build in git works fine, I wish I reported this earlier, I've been trying to understand what was wrong for a few months... Sorry I am not sure what you meant by sending a case, did you want me to report this on github issues section?

nw.e...@gmail.com

unread,
Nov 27, 2015, 11:52:44 AM11/27/15
to nw.js
Roger, et al:

Alpha7 of nw 01.13.0 just keeps improving and incorporating more and more API's and features.
Transparency (and click-through) which have been fantastic since they were finally added, have not made
it into nw 0.13.0 as yet -- at least for 32- and 64- bit Windows.  I presume that the jump from chromium-41 in nw0.12.3 to
chromium-46 in nw0.13.0 is the problem.

I'm sure that, once again, this is not a trivial undertaking but I am looking forward to an alpha- or beta release
which addresses Transparency and "click-through" once again.

Thank you all for this amazing project !!!!

Jonathan Dodd

VoidVolker

unread,
Nov 27, 2015, 12:04:50 PM11/27/15
to nw.js
Just tested Alfa6 in windows XP: it run only one process and then nothing happens. No XP support more?

carson....@gmail.com

unread,
Dec 2, 2015, 7:23:34 AM12/2/15
to nw.js
Hi Roger,

Can I test Node-webkit with automation testing tool? Which tool can test it? Do you plan to support automation testing tool?

Regards,
Carson 

Roger Wang

unread,
Dec 2, 2015, 7:31:17 AM12/2/15
to nw.js, carson....@gmail.com
Yes. It supports chromedriver and webdriver based tool like selenium. You'll need to use our modified chromedriver.

j...@vargar.mx

unread,
Dec 4, 2015, 12:21:16 PM12/4/15
to nw.js
There's an issue when closing NWJS with ALT+F4 on Linux (Only tested in Ubuntu 14.04). It closes my app but a process is still running on the background. Like if my app was only hidden. I run my app on the current NW alpha 6 folder: ./nw /path/to/app/myApp.nw

Is there a way to close it completely with this key combination? Or is this a bug?

avang...@gmail.com

unread,
Dec 5, 2015, 1:50:31 PM12/5/15
to nw.js
Hi!
How can i reload my NW13 app like i did it in NW12? I mean mainWindow.reloadDev, or just reload.
Sry for my eng.

carson....@gmail.com

unread,
Dec 6, 2015, 5:25:38 AM12/6/15
to nw.js, carson....@gmail.com
Hi Roger, 

How can I get your modifiedchrome driver ? Can you give me a link to download it? I need your modified chrome driver for nw.js 0.12.3 and 0.13.0. Many thanks!

Regards,
Carson

在 2015年12月2日星期三 UTC+8下午8:31:17,Roger Wang写道:

matthew...@gmail.com

unread,
Dec 7, 2015, 1:43:28 PM12/7/15
to nw.js
Question - Does app signing still work when the files used with NW.js are not compressed? (which is required in many circumstances. See: https://github.com/nwjs/nw-builder/pull/200 )


On Tuesday, November 24, 2015 at 10:41:42 PM UTC-8, Roger Wang wrote:

carson....@gmail.com

unread,
Dec 9, 2015, 2:02:17 AM12/9/15
to nw.js
Hi Roger,

I have got it, thank you!

Regards,
Carson

在 2015年11月25日星期三 UTC+8下午2:41:42,Roger Wang写道:

karl.rw...@gmail.com

unread,
Dec 23, 2015, 1:09:36 PM12/23/15
to nw.js
Hi Roger,

I'm having an issue where async functions in require()'d modules don't log stack traces when there's an error. I've created a GitHub project to demonstrate what I'm talking about: https://github.com/karlrwjohnson/nwjs_0.13alpha7_bug_demo

Similarly, I've noticed that NodeJS modules don't get the same copy of the global objects as scripts running in the NW context -- they get their own console, String, etc. Since console is missing, I've set up a workaround where a <script> tag passes a reference to its console to a NodeJS module, which overwrites the NodeJS console object with NW's. I suspect the two are connected. As for the rest of the globals, the fact that there's multiple instances of String etc. breaks the instanceof operator, causing issues with the Jasmine unit test framework for example.

karl.rw...@gmail.com

unread,
Dec 23, 2015, 1:53:07 PM12/23/15
to nw.js
Crap, wrong thread. I'll repost in the current one.
Reply all
Reply to author
Forward
0 new messages