aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortoasted-nutbread <toasted-nutbread@users.noreply.github.com>2020-02-16 13:13:04 -0500
committertoasted-nutbread <toasted-nutbread@users.noreply.github.com>2020-02-16 21:43:35 -0500
commit2c3f510010ca2910b8c227a9888e2c3584840402 (patch)
tree253ec4be97869bfe7248639b0c64ac95ddd8f9f2
parent1c6ed1d2866d9912b3b65d9e5addf710a6f26b38 (diff)
Allow apiInjectStylesheet to inject a URL
-rw-r--r--ext/bg/js/backend.js23
-rw-r--r--ext/fg/js/popup.js2
-rw-r--r--ext/mixed/js/api.js4
3 files changed, 19 insertions, 10 deletions
diff --git a/ext/bg/js/backend.js b/ext/bg/js/backend.js
index d1a34f82..eeed841c 100644
--- a/ext/bg/js/backend.js
+++ b/ext/bg/js/backend.js
@@ -499,19 +499,28 @@ class Backend {
return Promise.resolve({frameId});
}
- _onApiInjectStylesheet({css}, sender) {
+ _onApiInjectStylesheet({type, value}, sender) {
if (!sender.tab) {
return Promise.reject(new Error('Invalid tab'));
}
const tabId = sender.tab.id;
const frameId = sender.frameId;
- const details = {
- code: css,
- runAt: 'document_start',
- cssOrigin: 'user',
- allFrames: false
- };
+ const details = (
+ type === 'file' ?
+ {
+ file: value,
+ runAt: 'document_start',
+ cssOrigin: 'author',
+ allFrames: false
+ } :
+ {
+ code: value,
+ runAt: 'document_start',
+ cssOrigin: 'user',
+ allFrames: false
+ }
+ );
if (typeof frameId === 'number') {
details.frameId = frameId;
}
diff --git a/ext/fg/js/popup.js b/ext/fg/js/popup.js
index 45203c03..970c5343 100644
--- a/ext/fg/js/popup.js
+++ b/ext/fg/js/popup.js
@@ -167,7 +167,7 @@ class Popup {
} else {
if (!css) { return; }
try {
- await apiInjectStylesheet(css);
+ await apiInjectStylesheet('code', css);
this._stylesheetInjectedViaApi = true;
} catch (e) {
// NOP
diff --git a/ext/mixed/js/api.js b/ext/mixed/js/api.js
index 86bdc73c..14900ecf 100644
--- a/ext/mixed/js/api.js
+++ b/ext/mixed/js/api.js
@@ -89,8 +89,8 @@ function apiFrameInformationGet() {
return _apiInvoke('frameInformationGet');
}
-function apiInjectStylesheet(css) {
- return _apiInvoke('injectStylesheet', {css});
+function apiInjectStylesheet(type, value) {
+ return _apiInvoke('injectStylesheet', {type, value});
}
function apiGetEnvironmentInfo() {