Que font ces pannes? Je suppose qu'ils exécutent des commandes de console dans différents contextes, mais je vois des choix étranges et absurdes lorsque je clique sur eux.
Prenons Gmail comme exemple et commencez par regarder le premier menu déroulant:
Ce que vous pouvez voir ici sont tous les cadres intégrés dans la page actuelle. Chacune de ces images est en sable. L'utilisation de sandbox signifie qu'il n'y a pas d'accès d'un bac à sable aux autres bacs à sable. Les scripts exécutés dans une image ne peuvent pas accéder aux variables DOM ou JS de l'autre image. Cela est dû à des raisons de sécurité, nous ne voulons pas qu'un script à l'intérieur d'un iframe ait accès à la page dans laquelle il a été incorporé (cela permettrait, par exemple, des annonces intégrées dans un blog de lire ce que vous tapez ou ce que vous gardez dans vos cookies ).
Dans la deuxième liste déroulante, nous avons une liste de contextes pour l'image sélectionnée, par exemple, une liste de contextes pour Gmails <top frame>
:
Ce sont des bacs à sable créés pour chaque script qui a été injecté par l'extension Chrome à la trame sélectionnée (ces scripts sont appelés « scripts de contenu »). Cependant, cela diffère des bacs de fond de cadre que j'ai mentionnés auparavant. Les scripts injectés par les extensions Chrome ont un accès illimité au DOM de la page à laquelle ils ont été injectés, mais opèrent dans un contexte d'exécution JS distinct appelé monde isolé (n'ont pas accès aux "variables JavaScript ou aux fonctions créées par la page"). Dans ce cas, il est plus important de s'assurer que les scripts provenant de différentes extensions n'interfèrent pas entre eux que sur la sécurité:
Les mondes isolés permettent à chaque script de contenu d'apporter des modifications à son environnement JavaScript sans se soucier de conflit avec la page ou avec d'autres scripts de contenu. Par exemple, un script de contenu pourrait inclure JQuery v1 et la page pourrait inclure JQuery v2, et ils ne seraient pas en conflit les uns avec les autres.
BTW Une partie de l'url après chrome://
représente l'ID de l'extension et l'utilise, vous pouvez trouver le nom de l'extension qui a injecté le code (cochez 'Mode Développeur' sur le chrome: // extensions / page).
console.*
Messages générés par un iframe. console.*
Messages que votre script injecté a produit.