diff options
| author | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2019-10-12 17:12:34 -0400 | 
|---|---|---|
| committer | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2019-10-12 19:00:24 -0400 | 
| commit | 883226b0451350a0c01841e6c9a192bbb76dd8b6 (patch) | |
| tree | dfd63e4b2464a0d3eee533c3eac9be31c80de55b /ext/fg/js | |
| parent | c90bc75eb89f5a731f6e3366f6388b594a27b2aa (diff) | |
Update how custom CSS is applied
Diffstat (limited to 'ext/fg/js')
| -rw-r--r-- | ext/fg/js/float.js | 21 | ||||
| -rw-r--r-- | ext/fg/js/popup-proxy-host.js | 6 | ||||
| -rw-r--r-- | ext/fg/js/popup-proxy.js | 5 | ||||
| -rw-r--r-- | ext/fg/js/popup.js | 4 | 
4 files changed, 16 insertions, 20 deletions
| diff --git a/ext/fg/js/float.js b/ext/fg/js/float.js index 5164cd8f..4b3cd848 100644 --- a/ext/fg/js/float.js +++ b/ext/fg/js/float.js @@ -21,7 +21,6 @@ class DisplayFloat extends Display {      constructor() {          super(document.querySelector('#spinner'), document.querySelector('#definitions'));          this.autoPlayAudioTimer = null; -        this.styleNode = null;          this.optionsContext = {              depth: 0, @@ -101,11 +100,6 @@ class DisplayFloat extends Display {      async initialize(options, popupInfo, url, childrenSupported) {          await super.initialize(options); -        const css = options.general.customPopupCss; -        if (css) { -            this.setStyle(css); -        } -          const {id, depth, parentFrameId} = popupInfo;          this.optionsContext.depth = depth;          this.optionsContext.url = url; @@ -114,20 +108,6 @@ class DisplayFloat extends Display {              popupNestedInitialize(id, depth, parentFrameId, url);          }      } - -    setStyle(css) { -        const parent = document.head; - -        if (this.styleNode === null) { -            this.styleNode = document.createElement('style'); -        } - -        this.styleNode.textContent = css; - -        if (this.styleNode.parentNode !== parent) { -            parent.appendChild(this.styleNode); -        } -    }  }  DisplayFloat.onKeyDownHandlers = { @@ -145,6 +125,7 @@ DisplayFloat.messageHandlers = {      kanjiShow: (self, {definitions, context}) => self.kanjiShow(definitions, context),      clearAutoPlayTimer: (self) => self.clearAutoPlayTimer(),      orphaned: (self) => self.onOrphaned(), +    setCustomCss: (self, {css}) => self.setCustomCss(css),      initialize: (self, {options, popupInfo, url, childrenSupported}) => self.initialize(options, popupInfo, url, childrenSupported)  }; diff --git a/ext/fg/js/popup-proxy-host.js b/ext/fg/js/popup-proxy-host.js index 74a5153a..bb323f64 100644 --- a/ext/fg/js/popup-proxy-host.js +++ b/ext/fg/js/popup-proxy-host.js @@ -45,6 +45,7 @@ class PopupProxyHost {              containsPoint: ({id, x, y}) => this.containsPoint(id, x, y),              termsShow: ({id, elementRect, writingMode, definitions, context}) => this.termsShow(id, elementRect, writingMode, definitions, context),              kanjiShow: ({id, elementRect, writingMode, definitions, context}) => this.kanjiShow(id, elementRect, writingMode, definitions, context), +            setCustomCss: ({id, css}) => this.setCustomCss(id, css),              clearAutoPlayTimer: ({id}) => this.clearAutoPlayTimer(id)          });      } @@ -126,6 +127,11 @@ class PopupProxyHost {          return await popup.kanjiShow(elementRect, writingMode, definitions, context);      } +    async setCustomCss(id, css) { +        const popup = this.getPopup(id); +        return popup.setCustomCss(css); +    } +      async clearAutoPlayTimer(id) {          const popup = this.getPopup(id);          return popup.clearAutoPlayTimer(); diff --git a/ext/fg/js/popup-proxy.js b/ext/fg/js/popup-proxy.js index e8d6bc98..6ea94b6a 100644 --- a/ext/fg/js/popup-proxy.js +++ b/ext/fg/js/popup-proxy.js @@ -88,6 +88,11 @@ class PopupProxy {          return await this.invokeHostApi('kanjiShow', {id, elementRect, writingMode, definitions, context});      } +    async setCustomCss(css) { +        const id = await this.getPopupId(); +        return await this.invokeHostApi('setCustomCss', {id, css}); +    } +      async clearAutoPlayTimer() {          if (this.id === null) {              return; diff --git a/ext/fg/js/popup.js b/ext/fg/js/popup.js index 3556a52e..5ca8643f 100644 --- a/ext/fg/js/popup.js +++ b/ext/fg/js/popup.js @@ -292,6 +292,10 @@ class Popup {          this.invokeApi('kanjiShow', {definitions, context});      } +    async setCustomCss(css) { +        this.invokeApi('setCustomCss', {css}); +    } +      clearAutoPlayTimer() {          if (this.isInjected) {              this.invokeApi('clearAutoPlayTimer'); |