How does Lastpass know the current URL in Chrome

2020-03-21 05:28发布

When browsing around in Chrome for Android, Lastpass pops up with suggestions if it recognizes the URL as one you have associated login details with.

How does it know which URL Chrome is looking at? I know that Lastpass makes use of Accessibility Services, but I wonder how it queries the current URL from Chrome.

PS. Apparently it only works for Chrome (it doesn't pop up in Opera for example) so it might be something Chrome specific.

2条回答
迷人小祖宗
2楼-- · 2020-03-21 05:36

I general using javascript, apart from Andoid functionality, and with some hacking, it is possible to get references to all open windows (and for instance get their URL). See this answer from 2009.

查看更多
看我几分像从前
3楼-- · 2020-03-21 05:47

LastPass on Android asks for Accessibility permission with canRetrieveWindowContent true. This lets it traverse the current view hierarchy, and access the views as AccessibilityNodeInfo objects.

Accessibility API lets you search nodes by the text displayed on the view, and also gives you java class name of each such view. AccessibilityNodeInfo#findAccessibilityNodeInfosByText

The feature doesn't work on Opera probably because the devs never handled the view hierarchy traversing logic for it.

Check out https://developer.android.com/guide/topics/ui/accessibility/services.html

查看更多
登录 后发表回答