Warum wird jQuery nicht in Facebook geladen?

Situation : Ich schreibe eine Chrome-Erweiterung, die auf jeder Seite funktioniert.

Problem Frage : Ich kann jQuery nicht in Facebook laden und möchte verstehen, was passiert.

Hypothesen : Facebook verfügt über eine hochentwickelte Technologie, die beide erkennt:

Beim Laden von jQuery handelt es sich angeblich um eine Chrome-Erweiterungtrennen JSVM-Ausführungskontext, das Facebook-Megamind weiß das scheinbar irgendwietrennen JSVM-Ausführungskontext und blockiert ihn.Diese jQuery wird über script.src geladen und blockiert sie(Wenn ich das Google-CDN verwendet habe, das über HTTPS bereitgestellt wird, anstelle des jQuery-CDNs, bei dem Methode 2 nicht funktioniert,ist aber nicht ausreichend für eine antwort).

DATEN

Woher weiß ich, dass jQuery nicht geladen wird?

I ⌘⌥j um die Konsole in Chrome aufzurufen. Wenn ich mache:

    > jQuery
    >> ReferenceError : jQuery is not defined.
    > $('body')
    >> Error : Tried to get element "body" but it is not present on the page.

Wie versuche ich, jQuery in Facebook zu laden?

Methode 1 (erforderlich, schlägt jedoch fehl):

Über den folgenden Code in der manifest.json-Datei:

"content_scripts"         :   [
                                  {
                                    "matches"   : ["<all_urls>"],
                                    "js"        : [ 
                                                    "javascript/jq/jquery-1.9.1.min.js",                                            
                                                    "javascript/jq/non-standard.js"
                                                  ],
                                    "all_frames": true // (or false, same failure)
                                  } 
                              ]

Methode 2 (funktioniert, aber nicht ausreichend):

Über die in dieser Antwort beschriebene Methode (Laden Sie jQuery in die Konsole), geändert, um das richtige Protokoll zu ermöglichen:

    var jq = document.createElement('script');
    jq.src = "//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js";
    document.getElementsByTagName('head')[0].appendChild(jq);
    jQuery.noConflict();

Zusammenfassung

Hypothese 1 erscheint sehr unwahrscheinlich, da das Überschreiben der einzelnen Ausführungskontexte eines Webbrowsers eine große Sicherheitslücke darstellen würde (diese Sandbox zerstören) und wahrscheinlich nicht sanktioniert wird. Deshalb bin ich wahrscheinlich paranoid und übersehe das Offensichtliche, was hoffentlich einer von euch sehen wird.

Anhang (anderer relevanter Code)

Allenicht standard.js :

    $.fn.in_groups_of = function( countPerGroup ) {
        var groups = [], offset = 0, $group;
        while ( ($group = this.slice( offset, (countPerGroup + offset) )).length ) {
            groups.push( $group );
            offset += countPerGroup;
        }
        return groups;
    };

Mehr vonmanifest.json :

"manifest_version"        :   2,
"permissions"             :   [
                                  "http://*/",
                                  "https://*/",
                                  "tabs",
                                  "storage",
                                  "unlimitedStorage"
                              ],

Antworten auf die Frage(3)

Ihre Antwort auf die Frage