(P)NaCl Deprecation

228 views
Skip to first unread message

vitaly....@gmail.com

unread,
Feb 22, 2018, 1:36:31 PM2/22/18
to Native-Client-Discuss

Dear Google groups,

My name is Vitaly. I’ve been working on development of Chrome extension.

This extension is based on PNaCl as we use C++ for one of application’s modules.

May you give additional information about (P)NaCl deprecation in order to protect our customers:

1.       What does “deprecation” means? Will the extension be removed from Chrome App Store? Will future Chrome browser versions stop supporting PNaCl?

2.       When will “deprecation” be completed? By what time shall we have migrated to WebAssembly?

3.       I’ve read WebAssembly Migration Guide, but I am not quite sure if WebAssembly supports some PNaCl features (Pepper API): file reading/writing, making http requests, making asynchronous operations (like “message loop” API). Could you please assist with this question?

4.       Can we use openssl or another third-party libraries with WebAssembly?

5.       Will WebAssembly allow our application to support not only Chrome Browser?

Thank you for paying attentions to our questions.

Yours faithfully,

Vitaly Sukhov

 

 

Message has been deleted

Bradley Nelson

unread,
Feb 23, 2018, 12:47:23 AM2/23/18
to Native-Client-Discuss
Hi Vitaly,

See answers inline.

On Thursday, February 22, 2018 at 10:36:31 AM UTC-8, vitaly....@gmail.com wrote:

Dear Google groups,

My name is Vitaly. I’ve been working on development of Chrome extension.

This extension is based on PNaCl as we use C++ for one of application’s modules.

May you give additional information about (P)NaCl deprecation in order to protect our customers:

1.       What does “deprecation” means? Will the extension be removed from Chrome App Store? Will future Chrome browser versions stop supporting PNaCl?


We've not yet announced a deprecation date for PNaCl in the context of Chrome Extensions (only on the web outside Chrome Extensions). My expectation is that we will eventually also include Extensions, but no firm decision + date has yet been made.

For PNaCl, our current intention is that deprecation will lead to disabling PNaCl on general websites.
In the context of Chrome Apps + Extensions, deprecation would likely take the form of disabling the feature at runtime, as PNaCl/NaCl apps/extensions are not explicitly marked.

Deprecation of PNaCl on the Web was originally planned to take place sometime in Q1 2018.
However, the temporary removal of SharedArrayBuffer and connected delays in WebAssembly threads have led us to be thoughtful on the timing to avoid creating a situation in which customers that need threads have no transition path. As a result, turning off PNaCl on the Web may be delayed somewhat beyond Q1, pending Wasm threads.

Prototype support of Wasm threads is available behind flags in the tools and in Chrome.
As there will likely be a very narrow window of time in-between Wasm threads launching and implementation of PNaCl deprecation, customers that need threads should start kicking the tires on this functionality as soon as possible.

 

2.       When will “deprecation” be completed? By what time shall we have migrated to WebAssembly?


Very soon after WebAssembly threads ship + SharedArrayBuffers are re-enabled.

 

3.       I’ve read WebAssembly Migration Guide, but I am not quite sure if WebAssembly supports some PNaCl features (Pepper API): file reading/writing, making http requests, making asynchronous operations (like “message loop” API). Could you please assist with this question?


WebAssembly used in tandem with Web API have a few gaps, but for the ones you list, there is pretty good coverage:
* There is emulation of filesystems backed by memory or IndexedDB. No bridge to the Chrome-only filesystem API exists.
* There is http request emulation in emscripten (emscripten_wget*).
* WebAssembly has synchronous access to Web APIs, but can interact with async APIs by way of outcalls to JavaScript.
 

4.       Can we use openssl or another third-party libraries with WebAssembly?


Similar to NativeClient, third party libraries like openssl can be ported.
Unlike NativeClient, we don't currently curate a ports collection.
There seems to be some indication online of folks having success getting openssl to build with Emscripten.
 

5.       Will WebAssembly allow our application to support not only Chrome Browser?


Yes, in fact this is the primary reason we've shifted our focus to WebAssembly, which is now available in Edge, Firefox, and Safari, in addition to Chrome.

vitaly....@gmail.com

unread,
Feb 26, 2018, 9:15:01 AM2/26/18
to Native-Client-Discuss
Can you notify me as soon as the decision about date of disabling (P)NaCl is finally made?
Reply all
Reply to author
Forward
0 new messages