Q:

Can't xhr file inside of Chrome extension

I'm building out an extension and I'm trying to keep it well structured. Part of it will use a templating system of some type (Mustache, Handlebars, etc). Note that I'm already aware of having to use a specific non-eval version of what ever library I go with. 
The problem is that from within the app.js script (the core logic) I cannot XHR to load the contents of the files in /templates (see below).
The load event never fires, and when I examine with onreadystatechange it immediate jumps to state 4 with a status code of 0. (state 4 and status 200 are what we want).
Getting the Chrome url for the file works, e.g. 
chrome.extension.getURL('templates/view1.html')
//chrome-extension://hdhpjlpbepobcdgnkklnakdpoojaahjg/templates/view1.html 

I suspect there's something in my manifest.json that isn't configured right. I've read through the CSP docs but nothing is jumping out at me why accessing files local to the extension should be denied. Note that the XHR requests don't throw errors, they just never return data.
The structure of the app is like this:
/manifest.json
/src
    app.js
    style.css
/libs
    jquery.js
    mustache.js

/templates
    view1.html
    view2.html

Manifest.json
{
  "name": "Test Extension",
  "version": "0.0.1",
  "manifest_version": 2,
  "icons": {
//    "16": "",
//    "48": ""
//    "128": ""
  },
//  "default_locale": "en",
  "permissions": [
    "contentSettings",
    "http://*/*",
    "https://*/*"
  ],
  "content_scripts": [
    {
      "matches": [
        "https://www.google.com/search*"
      ],
      "css": [
        "src/style.css"
      ],
      "js": [
        "src/app.js",
        "libs/jquery.js",
        "libs/mustache.js"
      ],
      "run_at": "document_start"
    }
  ]
}

A:

You need to list the files you want to load in a web_accessible_resources section in your manifest.

