Blueworx WebSQL - Compatibility after 31-Oct-2023

Many of you will have seen the post from Neptune regarding the removal of WebSQL from Chromium based browsers, that's mainly Chrome and Microsoft's Edge in our environments. The post is here => https://community.neptune-software.com/topics/planet-8/blogs/chrome-removes-websql.


In Summary Cordova Mobile Apps are not impacted, whereas BlueWorx running in the web browser requires the user to sync prior to the Chrome update and on update the application will perform a full sync.


Cordova Mobile Apps

  • We don't expect there to be an impact for the mobile apps as the SQLite Cordova plugin is a hard requirement for BlueWorx.
  • Testing the updated Chrome WebView showed that the mobile app continues to operation as usual, without any data loss as SQL is provided by the plugin. There is a updated reply showing how this was confirmed.


BlueWorx on Browser

  • Firefox users are not impacted as it has not had WebSQL support for many years, nor did Internet Explorer.
  • With BlueWorx in the browser, data that is stored with Neptune standard caching is 99% stored in WebSQL (where the browser supports it - Neptune fails back to indexedBD when WebSQL is not available). The large Master Data sets are stored in IndexedDB for BlueWorx running in a web browser.
  • Users will need to sync all their outbox content prior to the browser upgrade (and loss of support for WebSQL). 
  • Once the browser no longer supports WebSQL, Neptune standard caching will fall back to indexedDB and BlueWorx will trigger a Full Sync on launch.


Neptune DXP 22.10.0010 with SQLite Addition

  • The SQLite addition bundled with DXP22.10.0010 is not required and is not applicable to the storage methods used by BlueWorx.
  • Do not install DXP version 22.10.0010 with the expectation that it will restore WebSQL. Neptune have explained this in their post, confirming that there is no data migration, and later in the comments referring to AppSync storage which is not used in BlueWorx.


Outbox Recovery

The Chrome Beta channel version of Chrome sets the default value for the chrome://flags "Allows access to WebSQL APIs" to Disabled. You can change this value to "Enabled" and on relaunch of Chrome BlueWorx will start up and regain access to the WebSQL Neptune data cache. This will retrieve the outbox content and allow it be synced. Once the content is synced, chrome://flags should be set back to "Default" so that when WebSQL is fully removed there will be no impact to the user. While there is no guarantee that this option will exist in the final release, the Chrome Beta channel is representative of what is coming to the stable channel, and I'd expect the option to remain for the short term.


See the various notes made in replies to this post which give some more detail on the testing performed and the conclusions reached. 


This post will be updated should there be any new information, however I believe that we've covered 99% of the questions for BlueWorx. Please feel free to post questions here, noting that this is a public forum so do not post confidential information.


The initial post has been updated following testing the transition from WebSQL available to disabled using settings in the current version of Chrome. The final behaviour has been confirmed in Google Chrome Beta channel which has the WebSQL removal.


Updates from this test:

  • BlueWorx will automatically Full Sync on the first launch following WebSQL not longer being available. This is because each instance of BlueWorx has an application ID and a record of the users who have sync'd. This data is no longer available so BlueWorx considers it to be the first time BlueWorx has been run and that triggers the automatic full sync.
  • At this point the existing outbox data is not accessible and any content in the outbox will be lost. It will not be sent to the backend in this initial Full Sync (unchanged from original post).
  • An earlier comment about Master Data (such as Equipment, Functional Locations, Classification, etc) not being affected has been removed. While the data remains following the Chrome update, the Full Sync repopulates the Master Data


To carry out this test in your own environment: 

  1. Load BlueWorx as normal using the current release of Chrome browser (prior to 31/10/2023). 
  2. Create a Notification or Field Order to put content into the Outbox. 
  3. In a new tab navigate to chrome://flags.
  4. Search for WebSQL and set the option "Allows access to WebSQL APIs" to Disabled.
  5. Chrome will prompt for relaunch chrome. Relaunch chrome noting that all open windows will be closed and re-opened.
  6. Load BlueWorx as before
  7. BlueWorx will start up and automatically perform a Full Sync.


Notes on Potential Outbox Recovery:

The Chrome Beta channel version of Chome has the default value for the chrome://flags "Allows access to WebSQL APIs" to Disabled. You can set the value to "Enabled" and on relaunch of Chrome BlueWorx will start up and regain access to the standard Neptune data cache, allowing outbox content to be synced. Once the content is synced, chrome://flags would be set back to default so that when WebSQL is fully removed there will be no impact to the user. While there is no guarantee that this option will exist in the final release, the Chrome dev channel is representative of what is coming to the stable channel, and I'd expect the option to remain for the short term.



The initial post has been updated following testing the update of the Android WebView from version 117 to 119 (Beta). Version 119 turns the WebSQL support off by default. Cordova application use the WebView provided by the operating system.


By enrolling in the Google Testing program you can update the device's WebView and switch between them. Information here => https://chromium.googlesource.com/chromium/src/+/HEAD/android_webview/docs/prerelease.md


Testing was carried out on a Samsung Galaxy S21 FE phone running and app build from DXP 22.10.0020. 


The app had the hard required SQLite plugin "cordova-sqlite-evcore-extbuild-free" as has been a hard dependency for BlueWorx since the introduction of SQL batch processing functionality specific to the plugin with  Support Pack 04 in 2017.


Testing:

  • BlueWorx was opened and a notification created in the outbox while the current WebView 117 was active. 
  • The WebView was confirmed using the chrome device inspector (chrome://inspect/#devices).
  • The mobile application was closed.
  • The beta WebView was selected from the phone's developer settings (the phone was in developer mode to enable the developer settings)
  • The mobile application was opened.
  • The WebView was confirmed using the chrome device inspector (chrome://inspect/#devices).
  • BlueWorx was opened, and the outbox showed the notification created in the first step


Device Inspector showing Beta WebView 119


Notification remains in Outbox after WebView update


The mobile app continues to run as usual after the update to the Chrome WebView. This is expected as the plugin provides the SQLite database for BlueWorx compatible mobile applications, and has been a hard dependency since 2017.



The initial post has been updated following testing the DXP 22 Upgrade from 22.10.0009 to 22.10.0010. Version 22.10.0010 has support for browser SQLite via Web Assembly.


Web Assembly delivered SQLite may be useful for applications which use the Neptune AppSync framework. It is not a drop-in replacement for WebSQL and is not needed (or used when available) for BlueWorx on Browser. It is not used by the storage methods used in BlueWorx, and does not migrate any data from WebSQL.


See the notes in the first reply regarding recovering WebSQL data, such as BlueWorx outbox objects. The new Neptune version and Web Assembly SQLite support does not have any role in recovering or retaining data stored in WebSQL. This is noted in the Neptune post and has been confirmed in our system updated to DXP 22.10.0010.

Login or Signup to post a comment

Site Data and Privacy Policy