diff --git a/manifest.json b/manifest.json
index b8eab624..53d4d792 100644
--- a/manifest.json
+++ b/manifest.json
@@ -110,6 +110,9 @@
"js": ["content/install-hook-usercss.js"]
}
],
+ "web_accessible_resources": [
+ "/sync/dropbox-oauth.html"
+ ],
"browser_action": {
"default_icon": {
"16": "/images/icon/16w.png",
diff --git a/sync/dropbox-auth-receiver.js b/sync/dropbox-auth-receiver.js
new file mode 100644
index 00000000..8286a37d
--- /dev/null
+++ b/sync/dropbox-auth-receiver.js
@@ -0,0 +1,11 @@
+/* global chromeLocal */
+'use strict';
+
+window.onload = () => {
+ const params = new URLSearchParams(new URL(location.href).hash.substr(1));
+ /* it uses browser direct here because it supports just firefox yet */
+ chromeLocal.setValue('dropbox_access_token', params.get('access_token'))
+ .then(() => {
+ window.location.href = window.location.origin + '/manage.html';
+ });
+}
diff --git a/sync/dropbox-oauth.html b/sync/dropbox-oauth.html
new file mode 100644
index 00000000..e4f83a33
--- /dev/null
+++ b/sync/dropbox-oauth.html
@@ -0,0 +1,12 @@
+
+
+
+
+
+ OAuth Receiver
+
+
+
+
+
+
diff --git a/sync/import-export-dropbox.js b/sync/import-export-dropbox.js
index 222df852..64ce44a8 100644
--- a/sync/import-export-dropbox.js
+++ b/sync/import-export-dropbox.js
@@ -3,7 +3,8 @@
$ $create t chromeLocal API getOwnTab */
'use strict';
-const DROPBOX_API_KEY = 'zg52vphuapvpng9';
+// const DROPBOX_API_KEY = 'zg52vphuapvpng9';
+const DROPBOX_API_KEY = 'uyfixgzre8v1bkg';
const FILENAME_ZIP_FILE = 'stylus.json';
const DROPBOX_FILE = 'stylus.zip';
const API_ERROR_STATUS_FILE_NOT_FOUND = 409;
@@ -35,6 +36,11 @@ function requestDropboxAccessToken() {
clientId: DROPBOX_API_KEY,
fetch
});
+ const isFirefoxAndroid = /Android/.test(navigator.userAgent) && /Mozilla/.test(navigator.userAgent);
+ if (isFirefoxAndroid) {
+ window.location.href = client.getAuthenticationUrl(window.location.origin + '/sync/dropbox-oauth.html');
+ return;
+ }
const authUrl = client.getAuthenticationUrl(getRedirectUrlAuthFlow());
return launchWebAuthFlow({url: authUrl, interactive: true})
.then(urlReturned => {
@@ -51,9 +57,9 @@ function uploadFileDropbox(client, stylesText) {
$('#sync-dropbox-export').onclick = () => {
const mode = localStorage.installType;
const title = t('syncDropboxStyles');
- const text = mode === 'normal' ? t('connectingDropbox') : t('connectingDropboxNotAllowed');
- messageProgressBar({title, text});
- if (mode !== 'normal') return;
+ // const text = mode === 'normal' ? t('connectingDropbox') : t('connectingDropboxNotAllowed');
+ // messageProgressBar({title, text});
+ // if (mode !== 'normal') return;
hasDropboxAccessToken()
.then(token => token || requestDropboxAccessToken())
@@ -125,9 +131,9 @@ $('#sync-dropbox-export').onclick = () => {
$('#sync-dropbox-import').onclick = () => {
const mode = localStorage.installType;
const title = t('retrieveDropboxSync');
- const text = mode === 'normal' ? t('connectingDropbox') : t('connectingDropboxNotAllowed');
- messageProgressBar({title, text});
- if (mode !== 'normal') return;
+ // const text = mode === 'normal' ? t('connectingDropbox') : t('connectingDropboxNotAllowed');
+ // messageProgressBar({title, text});
+ // if (mode !== 'normal') return;
hasDropboxAccessToken()
.then(token => token || requestDropboxAccessToken())