I realised I missed out a word in my previous email. I meant to say:
“I imagine that it is possible to embed atoms for _some_ WebDriver
primitives quite easily”.
On 6 January 2016 at 15:45, David Stark <
zark...@gmail.com> wrote:
> And as discussed, it contained a bunch of native code and eval() that wouldn't be
> accepted by Mozilla's new addon certification scheme.
I should add that I just have shallow knowledge of the new criteria
for signed extensions.
> So for Selenium Builder 3, I simply ripped it all out, along with all
> Selenium 1 support.
I’m very happy to hear that Selenium 1 support is phased out!
> So now, I'm looking for the best way to locally execute at least basic
> commands like get and click in a way that are acceptable to the
> certification process. The internal format in Builder maps fairly closely to
> the JSON wire protocol, which is what it uses for remote playback, so it's
> really very similar to what FirefoxDriver needs to do.
I think a naïve and simple FirefoxDriver implementation with a limited
feature set, using Selenium atoms for Click and some WebExtension
workarounds to implement Get could get you close.
But I should add that as the WebDriver standard increases in
complexity, such an implementation done purely in-content with use of
some extension privileges might both be a lot of work and likely
non-conformant ad infinitum due to the privileged nature of the
WebDriver.
For script evaluation in content, is sandboxing available to extensions?
https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Language_Bindings/Components.utils.Sandbox
> Being able to talk to Marionette from a privileged extension would probably
> fit the bill, but as a stop-gap solution, using (a subset of) webdriver
> atoms might be the way forward? Of course I could just write my own code to
> do this all, but it would almost certainly introduce subtle semantic
> differences between local and remote playback.
Yes, such a thing would be far into the future. You should be looking
at solutions that are immediately possible to achieve.