Why doesn't the 1Password extension work in Chrome for iOS? [it does now, since 42.0.2311.47]

Options
steve28
steve28
Community Member
edited January 2016 in iOS

Update from AgileBits: Chrome has now added support for our iOS extension.

So on several threads on this forum and Twitter - Agile has been saying that Crome needs to "add support" for the browser extension. Now, unless Apple specifically compiled in "support" for 1Password and LastPass into Safari, this is simply not true.

So for some reason, LastPass is now showing up as an extension in the share sheet in Chrome, but 1Password is not. People are asking why that is and they are bing told that Chrome (Google) has to add support for it. This can't be correct - the whole point of browser extensions is that they DON'T have to "bake-in" support for each individual extension.

If I am way off base here, let me know, but if I'm not - more care should be taken to not make an already confusion overloading of the term "extension" even worse.

Comments

  • Jasper
    edited September 2014
    Options

    Hi @steve28,

    What you've heard is correct — Chrome would need to add support for our extension.

    Because our extension needs to modify the webpage using JavaScript (to fill your login), it's different than many other extensions, and not as easy to support. In the case of a Share Extension, such as Pocket, they don't need to modify the webpage in the host app (Chrome).

    It's important to note that our Safari Extension is not the same as our App Extension.

    Using built-in functionality in iOS 8, we're able to create a Safari Extension which allows 1Password to auto-fill your logins into Safari.

    Our App Extension enables other third-party developers to add 1Password integration into their app — this includes:

    • Native App Login
    • New User Registration
    • Change Password
    • Web View Support
      • Filling into UIWebViews and WKWebViews.
      • This applies to Chrome, and other third-party browsers (such as InBrowser, which supports our App Extension).

    In Safari, we're able to use NSExtensionJavaScriptPreprocessingFile, which allows us to ask Safari to run a provided JavaScript file and return the results to our extension. We also able to modify the webpage using JavaScript after our extension completes its processing.

    As far as we know, NSExtensionJavaScriptPreprocessingFile is not supported for use by third-party apps (such as Chrome), therefore the required JavaScript must be loaded differently. The collection and filling scripts need to be hard coded directly into the third-party app, since it cannot lookup the NSExtensionJavaScriptPreprocessingFile key.

    If you're interested in details, there is a Chrome feature request here (which includes some discussion): https://code.google.com/p/chromium/issues/detail?id=405894

    Please let us know if you have any other questions. We're always happy to help!

  • steve28
    steve28
    Community Member
    edited September 2014
    Options

    So, the Safari extension will only ever work with Safari. For any other browser (or UIWebView/WKWebView), the App Extension is needed?

    Does this mean LastPass does something different?

  • littlebobbytables
    Options

    Well from reading it seems sharing is a uni-directional action - data passes from Chrome to Lastpass but I don't believe there is a way for Lastpass to return anything. To be honest I'm finding little information at all; this thread doesn't suggest it's actually working at the moment though.

  • steve28
    steve28
    Community Member
    Options

    What @littlebobbytables‌ pointed out appears to be true... You get the option to select it, but it doesn't seem to work.

    My apologies for not completely grokking this before, @JasperP‌

  • Hi @Steve28,

    No need to apologize, this information is relatively new to everybody.

    We hope Chrome would consider adding our app extension framework, which doesn't actually restrict it to 1Password, any password manager can reuse it with us.

  • steveW25561
    steveW25561
    Community Member
    Options

    Well, unfortunately this looks like it might be a stalemate at this point: on the Google Chromium site, the developers are seeming to push back on 1P's reliance on a JavaScript or other code injection.

    I can definitely see their point. This requirement to insert your code leaves them open to potential for external bugs, vulnerabilities and just plain hassle to keep checking to see if you've updated your plugin code. I can imagine any developer balking at this, but many might do it just to have a marketing differentiator. Chrome doesn't really need additional marketing power.

    Would you guys reconsider developing a share extension (or whatever type of extension is needed for universal ios functionality without requiring programmers to change their apps)?

    I guess I'll put it another way: LastPass can do it without asking for custom code of developers, why can't 1P?

    Don't get me wrong: I love 1P and have it installed on all my Macs, pcs and iOS devices, and have had it for years. But I've also become very dependent on Chrome's functionality.

    Please reconsider an extension that doesn't ask other apps to use custom code, no matter how simple. This will help ensure wide adoption of 1P! I can see this become an ongoing buck passing issue.

  • littlebobbytables
    Options

    @steveW25561‌ Have you seen the LastPass extension work as intended? I couldn't find any decent information on it, the little I found suggested the share extension didn't work and from my limited understanding of the various types of extensions a share extension is one way - it's not designed for returning information or editing a page like the Safari extension allows. Obviously everybody is still learning about extensions and how to most effectively use them, it'll probably take a while before even developers understand all the nuances.

  • Megan
    Megan
    1Password Alumni
    Options

    Hi @steveW25561‌

    Could you tell us a bit more about how the LastPass extension acts? I don't have it available to do any testing of my own here.

    It's important to note that because LastPass is a web-based service instead of a self-contained app, they may have different options available.

    Once we have a better idea of what LastPass is doing that you would like to see from 1Password, I can have a chat with our developers about the possibilities. :)

  • andynormancx
    andynormancx
    Community Member
    Options

    I've just tried the LastPass action extension.

    It works fine in Safari, but doesn't seem to work in Chrome. When launched from Chrome it says it can't find an entry in the vault for this site.

    I suspect that the fact that the action extension is appearing for Chrome at all is a bug. The Keeper extension also appears in Chrome, but also doesn't work.

    It seems likely that they are both using the same Javascript approach as you and are therefore in the same boat with not actually being able to support Chrome at the moment.

  • Megan
    Megan
    1Password Alumni
    Options

    Hi @andynormancx‌

    Thanks so much for checking into that for us!

  • sjk
    sjk
    1Password Alumni
    edited September 2014
    Options

    Hey guys,

    The primary developer of LastPass for iOS is basically saying its extension isn't working with Chrome, for the same reasons why 1Password's doesn't:

    Issue 405894 - chromium - Feature Request: Support 1Password extension on iOS8

  • andynormancx
    andynormancx
    Community Member
    Options

    In fact, you can see here on their iOS 8 announcement that they definitely don't support Chrome yet:

    http://blog.lastpass.com/2014/09/introducing-lastpass-for-ios-8.html

  • steveW25561
    steveW25561
    Community Member
    Options

    My apologies. It looks like even the last pass developer is stating their app doesn't work properly in Chrome iOS either. Hopefully, with the 2 major password managers needing access to JavaScript to fill in the webpages with better logic, we will see the chrome team add the function.

    I did see the LastPass option in my share menu, but I wasn't willing to re migrate to LastPass again, preferring the 1P experience. My incorrect assumption was the LP plugin worked. Again, I apologize.

    Too bad this is required. I still think it leads to inconvenience at the least, and a potential security & complexity risk at the same time.

    I've subscribed to the Chrome discussion to keep up.

  • sjk
    sjk
    1Password Alumni
    Options

    Thanks for that blog post link, @andynormancx. When reading it and comments a few days ago, the state of LastPass for iOS extension usage in Chrome still wasn't explicitly clear to me. And Lifehacker's earlier Chrome for iOS Adds Supports for App Extensions post seemed to muddle things a bit.

    Thanks for the apology, @steveW25561, although there's no reason for one. As @MikeT‌ mentioned last week:

    No need to apologize, this information is relatively new to everybody.

    What the primary developer of LastPass for iOS posted earlier today might be the current slam dunk on the matter. :)

  • andynormancx
    andynormancx
    Community Member
    Options

    There were multiple sites also reporting that the Chrome update for iOS 8 meant LastPass would work, so it isn't surprising that there has been some confusion.

  • sjk
    sjk
    1Password Alumni
    Options

    Indeed. I hope at least everyone here is unconfused about it now. :)

  • 1answer
    1answer
    Community Member
    Options

    I'm in the same boat as everybody else. I really prefer Chrome over Safari on iOS due to many reasons but mostly for the syncing with the desktop counterpart which I prefer (even tried to switch to Safari for a week just to use 1PW and couldn't). I've been reading the Chromium forum and it seems lasspass will be doing some sort of workaround -

    "#22 L...@lastpass.com
    I'm the primary developer of LastPass for iOS. To clarify, the LastPass extension does not work in Chrome for same reasons already described by AgileBits. Without our JavaScript code being executed by the mechanism Apple put in place with "NSExtensionJavaScriptPreprocessingFile", we can't run the logic to fill form fields, nor does it receive the credentials to fill.

    The extension can still be invoked by Chrome, however, which may be why some people are saying that it works. We have recently added a limited support for Chrome based on the fact that it provides the URL to the extension, allowing us to match the site and let the user copy the relevant username or password, but not fill them directly. This will be available in a future release."

    My question is can 1Password look for something similar of a workaround as well just so we get at the very least limited support of 1PW for chrome? Even if it's something a simple as re directing us into the 1password app via the extension similar to what some of your url scheme does when we use bookmarks?

    Lastly, thanks again guys for making 1password such a great investment for me. It is priceless and I love using it. I will continue to support all the hard work you all do.

  • Megan
    Megan
    1Password Alumni
    Options

    Hi @1answer,

    Thanks so much for sharing your thoughts here! I'd be happy to pass along this idea to our developers. Copying and pasting a password sounds like a reasonable workaround to me (although I myself am not a developer, so I can't speak much to the technical challenges or design requirements involved in implementing such a feature.)

    ref: OPI-1808

This discussion has been closed.