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

Unified Diff: extensions/renderer/resources/serial_custom_bindings.js

Issue 2410743002: Remove the mojo serial interfaces and related infrastructure. (Closed)
Patch Set: Created 4 years, 2 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 side-by-side diff with in-line comments
Download patch
Index: extensions/renderer/resources/serial_custom_bindings.js
diff --git a/extensions/renderer/resources/serial_custom_bindings.js b/extensions/renderer/resources/serial_custom_bindings.js
deleted file mode 100644
index d77631cf645349fbdf27e04bb95c235d56fb67cc..0000000000000000000000000000000000000000
--- a/extensions/renderer/resources/serial_custom_bindings.js
+++ /dev/null
@@ -1,117 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-/**
- * Custom bindings for the Serial API.
- *
- * The bindings are implemented by asynchronously delegating to the
- * serial_service module. The functions that apply to a particular connection
- * are delegated to the appropriate method on the Connection object specified by
- * the ID parameter.
- */
-
-var binding = require('binding').Binding.create('serial');
-var context = requireNative('v8_context');
-var eventBindings = require('event_bindings');
-var utils = require('utils');
-
-var serialServicePromise = function() {
- // getBackgroundPage is not available in unit tests so fall back to the
- // current page's serial_service module.
- if (!chrome.runtime.getBackgroundPage)
- return requireAsync('serial_service');
-
- // Load the serial_service module from the background page if one exists. This
- // is necessary for serial connections created in one window to be usable
- // after that window is closed. This is necessary because the Mojo async
- // waiter only functions while the v8 context remains.
- return utils.promise(chrome.runtime.getBackgroundPage).then(function(bgPage) {
- return context.GetModuleSystem(bgPage).requireAsync('serial_service');
- }).catch(function() {
- return requireAsync('serial_service');
- });
-}();
-
-function forwardToConnection(methodName) {
- return function(connectionId) {
- var args = $Array.slice(arguments, 1);
- return serialServicePromise.then(function(serialService) {
- return serialService.getConnection(connectionId);
- }).then(function(connection) {
- return $Function.apply(connection[methodName], connection, args);
- });
- };
-}
-
-function addEventListeners(connection, id) {
- connection.onData = function(data) {
- eventBindings.dispatchEvent(
- 'serial.onReceive', [{connectionId: id, data: data}]);
- };
- connection.onError = function(error) {
- eventBindings.dispatchEvent(
- 'serial.onReceiveError', [{connectionId: id, error: error}]);
- };
-}
-
-serialServicePromise.then(function(serialService) {
- return serialService.getConnections().then(function(connections) {
- for (var entry of connections) {
- var connection = entry[1];
- addEventListeners(connection, entry[0]);
- connection.resumeReceives();
- };
- });
-});
-
-binding.registerCustomHook(function(bindingsAPI) {
- var apiFunctions = bindingsAPI.apiFunctions;
- apiFunctions.setHandleRequestWithPromise('getDevices', function() {
- return serialServicePromise.then(function(serialService) {
- return serialService.getDevices();
- });
- });
-
- apiFunctions.setHandleRequestWithPromise('connect', function(path, options) {
- return serialServicePromise.then(function(serialService) {
- return serialService.createConnection(path, options);
- }).then(function(result) {
- addEventListeners(result.connection, result.info.connectionId);
- return result.info;
- }).catch (function(e) {
- throw new Error('Failed to connect to the port.');
- });
- });
-
- apiFunctions.setHandleRequestWithPromise(
- 'disconnect', forwardToConnection('close'));
- apiFunctions.setHandleRequestWithPromise(
- 'getInfo', forwardToConnection('getInfo'));
- apiFunctions.setHandleRequestWithPromise(
- 'update', forwardToConnection('setOptions'));
- apiFunctions.setHandleRequestWithPromise(
- 'getControlSignals', forwardToConnection('getControlSignals'));
- apiFunctions.setHandleRequestWithPromise(
- 'setControlSignals', forwardToConnection('setControlSignals'));
- apiFunctions.setHandleRequestWithPromise(
- 'flush', forwardToConnection('flush'));
- apiFunctions.setHandleRequestWithPromise(
- 'setPaused', forwardToConnection('setPaused'));
- apiFunctions.setHandleRequestWithPromise(
- 'send', forwardToConnection('send'));
-
- apiFunctions.setHandleRequestWithPromise('getConnections', function() {
- return serialServicePromise.then(function(serialService) {
- return serialService.getConnections();
- }).then(function(connections) {
- var promises = [];
- for (var connection of connections.values()) {
- promises.push(connection.getInfo());
- }
- return Promise.all(promises);
- });
- });
-});
-
-exports.$set('binding', binding.generate());
« no previous file with comments | « extensions/renderer/resources/extensions_renderer_resources.grd ('k') | extensions/renderer/resources/serial_service.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698