line 0: Script error in Safrai, wenn Bitwarden Browser-Plugin aktiv

Begonnen von kennymc.c, 15 Februar 2025, 19:00:57

Vorheriges Thema - Nächstes Thema

kennymc.c

Bei mir erscheint seit kurzen nur in Safari wiederholt die Meldung "line 0: Script error", die erst verschwindet, wenn ich meinen Passwortmanagaer Bitwarden deaktiviere. Alternativ kann ich die Meldung auch über WEB confirmJSError 0 unterdrücken. Ich vermute ein Update der Bitwarden-Browsererweiterung scheint das auszulösen, da ich die Meldung in mehreren Jahren davor in der Kombination nie hatte. In der Browserkonsole (siehe Anhang) taucht longpoll auf aber weder auf 0 oder websockets bringt es keine Besserung. Mit websockets bricht zudem die Verbindung immer wieder ab.

list WEB: https://pastebin.com/pkx9iTjh (war zu lang für diesen Post)

rudolfkoenig

Soweit ich sehe, passiert der "Unglueck" in der checkPageContainsShadowDom Funktion.
Sie kommt nicht von FHEM, vmtl. ist das Teil des Passwortmanagers.
Da FHEM bootstrap nicht kennt, kommen die 5 Aufrufe davor vmtl. von Bitwarden.

Die letzte fhemweb.js Zeile ist fuer mich unverdaechtig.
Internetsuche nach der o.g. Bitwarden Funktion oder "line 0: Script error" mit Bitwarden hat fuer mich nichts ergeben.

Bin z.Zt. ratlos, was Bitwarden an der FHEM-Seite auszusetzen hat.

kennymc.c

#2
Ich vermute es liegt am Inline Auto-Ausfüllen Overlay Menü von Bitwarden. Ich kann dafür eine zusätzliche Option aktivieren, damit das Menü erst erscheint, wenn man ein Bitwarden Icon im Formularfeld klickt. Ansonsten erscheint das Menü direkt, wenn man nur auf das Formularfeld klickt. Mit dieser zusätzlichen Option scheint der Fehler zumindest seltener aufzutreten. Eventuell hilft das ja als Hinweis.
Ganz ohne Auto-Auto-Ausfüllen tritt der Fehler aber leider auch noch auf also wird das im Hintergrund eventuell nicht komplett deaktiviert. Leider kann ich Auto-Ausfüllen nur global für alle Seite deaktivieren und ist deshalb kein Workaround für mich. Da auf derselben IP auch noch anderen Dienste auf anderen Ports laufen und Safari ein Plugin nur für eine gesamte IP oder URL deaktivieren kann, muss ich dadurch auch auf Bitwarden bei diese anderen Dienste verzichten.

passibe

Vorab: Ich nutze auch Safari und Bitwarden und ich habe das Problem nicht. Hänge unten auch mal ein List meines FHEMWEB-Devices an, vielleicht findest du ja was.

Ansonsten kannst du bei Bitwarden durchaus recht genau einstellen, wann welche Passwörter zum Autofill vorgeschlagen werden sollen. Du kannst im Bearbeitungsmodus unter "Auto-Ausfüllen Optionen" bei den jeweiligen URLs mal auf das Zahnrad klicken und dann bei Übereinstimmungserkennung z.B. "Beginnt mit" auswählen und so sicherstellen, dass bei FHEM auch nur die FHEM-Passwörter (oder gar keine) von Bitwarden vorgeschlagen werden. Die Standardeinstellung "Basis-Domäne" ist da etwas zu weit, weil sie eben z.B. den Port unberücksichtigt lässt.
Wenn du also http://<IP>:<PORT> eingibst und als Übereinstimmungserkennung "Beginnt mit" wählst, dann kannst du filtern.

Ansonsten gibt es da auch jedenfalls die Option "Auto-Ausfüllen beim Laden einer Seite?" auszuschalten, vielleicht hilft das noch?

Hier noch das list:
Internals:
   BYTES_READ 2987394
   BYTES_WRITTEN 922348662
   CONNECTS   22590
   CSRFTOKEN  ---
   DEF        8083 global
   FD         5
   FUUID      5dc9aaf3-f33f-fcd4-2d9d-e2a9b0deb64248a6
   FVERSION   01_FHEMWEB.pm:0.293830/2024-11-30
   NAME       WEB
   NR         32
   NTFY_ORDER 50-WEB
   PORT       8083
   STATE      Initialized
   TYPE       FHEMWEB
   READINGS:
     2025-02-11 16:02:14   state           Initialized
Attributes:
   JavaScripts codemirror/fhem_codemirror.js input-history/jquery-input-history.js
   allowedHttpMethods GET|POST|HEAD
   allowfrom  172\.20\.1\.|172\.19\.5\.|127\.0\.0\.1
   codemirrorParam { "lineWrapping":true, "foldGutter":true }
   detailLinks 10
   devStateIcon Initialized:ampel_gruen .*:ampel_rot
   group      Services
   icon       it_internet
   longpoll   websocket
   room       System
   sortby     51
   styleData  {
 "f18": {
  "Pinned.menu": "true",
  "hidePin": "true",
  "cols.bg": "FFFFE7",
  "cols.fg": "000000",
  "cols.link": "278727",
  "cols.evenrow": "F8F8E0",
  "cols.oddrow": "F0F0D8",
  "cols.header": "E0E0C8",
  "cols.menu": "D7FFFF",
  "cols.sel": "A0FFFF",
  "cols.inpBack": "FFFFFF",
  "savePinChanges": true,
  "wrapcolumns": true,
  "widePortrait": true
 }
}
   stylesheetPrefix f18
   userattr   DockerHealthCheck:0,1

kennymc.c

#4
Es geht im die Inline Auto-Ausfüllen-Funktion (Vorschläge zum Auto-Ausfüllen in Formularfeldern anzeigen) und das kann man nur global deaktivieren. Ist das bei dir aktiv?
Die Auto-Ausfüllen-Einstellungen in den Einträgen kenne ich und benutze sie auch schon, damit nur die für Fhem notwendigen Zugangsdaten erscheinen. Auto-Ausfüllen beim Laden einer Seite ist bei mir auch deaktiviert.
Ich habe testweise die Auto-Ausfüllen Option auf Nie gestellt und auch damit tritt der Fehler auf.

passibe

Ja, ist aktiv. Alle Haken gesetzt bis auf "Vorschläge anzeigen, wenn Symbol ausgewählt ist" und "Klicke auf Einträge zum automatischen Ausfüllen in der Tresor-Ansicht".

Was passiert, wenn du die URLs so einstellst, dass nicht mal die Zugangsdaten für FHEM erscheinen?

Ansonsten kannst du es ja vielleicht auch mal mit einem "jungfräulichen" FHEMWEB-Device versuchen und dann schrittweise schauen, welche deiner Anpassungen ggfs. für die Fehlermeldung (mit-)verantwortlich ist.

kennymc.c

#6
Ich hab den Fehler auch mit einem fast leeren WEB Device.

Internals:
   BYTES_READ 253354
   BYTES_WRITTEN 3245079
   CFGFN     
   CONNECTS   297
   CSRFTOKEN  csrf_985411641756751
   DEF        8084 global
   FD         23
   FUUID      67b76bd9-f33f-bea6-8cb4-1d29d4c3343a6087
   NAME       WEB_TEST
   NR         615
   NTFY_ORDER 50-WEB_TEST
   PORT       8084
   SSL        1
   STATE      Initialized
   TYPE       FHEMWEB
   READINGS:
     2025-02-20 18:52:25   state           Initialized
Attributes:
   DbLogExclude .*
   sslCertPrefix fhem

HTTPS bekomme ich irgendwie nicht deaktiviert, deshalb ist das prefix attribut noch drin.

Die Bitwarden Auto-Ausfüllen Option hatte ich wie geschrieben schon mal auf Nie gestellt, damit die Seite nicht mehr in den Vorschlägen auftaucht aber das bringt eben nichts.


Edit: Ich glaube es ist doch ein Fehler von Bitwarden. Gerade gab es ein Update des Browser Clients "Bug fix - DomQueryService erroring as undefined": https://github.com/bitwarden/clients/releases/tag/browser-v2025.2.1
In den GitHub Issues hab ich das hierzu gefunden: https://github.com/bitwarden/clients/issues/13308 https://github.com/bitwarden/clients/issues/13421 War also auch in Chrome und auf anderen Seiten ein Problem. Vermutlich aber nur in Fhem aufgefallen, da hier auch eine Meldung außerhalb der Browser-Konsole zu sehen ist.
Es dauert dann zwar noch etwas bis das Update über den Desktop Client ausgerollt wird aber dann berichte ich, ob das Problem damit gelöst ist.

kennymc.c

Seit heute ist endlich das Update verfügbar. Die Browser-Erweiterung 2025.2.2 hat das Problem gelöst.