diff --git a/atom/browser/api/lib/protocol.js b/atom/browser/api/lib/protocol.js index caef0ad646b..de1bdea471f 100644 --- a/atom/browser/api/lib/protocol.js +++ b/atom/browser/api/lib/protocol.js @@ -19,10 +19,6 @@ var logAndThrow = function(callback, message) { } }; -protocol.fromPartition = function(partition) { - return session.fromPartition(partition).protocol; -}; - protocol.registerProtocol = function(scheme, handler, callback) { return logAndThrow(callback, 'registerProtocol API has been replaced by the register[File/Http/Buffer/String]Protocol API family, please switch to the new APIs.'); }; diff --git a/docs/api/session.md b/docs/api/session.md index cc90a0b542c..d492f3d55c5 100644 --- a/docs/api/session.md +++ b/docs/api/session.md @@ -523,3 +523,25 @@ The `listener` will be called with `listener(details)` when an error occurs. * `timestamp` Double * `fromCache` Boolean * `error` String - The error description. + +#### `ses.protocol` + +Returns an instance of [protocol](protocol.md) module for this session. + +```javascript +const electron = require('electron'); +const app = electron.app; +const session = electron.session; +const path = require('path'); + +app.on('ready', function() { + const protocol = session.fromPartition(partitionName).protocol; + protocol.registerFileProtocol('atom', function(request, callback) { + var url = request.url.substr(7); + callback({path: path.normalize(__dirname + '/' + url)}); + }, function (error) { + if (error) + console.error('Failed to register protocol') + }); +}); +``` diff --git a/spec/api-protocol-spec.js b/spec/api-protocol-spec.js index 483155b7065..beb483e3f80 100644 --- a/spec/api-protocol-spec.js +++ b/spec/api-protocol-spec.js @@ -5,6 +5,7 @@ const qs = require('querystring'); const remote = require('electron').remote; const BrowserWindow = remote.require('electron').BrowserWindow; const protocol = remote.require('electron').protocol; +const session = remote.require('electron').session; describe('protocol module', function() { var protocolName = 'sp'; @@ -818,7 +819,7 @@ describe('protocol module', function() { describe('protocol.fromPartition', function() { var partitionName = 'temp'; - var tempProtocol = protocol.fromPartition(partitionName); + var tempProtocol = session.fromPartition(partitionName).protocol; var w = null; beforeEach(function() { @@ -852,17 +853,18 @@ describe('protocol module', function() { if (error) { return done(error); } + protocol.isProtocolHandled(protocolName, function(result) { assert.equal(result, false); }); tempProtocol.isProtocolHandled(protocolName, function(result) { assert.equal(result, true); + w.webContents.on('did-finish-load', function() { + done(); + }); + w.loadURL(protocolName + "://fake-host"); }); }); - w.webContents.on('did-finish-load', function() { - done(); - }); - w.loadURL(protocolName + "://fake-host"); }); }); });