Developer help with Google Chrome and Opera
Hi!
I am currently developing iOS extension that fills credentials into login pages. Everything works well in Safari sharing extension. I have non trivial problems with makin' it happen on Chrome or Opera.
Could you guys please have a minute to discuss it over skype? There is no many documentation around, I found some chromium feature requests (like https://code.google.com/p/chromium/issues/detail?id=405894) but still don't know how to pass credentials back to browser properly.
Thank you so much!
1Password Version: Not Provided
Extension Version: Not Provided
OS Version: Not Provided
Sync Type: Not Provided
Comments
-
Greetings @marecek_tn,
If we're talking purely about the iOS environment then that would explain the non-trivial comment. I'm not a developer, so I'll probably make a couple of mistakes in the terminology but there are a small number of extension types, one of which is the Safari extension. If you build an extension of this type Safari will allow the user to use it and I know from our own developers the Safari extension can access the DOM of the page as certainly that's how filling works in the Javascript extension that we use in the browsers in OS X and Windows.
When it comes to any other iOS app though it isn't as easy. There are a couple of simple, generic types of extensions that iOS apps can say they support but when it comes to filling fields you pretty much need custom support for your extension added directly into the other iOS app. That's why we have our Apps ❤ 1Password as each app has added support for our iOS Extension. Our GitHub page might help explain things better.
That's why we don't even have support in either of those iOS browsers. We'd love it if we did but sadly the way iOS extensions work it requires both parties for the more complex extensions.
Does any of this help at all?
0 -
Hi @littlebobbytables
Thanks for your reply. You nicely summed up supporting native apps and Safari.
I've already implemented share extension for Safari that works ok and now I want to focus on Chrome and Opera.There is a proposal on the link that web browsers should implement to fill credentials provided from 3rd party (native app) into login form. 1Password does this already in Chrome.
And that's my question - do I need to contact Chrome devs directly? Or is there a way to conform some protocols and login filling will start working?
Many thanks :)
0 -
Hi @marecek_tn,
I'm confident we're at the stage where my knowledge has been surpassed but certainly that link was interesting and did seem to highlight the issue at hand. I've asked @Rad to check out the thread :smile:
0 -
Hi @marecek_tn,
Thanks so much for taking the time to write in :+1:
@littlebobbytables, thanks for the assist buddy!
My name is Rad and I am the lead developer and maintainer of the App Extension API.
By the looks of it, so far you've implemented the Safari capability of your password manager's App Extension. The 1Password App Extension implements other capabilities for native apps and for web view. The capabilities are described in the App Extension API's README:
- Native App Login
- New User Registration
- Change Password
- Web View Filling which offers filling capabilities for
UIWebviews
andWKWebViews
. The capability itself, is in fact two distinct capabilities. See our Web View Filling ups the awesome factor of the 1Password App Extension blogpost for more details.
The capabilities are powered by the App Extension Actions or UTIs. They can be found in OnePasswordExtension.m line 14. Ideally, your app extension should implement each one of these capabilities.
To answer your Chrome question:
Chrome does not use our Web View filling capabilities, instead it uses our Native App Login or the
findLoginForURLString:
capability, to get the credentials (username and password) in a dictionary form, then it performs its own (JavaScript) filling code. Meaning, that you should be fine once your App Extension supportsfindLoginForURLString:
.To answer your Opera question:
Opera, like Chrome or any other 3rd party browser for that matter, must integrate with password managers using the App Extension API. Password Manager App Extensions can't simply show up in the share sheet without any integration from 3rd party browser developers.
Hope that this helps :smile:
0 -
Hi @Rad
thank you for your reply.
Dev support provided by AgileBits is awesome :)
You helped me a lot by providing Chrome credentials the native way. I managed to do it from my app as well.Many thanks indeed!
0 -
I'm glad Rad was able to help @marecek_tn :smile:
0