Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(94)

Side by Side Diff: chrome/renderer/resources/extensions/experimental.socket_custom_bindings.js

Issue 10134008: Add bind(), recvFrom(), sendTo() for UDP socket. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Update Created 8 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Custom bindings for the experimental.socket API. 5 // Custom bindings for the experimental.socket API.
6 6
7 var experimentalSocketNatives = requireNative('experimental_socket'); 7 var experimentalSocketNatives = requireNative('experimental_socket');
8 var GetNextSocketEventId = experimentalSocketNatives.GetNextSocketEventId; 8 var GetNextSocketEventId = experimentalSocketNatives.GetNextSocketEventId;
9 9
10 var chromeHidden = requireNative('chrome_hidden').GetChromeHidden(); 10 var chromeHidden = requireNative('chrome_hidden').GetChromeHidden();
11 var sendRequest = require('sendRequest').sendRequest; 11 var sendRequest = require('sendRequest').sendRequest;
12 var lazyBG = requireNative('lazy_background_page'); 12 var lazyBG = requireNative('lazy_background_page');
13 13
14 chromeHidden.registerCustomHook('experimental.socket', function(api) { 14 chromeHidden.registerCustomHook('experimental.socket', function(api) {
15 var apiFunctions = api.apiFunctions; 15 var apiFunctions = api.apiFunctions;
16 16
17 apiFunctions.setHandleRequest('create', function() { 17 apiFunctions.setHandleRequest('create', function() {
18 var args = arguments; 18 var args = arguments;
19 if (args.length > 3 && args[3] && args[3].onEvent) { 19 if (args.length > 1 && args[1] && args[1].onEvent) {
20 var id = GetNextSocketEventId(); 20 var id = GetNextSocketEventId();
21 args[3].srcId = id; 21 args[1].srcId = id;
22 chromeHidden.socket.handlers[id] = args[3].onEvent; 22 chromeHidden.socket.handlers[id] = args[1].onEvent;
23 23
24 // Keep the page alive until the event finishes. 24 // Keep the page alive until the event finishes.
25 // Balanced in eventHandler. 25 // Balanced in eventHandler.
26 lazyBG.IncrementKeepaliveCount(); 26 lazyBG.IncrementKeepaliveCount();
27 } 27 }
28 sendRequest(this.name, args, this.definition.parameters); 28 sendRequest(this.name, args, this.definition.parameters);
29 return id; 29 return id;
30 }); 30 });
31 31
32 // Set up events. 32 // Set up events.
(...skipping 22 matching lines...) Expand all
55 break; 55 break;
56 } 56 }
57 if (event.isFinalEvent) { 57 if (event.isFinalEvent) {
58 delete chromeHidden.socket.handlers[event.srcId]; 58 delete chromeHidden.socket.handlers[event.srcId];
59 // Balanced in 'create' handler. 59 // Balanced in 'create' handler.
60 lazyBG.DecrementKeepaliveCount(); 60 lazyBG.DecrementKeepaliveCount();
61 } 61 }
62 } 62 }
63 }); 63 });
64 }); 64 });
OLDNEW
« no previous file with comments | « chrome/common/extensions/api/experimental.socket.idl ('k') | chrome/test/data/extensions/api_test/socket/api/background.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698