**Situation** : I am writing a chrome extension that works on any page.

**Problem Question** : I can not load jQuery into Facebook and I would like to understand what is happening.

**Hypotheses** : Facebook possess some ultra advanced tech that somehow detects both : 

1. When jQuery is loaded via a chrome extension in an
ostensibly *separate* JSVM execution context, the Facebook megamind
somehow knows about this ostensibly *separate* JSVM execution
context, and blocks it.
2. that jQuery is loaded via script.src and blocks it 
(when I used the Google CDN which serves over HTTPS instead of the
jQuery one which doesn't method 2 works, *but is not sufficient for
answer*).

***DATA***

**How do I know jQuery is not loading?** 

I `⌘``⌥``j` to bring up the console in Chrome. When I do :

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

```

**How do I attempt to load jQuery in facebook?**

**Method 1 (required but fails)**:

Via the following code in the manifest.json file : 

```
"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)
                                  } 
                              ]

```

**Method 2 (works, but insufficent)**:

Via the method described in this SO answer ([load jQuery into console](https://stackoverflow.com/a/7474386/907415)), modified to permit the correct protocol :

```
    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();

```

***Summary***

Hypothesis 1 seems very unlikely, because over-riding the separate execution contexts of a web browser would be a major security vulnerability (break that sandbox), and not likely to be sanctioned. Therefore, I am probably being paranoid and overlooking the obvious, which hopefully one of you will see.

***Appendix (other relevant code)***

All of *non-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;
    };

```

More of *manifest.json* :

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

```