Für mein Leben kann ich nicht erreichen, dass meine Chrome-Erweiterung einen iFrame mit einer Remote-URL anzeigt.
Ich sehe die folgende Nachricht in der Konsole -
wurde abgelehnt, um Ссылка zu rahmen, da es gegen die folgende Richtlinie zur Inhaltssicherheitsrichtlinie verstößt: "child-src 'self'". Beachten Sie, dass 'frame-src' nicht explizit festgelegt wurde, daher wird 'child-src' als Fallback verwendet.
Ich habe hier eine Lösung gefunden ( Iframe in eine Seite mit restriktiver Inhaltssicherheitsrichtlinie einfügen ), die das Einbringen eines lokalen iframes erfordert, das dann einen anderen iframe enthält, der auf die entfernte URL verweist. Dies soll die Sicherheitsrichtlinie umgehen. Aber aus irgendeinem Grund scheint es in meinem Fall nicht zu funktionieren. Fehle ich etwas oder wurde die Chrome-Sicherheitsrichtlinie geändert?
Nachfolgend sind Teile meiner Erweiterung aufgeführt, die zu diesem Problem gehören. Beachte - dieser Code ist nicht der hübscheste, da ich hantiert habe, um das zum Laufen zu bringen.
So wie dies jetzt funktioniert, sendet background.js eine Nachricht an inject.js. inject.js fügt den ersten iframe ein, der auf die lokale Datei infobar.html verweist. Diese Seite ist unsere Hauptbenutzeroberfläche. Wir möchten, dass die Remote-HTML-Seite in einem iframe als Teil dieser Seite angezeigt wird. Dann fügt infobar.js einen iframe ein, der auf die lokale Datei frame.html verweist. Schließlich hat frame.html einen iframe, der für unsere Remote-URL fest codiert ist.
Basierend auf der vorherigen Antwort sollte nur der erste iframe der Inhaltssicherheitsrichtlinie unterliegen. Dies scheint jedoch hier nicht der Fall zu sein, da das referenzierende Beispiel.com tatsächlich 3 iframes tief ist.
manifest.json
%Vor%inject.js
%Vor%infobar.html
Einfache HTML-Seite. Nichts da drin. Referenzen infobar.js.
infobar.js
%Vor%frame.html
%Vor% Der richtige Weg ist, die chrome.webRequest
API in Ihrem Hintergrundskript zu verwenden und HTTP-Antworten abzufangen.
Sie können dann die Antwortheader überschreiben, um den Content-Security-Policy-Header zu ändern. Sie können auch X-Frame-Options
header ändern (falls erforderlich).
Dokumentation: chrome.webRequest
Tags und Links google-chrome-extension content-security-policy