webFrame: support fetch api for schemes that are privileged.
authorRobo <hop2deep@gmail.com>
Tue, 29 Dec 2015 10:26:19 +0000 (15:56 +0530)
committerRobo <hop2deep@gmail.com>
Tue, 29 Dec 2015 10:27:59 +0000 (15:57 +0530)
atom/renderer/api/atom_api_web_frame.cc
docs/api/web-frame.md
spec/api-web-frame-spec.coffee [new file with mode: 0644]

index e9b2b03055e6a808141e93a913f98e0911d988b5..83d67a8b6635a962120f6b773f207818767b3551 100644 (file)
@@ -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(
index 38c5e30db43f061e0e773fc8b35e058d98b49890..114afd041cd00d281a1a80fcd2cfe83e8548c6fd 100644 (file)
@@ -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
diff --git a/spec/api-web-frame-spec.coffee b/spec/api-web-frame-spec.coffee
new file mode 100644 (file)
index 0000000..cece329
--- /dev/null
@@ -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)