opera extension and Microsoft edge extension compatibility - opera

I have a chrome extension I want to test to see if it's compatible with opera and Microsoft edge, please how can I test its compatibility?

It looks like first, you need to port your Chrome extension before testing it with the Edge browser.
Microsoft Edge allows you to port your Chrome extension with minimal changes. The Extension APIs and manifest keys supported by Chrome are code-compatible with Microsoft Edge. For a list of APIs supported by Microsoft Edge, navigate to API support.
To port your Chrome extension, complete the following steps.
Review the Chrome extension APIs used in your extensions with the Microsoft Edge extensions supported APIs list.
If the name Chrome is being used in either the name or the description of the extension, rebrand the extension for Microsoft Edge. This step is required to pass the certification process.
Test your extension to check if it works in Microsoft Edge by sideloading your extension.
If you face any issues, you may debug your extensions in Microsoft Edge by using the DevTools.
Follow the publishing guidelines to publish your extension on the Microsoft Edge Add-ons store.
Reference:
Port your extension
Further, I suggest you contact Opera browser support to get information about how to test your Chrome extension with Opera.
Thanks for your understanding.

Related

Will Safari ever support WebExtensions api?

My web extension works with Chromium browsers, Firefox, Edge, but as I understand - it is impossible now just to open the same codebase with Safari browser?
Update 2021
The Safari support for WebExtensions was released in 2021 and is available from Safari 14 (shipped with macOS Big Sur). WebExtensions for Safari are published in the App Store. Documentation here: https://developer.apple.com/documentation/safariservices/safari_web_extensions
Original answer
We cannot possibly know this for sure, but Apple is currently not planning to support (a version of) the WebExtensions API. The name of the standard/specification is Browser Extension.
Apple is not part of the W3C group which attempts to make a cross browser standard: https://www.w3.org/community/browserext/participants
For more general info on the Browser Extension W3C working group, see
https://browserext.github.io/browserext
The provisional spec can be found here: https://browserext.github.io/browserext/
In macOS Big Sur, Safari will support the WebExtensions API:
New support for the WebExtensions API and migration tools allows developers to bring Chrome extensions to Safari — letting you personalize your browsing experience with new Safari extensions from your favorite developers.

Does Microsoft UI Automation Framework work with Chrome, Python and Java Apps?

I am working on an automation project, in which I need to capture the activities [ application launched, data entered, input type etc.] user performs on a desktop. I came across Microsoft UI Automation framework which so far works well for native windows based applications like MS Office, .NET apps etc. However I did not find any useful information / samples of capturing the information from different web browsers [Chrome is a must], Python apps, Java Apps etc. Can someone please confirm whether MS UI Automation Framework supports such apps. Any working example to extract user activities from these apps would be highly appreciated. Thanks.
Chrome only supports UI Automation for toolbars, tabs, menu, buttons around the web page. Everything that's rendered as a web page is not seen by UIA.
For the web page content, the easiest way is to use Selenium (driven by the ChromeDriver), which is kind of a de facto standard for browsers, and has nothing to do with UIA.
To test if an app supports UIA, and how far it does, it's very easy, just run UIA's Inspect tool and check the UI tree over that application.
Some additions to Simon's answer...
Chrome page content can be seen by UIA if you run chrome --force-renderer-accessibility. Only for existing Chrome process it won't work. Though user can create a new tab chrome://accessibility manually and enable UIA for all or some chosen pages. This method also works for AT-SPI accessibility technology on Linux. Of course, Selenium WebDriver is an industry standard here. But another way exists. Both Mozilla and IE support UIA by default.
Inspect.exe can be simply downloaded from this GitHub repo.
Regarding Java apps it depends on the app type. Your chances is about 50/50.
WxPython or PyQt5 are good for UIA. TkInter or Kivy apps are not.
P.S. There is an example how to drag a file from explorer.exe and drop to Google Drive in Chrome using Python library pywinauto.
I'm a bit late to the party..
But Chromes accessibility features are only activated once something tries to access it's accessibility.
If you call AccessibleObjectFromWindow ([DllImport("oleacc.dll")]) with the window handle an existing chrome window will have its accessibility activated (and you'll see the actual web page content in UIA!).
If the chrome window is opened after your app is running - Chrome pings open processes for any open accessibility apps... for that you use AccessibleObjectFromEvent and the event you're responding to comes from the windows pipeline: EVENT_SYSTEM_ALERT = 0x0002 .
The bottom line is - you have to tell chrome that there's something installed that wants to access it's web page content.
Oh! and your application has to be signed!! Unsigned apps won't be able to access web content - I think that's the same in firefox too.
I hope this helps someone in the future.
See:
https://www.chromium.org/developers/design-documents/accessibility

Working with multiple APIs for Multi-platform apps

I currently have a Chrome extension that uses Chrome's APIs and plan on making a Microsoft Edge version once it opens up as well. My question is how do you work with the multiple API's?
For example, I use the following to check if the extension has just been installed or not:
chrome.runtime.onInstalled
I'm assuming for Edge it would be something like:
edge.runtime.onInstalled
What's the best way to work with both of these? Do I just duplicate the code within the file where there is a copy of the code for one and the other and presumably the browser will ignore the other browser's code? (doesn't sound like the good option)
Or is there some cross-browser framework that I should use instead?
Or is there some other solution?
And please forgive me, this is my first entry into building extensions/apps, I'm generally just a Web Designer.
Thank you!
All browsers support or
chrome.runtime.onInstalled
or
browser.runtime.onInstalled
So, the right way is to start scripts in your extension with this code:
var browser = browser || chrome
And then use browser, for example:
browser.runtime.onInstalled
(I'm sorry about my english)
Edit:
Chrome and Opera support chrome and not browser.
Firefox support chrome and browser.
Edge support browser and I don't know if it support chrome.
Anyway, my solution work in all browsers.
Update (5.8.16):
Edge support browser and not chrome.

How to export Safari Web Inspector timeline data?

Just like in Chrome Developer Tool, I was wondering if there is any tool/extension/plugin which would allow me to export timeline data in Safari. I tried the nightly build of webkit but it does not have that feature. Seems like this is a Chrome specific functionality.
I have to use Safari because I am testing a webapp on iPhone.
I searched around for any hints but could not get any. As of now I am thinking of two options to get the timeline information:
Build a Safari extension
Get Chrome Dev Tool's timeline code and build my own version of webkit (if that's even possible!)
Any guides/insights would be highly appreciated!
Update 1: I downloaded Webkit and found out that it supports remote iPhone debugging through USB. Probably I can find the code for web inspector for Webkit and use that code to export the timeline data.
Safari's Web inspector does use the WebKit remote debugging protocol.
However, Safari does not use TCP/HTTP as a transport layer, thus
making it incompatible with Chrome. source
Thankfully, someone from Google wrote a proxy allowing to overcome this limitation.

Dojo browser compatibility check?

I am writing the Dojo applications. I want to provide the browser compatibility for Firefox 3.0+, IE 7+. Should I follow any specific techniques to get the browser compatiability?
The list of supported browsers is here : http://dojotoolkit.org/reference-guide/releasenotes/1.7.html.
One of the advantages of using a framework over plain javascript is that it deals with most compatibility issues for you.