- FRESNO-MYQOI-CHROME
-
ookla-demo
- demo javascript sdk project from ookla
-
extension
- Contains the chrome extension
- src
- contains all important pages for the app
- dist
- contains build output (zip for deployment)
- example is MyQOI.zip (latest version zipped and deployed to chrome store)
-
functions
- Contains the azure functions
- GetQOIConfig
- API To retrieve configurations based on email domain.
- PostQOIData
- API To send data from chromebook.
-
- To access the service worker to see logs or errors generated by the extension
- Open chrome://extensions
- in the listed extensions, click the "service worked" link under myQoI
- Open chrome://extensions
- Chrome Extension Runs at install/enabled.
- Extension asks Azure Function GetQOIConfig for configurations based on user email domain
- Azure Function GetQOIConfig asks database QoI_Config table for configurations
- Extension Runs speed tests and data gathering based on the intervals provided in the config
- Note - timings are based on timings on the device (not UTC)
- Extension calls Azure Function PostQOIData to send the data to the database
- Azure Function PostQOIData writes to QoiData table in the database
- Note - Timestamp is UTC when database is written to (not device time)
- I want to preface this by saying I'm sure that there is a better way, but this is the only way I have been able to actually test.
Testing Flow (MacOS)
- Remove Chrome Profile
- System Preferences>Profiles>MCXToProfile: com.google.Chrome
- Select and click "-"
- Click Remove
- Open chrome://policy/ and "Reload policies"
- Open chrome://extensions/ and "Remove" myQoI
- Click "Pack extension"
- Extension root directory = fresno-myQoI-chrome/myQoI-Chrome-Extension
- After your first build it will generate a Key file that will go in the second field
- Open chrome://extensions/ and draw myQoI-Chrome-extension.crx into the Chrome window and click "Add extension"
- Open com.google.Chrome.plist.mobileconfig file
- Enable custom profile
- System Preferences>Profiles>MCXToProfile: com.google.Chrome
- Click "Install..." then "Install"
- Enter password if prompted
- Open chrome://policy/ and "Reload policies"
- Open chrome://extensions/ and reload the page
- Enable sync on your chrome profile by clicking on the icon for your account in the top bar.
- Done! The extension now executes when you click "Update" on chrome://extensions/
Testing Flow (without Enterprise API's)
- If you don't need to use or test the enterprise API's you can load the unpacked extension
- Open chrome://extensions/
- Click "Load unpacked" and select dist folder
- Done! The extension now executes when you click "Update" on chrome://extensions/
- You'll get errors, but I added some exception handling to let it keep functioning without them
See MyQOI Deployment Guide in Root Folder