Я пытаюсь создать расширение для браузера, используя clojurescript и re-agent (обертка вокруг реакции).Код очень прост (здесь завершены шаги с исходным кодом и репро) , в основном скопированный с примера агента:
(ns clext2.core
(:require [reagent.core :as r]))
(defn timer-component []
(let [seconds-elapsed (r/atom 0)]
(fn []
(js/setTimeout #(do (println "timeout") (swap! seconds-elapsed inc)) 1000)
[:div "Seconds Elapsed: " @seconds-elapsed])))
(let [app (js/document.createElement "div")
_ (js/document.body.appendChild app)]
(r/render [timer-component] app))
Я скомпилировал это с флагом оптимизации :simple
, скопировалсгенерированный js в пример кода, опубликованного Mozilla: https://github.com/cljsjs/packages/wiki/Creating-Packages, и загруженного расширения для Chromium и Firefox.
Наблюдения
При локальном тестировании с figwheel счетчик отображает ви хром, и firefox.
Когда я перехожу на реальную страницу (без использования figwheel):
- В Firefox счетчик загружается, но не увеличивается (
timeout
печатается один раз) - С хромом счетчик загружается и увеличивается (
timeout
печатается каждую секунду)
Ожидаемое поведение
Я ожидаю, что счетчик будет заметно увеличиватьсяс Firefox и не работает.
Версии браузера
- Chromium (71.0.3578.98 (Официальная сборка) Manjaro Linux (64-bit))
- Firefox (64.0для Манджаро).
My question
Я не уверен, как отладить это дальше, что я могу попробовать дальше?