Browse Source

webFrame: support fetch api for schemes that are privileged.

Robo 9 years ago
parent
commit
2e78aba090
3 changed files with 22 additions and 2 deletions
  1. 2 0
      atom/renderer/api/atom_api_web_frame.cc
  2. 2 2
      docs/api/web-frame.md
  3. 18 0
      spec/api-web-frame-spec.coffee

+ 2 - 0
atom/renderer/api/atom_api_web_frame.cc

@@ -112,6 +112,8 @@ void WebFrame::RegisterURLSchemeAsPrivileged(const std::string& scheme) {
       privileged_scheme);
   blink::WebSecurityPolicy::registerURLSchemeAsAllowingServiceWorkers(
       privileged_scheme);
+  blink::WebSecurityPolicy::registerURLSchemeAsSupportingFetchAPI(
+      privileged_scheme);
 }
 
 mate::ObjectTemplateBuilder WebFrame::GetObjectTemplateBuilder(

+ 2 - 2
docs/api/web-frame.md

@@ -87,7 +87,7 @@ Content Security Policy.
 
 * `scheme` String
 
-Registers the `scheme` as secure, bypasses content security policy for resources and
-allows registering ServiceWorker.
+Registers the `scheme` as secure, bypasses content security policy for resources,
+allows registering ServiceWorker and supports fetch API.
 
 [spellchecker]: https://github.com/atom/node-spellchecker

+ 18 - 0
spec/api-web-frame-spec.coffee

@@ -0,0 +1,18 @@
+assert = require 'assert'
+path = require 'path'
+
+{webFrame} = require 'electron'
+
+describe 'webFrame module', ->
+  fixtures = path.resolve __dirname, 'fixtures'
+
+  describe 'webFrame.registerURLSchemeAsPrivileged', ->
+    it 'supports fetch api', (done) ->
+      webFrame.registerURLSchemeAsPrivileged 'file'
+      url = "file://#{fixtures}/assets/logo.png"
+
+      fetch(url).then((response) ->
+        assert response.ok
+        done()
+      ).catch (err) ->
+        done('unexpected error : ' + err)