Bug 1224528 - WIP Android support
MozReview-Commit-ID: GjkOToPtfr5
--- a/services/common/KintoBlocklist.js
+++ b/services/common/KintoBlocklist.js
@@ -11,16 +11,17 @@ this.EXPORTED_SYMBOLS = ["AddonBlocklist
"FILENAME_ADDONS_JSON",
"FILENAME_GFX_JSON",
"FILENAME_PLUGINS_JSON"];
const { classes: Cc, interfaces: Ci, utils: Cu } = Components;
Cu.import("resource://gre/modules/Services.jsm");
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
+Cu.import("resource://gre/modules/AppConstants.jsm");
Cu.importGlobalProperties(['fetch']);
const { Task } = Cu.import("resource://gre/modules/Task.jsm");
const { OS } = Cu.import("resource://gre/modules/osfile.jsm");
const { loadKinto } = Cu.import("resource://services-common/kinto-offline-client.js");
XPCOMUtils.defineLazyModuleGetter(this, "FileUtils",
"resource://gre/modules/FileUtils.jsm");
@@ -83,17 +84,21 @@ class BlocklistClient {
loadDumpFile() {
const filePath = ["defaults", "collections", "blocklists", `${this.collectionName}.json`];
const collectionFile = FileUtils.getFile(KEY_APPDIR, filePath);
let fileURI;
if (collectionFile.exists()) {
fileURI = Services.io.newFileURI(collectionFile).spec;
} else {
- throw new Error(`Distribution file '${collectionFile.path}' missing`);
+ if (AppConstants.platform == "android") {
+ fileURI = "android://resource/assets/" + filePath.join("/");
+ } else {
+ throw new Error(`Distribution file '${collectionFile.path}' missing`);
+ }
}
return Task.spawn((function* loadFile() {
const response = yield fetch(fileURI);
if (!response.ok) {
throw new Error(`Could not read from '${fileURI}'`);
}
// Will be rejected if JSON is invalid.