Open GoogleCodeExporter opened 9 years ago
Update:
Along with the NaCl page not having a linked translator the PNaCl and NaCl
components do not exist under chrome://components.
And as expected (considering the components do not exist) the 'NaCl for web
applications' is Disabled by default under chrome://flags.
There is no workaround for this judging from all the research I have done.
Unfortunately because of how the chromedriver launches the "automation
instance" of Chrome it is not possible to fix this without a modified
chromedriver.
This blocks any Web or Chrome App that uses NaCl or PNaCl in tandem with
chromedriver for automation purposes.
Original comment by t...@vernier.com
on 4 Sep 2014 at 9:55
Adding NaCl folks, we're not familiar with WebDriver's implementation but we
may be able to help nonetheless.
Original comment by j...@chromium.org
on 14 Sep 2014 at 11:19
It looks like chromedriver by default runs with "--disable-component-update",
which PNaCl normally relies upon to get installed/updated:
https://chromium.googlesource.com/experimental/chromium/src/+/c457dcf77264057729
d025b3f85921c669fc0e20/chrome/test/chromedriver/chrome_launcher.cc#111
Unfortunately, component updater is responsible for both installing and
"registering"/discovering the PNaCl files.
So, even if you already had PNaCl installed and you see it when you launch
chrome normally outside of chromedriver, having --disable-component-update
prevents the installed copy from being discovered. However, perhaps
"--disable-component-update" was added because chromedriver uses fresh
user-data-dirs each run. Component updater would normally install the files to
the user-data-dir, so if it's chromedriver makes a fresh directory each test
run, it would need to re-download a bunch of files fpor every test run, and
that would be bad.
Perhaps what we could do is add a chrome flag (let's say, --pnacl-dir) to tell
chrome where to find the installed PNaCl files (independent of user-data-dir).
Then you could script chromedriver:
ChromeOptions options = new ChromeOptions();
options.addArguments("pnacl-dir=<some known translator path listed under
chrome:nacl normally>")
...
Original comment by jvoung@chromium.org
on 17 Sep 2014 at 1:05
We hit this problem with trying to get DRMed video playback going using HTML5
player (HTML5MediaElement). We are using WidevineCDM in our DRM stack, which
requires NaCl support.
To work around this issue, use the Chrome-specific desired capability called
'excludeSwitches' and build the driver as follows (e.g. for node.js):
var webdriver = require('selenium-webdriver');
var chrome = require("selenium-webdriver/chrome");
var capabilities = new webdriver.Capabilities.chrome();
var chromeOptions = {
'args': ['--user-data-dir=C:/ChromeProfile'], // start with pre-configured Chrome profile
'excludeSwitches': ['disable-component-update'] // stop breaking Native Client support
};
capabilities.set('chromeOptions', chromeOptions);
var driver = new webdriver.Builder().
withCapabilities(capabilities).
build();
driver.get('http://...');
...
Hope this helps.
-- ab1
Original comment by Anton.Be...@gmail.com
on 5 Nov 2014 at 6:55
Original comment by samu...@chromium.org
on 21 Feb 2015 at 12:18
Original issue reported on code.google.com by
t...@vernier.com
on 19 Aug 2014 at 10:47