ClaroRead Chrome

ClaroRead Chrome

Speaks aloud text in web pages

Merlin
Additional files are visible only to premium users

manifest.json


{
  "update_url": "https://clients2.google.com/service/update2/crx",
  "manifest_version": 3,
  "name": "__MSG_appName__",
  "default_locale": "en",
  "description": "__MSG_appDesc__",
  "icons": {
    "16": "images/icons/claroRead_16.png",
    "24": "images/icons/claroRead_24.png",
    "48": "images/icons/claroRead_48.png",
    "96": "images/icons/claroRead_96.png",
    "128": "images/icons/claroRead_128.png"
  },
  "version": "35.3.1",
  "permissions": [
    "identity",
    "identity.email",
    "tabs",
    "tts",
    "storage",
    "contextMenus",
    "nativeMessaging",
    "downloads",
    "clipboardWrite",
    "clipboardRead",
    "management",
    "scripting",
    "activeTab"
  ],
  "host_permissions": [
    "<all_urls>"
  ],
  "storage": {
    "managed_schema": "schema.json"
  },
  "author": "Claro Software",
  "homepage_url": "https://www.clarosoftware.com",
  "short_name": "ClaroRead",
  "content_scripts": [
    {
      "all_frames": true,
      "js": [
        "edge.js",
        "spellcheck/js/plugins/rangy/rangy-core.js",
        "spellcheck/js/plugins/rangy/rangy-textrange.js",
        "spellcheck/js/plugins/rangy/rangy-selectionsaverestore.js",
        "spellcheck/js/plugins/mark/mark.min.js",
        "claroview/js/claro-claroview.js",
        "audionote/js/claro-audionote.js",
        "globals.js",
        "background.js",
        "background_hunspell.js",
        "background_Prediction.js",
        "styles.js",
        "ck.js",
        "echo/js/echo.js",
        "mouse.js",
        "gmail.js",
        "optionswindow.js",
        "readWithHighlighting.js",
        "toolbar.js",
        "scanselection/js/claro-tesseract.js",
        "scanselection/js/claro-scanselection.js",
        "googledocs/claro-google-docs.js",
        "claro-google-slides.js",
        "claro-spellcheck.js",
        "claropdf.js",
        "claropdf/contentscript.js",
        "predictionHelperFunctions.js",
        "prediction.js",
        "ClaroMathReader.js",
        "mathML.js",
        "languagecodestonames.js",
        "clarocapture/claro-capture.js",
        "spellcheck/claro-spell-check.js",
        "PDFEvents.js",
        "wordonline/html_helpers.js",
        "wordonline/Reader.js",
        "wordonline/SelectionTextIterator.js",
        "wordonline/WordOnlineReader.js",
        "wordonline/ClaroWordOnline.js",
        "claroview/js/screenRuler-texthelp.js"
      ],
      "matches": [
        "<all_urls>",
        "http://*/*",
        "https://*/*",
        "ftp://*/*",
        "file://*/*"
      ],
      "run_at": "document_end",
      "css": [
        "css/default.css",
        "scanselection/css/default.css",
        "claroview/css/default.css",
        "claropdf/contentstyle.css",
        "clarocapture/css/styles.css",
        "spellcheck/claro-spellcheck.css"
      ]
    },
    {
      "matches": [
        "https://docs.google.com/*"
      ],
      "js": [
        "googledocs/content-script.js"
      ],
      "run_at": "document_start",
      "all_frames": false
    },
    {
      "matches": [
        "<all_urls>",
        "http://*/*",
        "https://*/*",
        "ftp://*/*",
        "file://*/*"
      ],
      "all_frames": false,
      "js": [
        "serverSpeechHandler.js",
        "sapi5websocket.js"
      ]
    }
  ],
  "background": {
    "service_worker": "claroReadChromeSW.js"
  },
  "web_accessible_resources": [
    {
      "matches": [
        "<all_urls>"
      ],
      "resources": [
        "spellcheck/CompoundWords_sv.xml",
        "scanselection/js/ocr.js",
        "traineddata/*.traineddata.gz",
        "ocr.html",
        "googledocs/google-docs-integration.js",
        "googledocs/texthelp-wrapper.js",
        "googledocs/canvas-docs.js",
        "options.html",
        "options.html.js",
        "jq.js",
        "images/icons/claroRead_16.png",
        "images/*",
        "claropdf/content/web/viewer.html",
        "googledocextension.js",
        "googledocspredictionevents.js",
        "tesseract/js/tesseract.min.js",
        "tesseract/js/worker.min.js",
        "tesseract/js/tesseract-core.wasm.js",
        "http:/*",
        "https:/*",
        "ftp:/*",
        "file:/*",
        "chrome-extension:/*",
        "blob:*",
        "data:*",
        "filesystem:/*",
        "drive:*",
        "prediction/*.json",
        "prediction/common corrections/*.json",
        "tesseract/traineddata/*.traineddata.gz",
        "spellcheck/js/claro-spellcheck-ui.json",
        "spellcheck/img/spelling.ico",
        "spellcheck/img/homophone.ico",
        "spellcheck/dict/*",
        "css/default.css",
        "audionote/control-words/en.json",
        "audionote/control-words/sv.json",
        "flags/languages.json",
        "clarocapture/img/*.png",
        "prediction/nextword/*.json",
        "wordonlinePrediction.js",
        "spellcheck/dict/*",
        "voicelist.json",
        "echo/*",
        "analytics/ClaroGoogleAnalytics.js",
        "clipboard.html",
        "clipboard.js",
        "echo/sounds/voiceGenderMap.json"
      ]
    }
  ],
  "oauth2": {
    "client_id": "1018600226194-b99lphppdjmqvtl7ssc0lh05mrtl4guc.apps.googleusercontent.com",
    "scopes": [
      "https://www.googleapis.com/auth/admin.directory.group",
      "https://www.googleapis.com/auth/admin.directory.user",
      "https://www.googleapis.com/auth/userinfo.email",
      "https://www.googleapis.com/auth/admin.directory.userschema",
      "https://www.googleapis.com/auth/chromewebstore.readonly"
    ]
  },
  "action": {
    "default_icon": "images/icons/claroRead_24.png"
  },
  "options_page": "options.html",
  "offline_enabled": true,
  "content_security_policy": {
    "script-src": "self unsafe-eval",
    "object-src": "self unsafe-eval",
    "extension_pages": "script-src 'self' 'wasm-unsafe-eval';  object-src 'none'",
    "sandbox": "sandbox allow-scripts; script-src 'self' 'unsafe-eval'; worker-src blob:"
  },
  "sandbox": {
    "pages": [
      "claropdf/content/web/viewer.html"
    ]
  }
}