diff --git a/frontend/src/app/main/errors.cljs b/frontend/src/app/main/errors.cljs index 7891c166f0..c79358a0b8 100644 --- a/frontend/src/app/main/errors.cljs +++ b/frontend/src/app/main/errors.cljs @@ -436,7 +436,10 @@ (let [stack (.-stack cause)] (and (string? stack) (or (str/includes? stack "chrome-extension://") - (str/includes? stack "moz-extension://"))))) + (str/includes? stack "moz-extension://") + ;; Safari/WebKit masks extension and Web Inspector URLs + ;; with this internal scheme. + (str/includes? stack "webkit-masked-url://"))))) (defn- from-posthog? "True when the error stack trace originates from PostHog analytics." @@ -471,6 +474,14 @@ ;; TypeError. This is a known Zone.js / browser-extension ;; incompatibility and is NOT a Penpot bug. (str/starts-with? message "Cannot assign to read only property 'toString'") + ;; Safari TypeError: "Attempting to change value of a readonly + ;; property". Raised when browser extensions or Web Inspector + ;; devtools (e.g., jsonPrune) try to mutate ClojureScript's + ;; immutable data structures via Object.defineProperty. + ;; ClojureScript defines getter-only properties on its maps + ;; and records, making them readonly. This is NOT a Penpot bug. + (and (= (.-name ^js cause) "TypeError") + (= message "Attempting to change value of a readonly property")) ;; NotFoundError DOMException: "Failed to execute ;; 'removeChild' on 'Node'" — Thrown by React's commit ;; phase when the DOM tree has been modified externally