(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