Attention Squish for Web users testing their websites in Google Chrome: due to recent changes in Chrome Manifest API that affects all extensions for this web browser, a new version of Squish extension for Google Chrome is now available in Chrome Web Store. Read on to learn how this change may affect you and how to adapt your test environment to the new set-up.
Google has been working on revision of the way extensions for their Chrome browser are written for the past couple of years, resulting in the definition of 3rd version of their extension manifest (Manifest V3).
A time frame for phasing out legacy Manifest V2-based extensions includes removing these extensions from the Chrome Web Store and eventually, disabling them in the browser. If you are currently using 'froglogic Squish Integration' extension with Squish for Web, you may have already seen some hints of deprecation in Chrome Web Store or in the browser GUI.
In order to support future versions of Google Chrome that require the use of Manifest V3, we created a new Chrome extension: 'Qt QA Squish Integration' which is available in Chrome Web Store effective immediately. For the users of existing Manifest V2-based 'froglogic Squish Integration' extension, we provide a migration path that is as seamless as possible. The legacy extension will continue to be available in Chrome Web Store as long as Google allows it.
Which Squish versions support the new extension?
Squish 8.1 will be the first Squish release carrying full support for the new Manifest V3-based extension.
In order to support Squish 8.0 users before Squish 8.1 is released, and users that cannot easily upgrade to the new Squish release once it is available, we provide snapshot packages of Squish 8.0 on request that include the fixes necessary for using the new extension. Please contact Qt technical support via customer portal .
Which extension do I needed for my version of Chrome?
Since Google itself provides a migration time frame, several versions of Chrome support using both Manifest-V2 and Manifest-V3-based extensions at the same time. For the Squish extension, we decided to go with the following requirements:
- Google Chrome older than 120:
- requires the use of 'froglogic Squish Integration' (Manifest V2-based) extension
- Google Chrome 120 to 131:
- using either 'froglogic Squish Integration' (Manifest V2-based) or 'Qt QA Squish Integration' (Manifest V3-based) is possible
- the extension installation process prefers 'Qt QA Squish Integration'
-
- a warning is added to the test report when using legacy 'froglogic Squish Integration' to notify users of the need to migrate
- in order to revert to the legacy extension, start the extension installation process from the IDE or commandline as documented. Before clicking 'Add Extension' button, navigate to the 'froglogic Squish Integration' extension page and add this extension instead. Then continue with the installation process as usual.
- Google Chrome 132 and newer:
- requires the use of 'Qt QA Squish Integration' (Manifest V3-based) extension
How to migrate to the 'Qt QA Squish Integration' extension
Existing set-ups, with 'froglogic Squish Integration' installed
In order to trigger migration to the new extension, start the extension installation process from the Squish IDE or the commandline using corresponding Squish 8.0 snapshot or Squish 8.1 release package. The installation routine will automatically detect the existence of the old extension, remove it and start the normal installation process of the new extension.
Installation in the Squish IDE: open up the Server Settings dialog (Edit->Server Settings) and select Google Chrome as a browser from the Browser dropdown. Click the 'Install' button on the right to trigger the installation process
Installation from the commandline: trigger the installation process by invoking the following command after navigating to the Squish installation folder:
lib/exec/browserextensionhelper installBrowserExtension google-chrome
If you use a remote testing setup, where squishrunner and squishserver are running on separate systems, you can trigger the installation from the commandline by invoking the following squishrunner command specifying the squishserver IP address and port:
bin/squishrunner --host <server-host> --port <server-port> config installBrowserExtension google-chrome
IMPORTANT: If you attach to Google Chrome from your test scripts with attachToBrowser
and use a different port number than the default port (9935), you need to start Chrome once from the IDE or a test script. Then, configure the port number for the new extension or adjust this setting during the installation process after adding the extension. This configuration can unfortunately not be transfered to the new extension automatically. Our documentation on set-up for attaching to a running Chrome browser contains more details about where the configuration can be found.
New set-ups, with no Chrome extension installed
No extra steps are necessary, simply follow the guidance in the IDE when creating or replaying a test. Commandline users should check the invocations in our installation instructions for Google Chrome. The installation procedure will automatically install the right extension depending on the version of Chrome you are using.