25

Has anyone had success in enabling NaCl/PNaCl support in the CEF3 (Chromium Embedded Framework)?

I find that Chrome (34) can run the PNaCl samples on this page fine, but the cefclient distributed at cefbuilds.com (Windows, 1916 branch) does not.

Chrome lists the ppGoogleNaClPluginChrome.dll as a PPAPI (in-process) plugin on chrome://plugins, while the cefclient app doesn't have this plugin listed (Test/Plugins menu option)

I've pulled down the source, and don't see any NaCl depedencies for the libcef target, and also see this issue filed for the CEF project, which make me suspect that this is currently only available for Chromium/Chrome.

--- Update --- There has been quite a bit of activity on this question recently, I suspect in part due to the bounty, and also because Chrome/Chromium is now actively deprecating NPAPI.

If you would like to encourage the CEF team to prioritize work on adding NaCl/PNaCl support, please vote for the issue here: http://bitbucket.org/chromiumembedded/cef/issue/705#

holtavolt
  • 4,378
  • 1
  • 26
  • 40
  • 1
    Follow-up: I was able to get CEF to report the NaCl plugin as installed (from a compatible version of Chrome), however when I tried the NaCl SDK part1 sample code it didn't execute (and it worked fine in my local Chrome build) - details @ http://www.magpcss.org/ceforum/viewtopic.php?f=6&t=11750&p=21375&hilit=NaCl&sid=75fa5704deb9fd1a267e18109d531199#p21375 – holtavolt May 15 '14 at 02:01
  • 1
    Do these links help you? http://www.magpcss.org/ceforum/viewtopic.php?f=12&t=1370 & http://magpcss.org/ceforum/viewtopic.php?f=10&t=10509 – Vrashabh Irde May 22 '14 at 11:19
  • 1
    No - I used those in attempting to get it to work prior to this post. – holtavolt May 22 '14 at 12:48
  • 1
    NaCl requires more than just the plugin to run: you also need the IRT and typically some OS-specific helpers. Look in the Chromium directory for files with "nacl" in the name, and copy those. That being said, I tried this with the cefclient, and it didn't work. This will likely require some debugging to determine where exactly the plugin is failing. – binji May 22 '14 at 22:06
  • Yes - I attempted the same, with the same results. – holtavolt May 22 '14 at 22:15
  • Same here, works in Chromium but dose not work in CEF3. (Linux 64 bit, --register-pepper-plugin="pathtochrome/libppGoogleNaClPluginChrome.so;application/x-ncal" command line. ) I am getting the error: "PPP_InitializeModule returned failure -2" – WhyMe Aug 20 '14 at 13:00
  • Any progress on getting NaCl up and running – David Karlsson Feb 19 '15 at 20:52
  • I'm also very interested in the progress of this. – Austin Brunkhorst May 16 '15 at 19:30
  • 2
    FYI - the CEF feature request tracking this is now located here: https://bitbucket.org/chromiumembedded/cef/issue/705# (no obvious progress on it yet) - those interested should "vote" to bump priority – holtavolt May 16 '15 at 19:35

2 Answers2

3

From the CEF Forum:

CEF does not include the NaCl pepper (ppapi) plugin which is required to load NaCl applications. So you need to tell CEF where to find the NaCl plugin via the command-line. I'm not sure of the exact command-line, but you can use this as a guide: viewtopic.php?f=10&t=10509

You can get the plugin from an equivalent version of Google Chrome of you can build it from source code. For more information see http://www.chromium.org/nativeclient/getting-started/getting-started-background-and-basics.

I haven't tested NaCl support in CEF myself so it's possible that other changes may be required.

Community
  • 1
  • 1
  • 1
    As mentioned in the bounty, I'm looking for working solutions, as I found and tried this same information (see the first follow-up.) I was able to load the NaCl plugin via the command line (it is reported as listed on the cefclient plugins page), but neither the PNaCl page I cited, nor the NaCl SDK samples (both of which work in the corresponding Chrome version) work. – holtavolt May 23 '14 at 16:27
  • 1
    Same here, works in Chromium but dose not work in CEF3. (Linux 64 bit, --register-pepper-plugin="pathtochrome/libppGoogleNaClPluginChrome.so;application/x-ncal" command line. ) I am getting the error: "PPP_InitializeModule returned failure -2" – WhyMe Aug 20 '14 at 12:57
0

In 2017 June, CEF3's plan to eventually suport NACL was officially dropped as mentioned in https://bitbucket.org/chromiumembedded/cef/issue/705

This is due to chromium moving to replace NACL by Webassembly.

There's some work in CEF3 in that direction: accordingly to https://bitbucket.org/chromiumembedded/cef/issues/2101/add-webassembly-support there's wasm support in v8 engine and it can be enabled by specific flags.