Was machen diese Drop-Downs? Ich nehme an, dass sie Konsolenbefehle in verschiedenen Kontexten ausführen, aber ich sehe seltsame, unsinnige Entscheidungen, wenn ich auf sie klicke.
Nehmen Sie Gmail als Beispiel und sehen Sie sich zunächst das erste Dropdown an:
Was Sie hier sehen können, sind alle Frames, die in die aktuelle Seite eingebettet sind. Jeder dieser Frames ist Sandboxed. Sandboxed bedeutet, dass kein Zugriff von einer Sandbox auf die anderen Sandboxes möglich ist. Skripte, die innerhalb eines Frames ausgeführt werden, können nicht auf DOM- oder JS-Variablen des anderen Frames zugreifen. Aus Sicherheitsgründen möchten wir nicht, dass ein Skript in einem iframe Zugriff auf die Seite hat, in die es eingebettet wurde. So könnten z. B. in einem Blog eingebettete Anzeigen lesen, was Sie gerade schreiben oder was Sie in Ihren Cookies speichern ).
Im zweiten Dropdown haben wir eine Liste von Kontexten für ausgewählte Bilder, z. Hier ist eine Liste von Kontexten für Gmail <top frame>
:
Dies sind Sandboxen, die für jedes Skript erstellt wurden, das von der Chrome-Erweiterung in den ausgewählten Frame eingefügt wurde (diese Skripts werden als " Inhalte bezeichnet Skripte '). Diese unterscheiden sich jedoch von den Frame-Sandboxen, die ich bereits erwähnt habe. Skripte, die von Chrome-Erweiterungen injiziert werden, haben unbegrenzten Zugriff auf das DOM der Seite, in die sie injiziert wurden, aber in einem separaten JS-Ausführungskontext namens isolierte Welt (haben keinen Zugriff auf "JavaScript-Variablen oder Funktionen von Die Seite"). In diesem Fall geht es mehr darum sicherzustellen, dass sich Skripte von verschiedenen Erweiterungen nicht gegenseitig stören, sondern nur die Sicherheit:
Isolierte Welten ermöglichen jedem Inhaltsskript Änderungen daran vorzunehmen JavaScript - Umgebung ohne sich Gedanken über Konflikte mit dem Seite oder mit anderen Inhaltsskripten. Zum Beispiel ein Inhaltsskript könnte JQuery v1 enthalten und die Seite könnte JQuery v2 enthalten würde nicht miteinander in Konflikt geraten.
BTW Ein Teil der URL, nachdem chrome://
für die Erweiterungs-ID steht und Sie verwenden, können Sie den Namen der Erweiterung herausfinden, die den Code injiziert hat (siehe 'Entwicklermodus' auf der chrome: // Erweiterungen / Seite).
console.*
messages sehen, die von einem iframe generiert werden. console.*
-Nachrichten sehen, die Ihr injiziertes Skript erzeugt hat. Tags und Links javascript google-chrome google-chrome-devtools