diff options
-rw-r--r-- | remoting/remoting.gyp | 6 | ||||
-rwxr-xr-x | remoting/tools/htmlcompile.py | 79 | ||||
-rwxr-xr-x | remoting/tools/jscompile.py | 49 | ||||
-rw-r--r-- | remoting/webapp/js_proto/remoting_proto.js | 21 | ||||
-rw-r--r-- | remoting/webapp/wcs_iq_client_proto.js | 29 |
5 files changed, 72 insertions, 112 deletions
diff --git a/remoting/remoting.gyp b/remoting/remoting.gyp index da3a51f..1ac3b84 100644 --- a/remoting/remoting.gyp +++ b/remoting/remoting.gyp @@ -218,15 +218,13 @@ 'inputs': [ '<@(remoting_webapp_js_files)', '<@(remoting_webapp_js_proto_files)', - # Include zip as input so that this action is run after the build. - '<(zip_path)', ], 'outputs': [ '<(success_stamp)', ], 'action': [ - 'python', 'tools/htmlcompile.py', - '<(output_dir)/main.html', + 'python', 'tools/jscompile.py', + '<@(remoting_webapp_js_files)', '<@(remoting_webapp_js_proto_files)', '--success-stamp', '<(success_stamp)' diff --git a/remoting/tools/htmlcompile.py b/remoting/tools/htmlcompile.py deleted file mode 100755 index 9fcb5a7..0000000 --- a/remoting/tools/htmlcompile.py +++ /dev/null @@ -1,79 +0,0 @@ -#!/usr/bin/python -# 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. - -import argparse -from HTMLParser import HTMLParser -import subprocess -import sys -import os - -DESCRIPTION = '''Extract the <script> tags from the specified html file and -run them through jscompile, along with any additional JS files specified.''' -FILES_HELP = '''A list of HTML or Javascript files. The Javascript files should -contain definitions of types or functions that are known to Chrome but not to -jscompile; they are added to the list of <script> tags found in each of the -HTML files.''' -STAMP_HELP = 'Timestamp file to update on success.' - -class ScriptTagParser(HTMLParser): - def __init__(self): - HTMLParser.__init__(self) - self.scripts = [] - - def handle_starttag(self, tag, attrs): - if tag == 'script': - for (name, value) in attrs: - if name == 'src': - self.scripts.append(value) - - -def parseHtml(html_file, js_proto_files): - src_dir = os.path.split(html_file)[0] - f = open(html_file, 'r') - html = f.read() - parser = ScriptTagParser(); - parser.feed(html) - scripts = [] - for script in parser.scripts: - # Ignore non-local scripts - if not '://' in script: - scripts.append(os.path.join(src_dir, script)) - - args = ['jscompile'] + scripts + js_proto_files - result = subprocess.call(args) - return result == 0 - - -def main(): - parser = argparse.ArgumentParser(description = DESCRIPTION) - parser.add_argument('files', nargs = '+', help = FILES_HELP) - parser.add_argument('--success-stamp', dest = 'success_stamp', - help = STAMP_HELP) - options = parser.parse_args() - - html = [] - js = [] - for file in options.files: - name, extension = os.path.splitext(file) - if extension == '.html': - html.append(file) - elif extension == '.js': - js.append(file) - else: - print >> sys.stderr, 'Unknown extension (' + extension + ') for ' + file - return 1 - - for html_file in html: - if not parseHtml(html_file, js): - return 1 - - if options.success_stamp: - with open(options.success_stamp, 'w'): - os.utime(options.success_stamp, None) - - return 0 - -if __name__ == '__main__': - sys.exit(main()) diff --git a/remoting/tools/jscompile.py b/remoting/tools/jscompile.py new file mode 100755 index 0000000..0f06964 --- /dev/null +++ b/remoting/tools/jscompile.py @@ -0,0 +1,49 @@ +#!/usr/bin/python +# 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. + +import argparse +import subprocess +import sys +import os + +DESCRIPTION = '''Run the given JavaScript files through jscompile.''' +FILES_HELP = '''A list of Javascript files. The Javascript files should include +files that contain definitions of types or functions that are known to Chrome +but not to jscompile.''' +STAMP_HELP = 'Timestamp file to update on success.' + +def checkJavascript(js_files): + args = ['jscompile'] + js_files + result = subprocess.call(args) + return result == 0 + + +def main(): + parser = argparse.ArgumentParser(description = DESCRIPTION) + parser.add_argument('files', nargs = '+', help = FILES_HELP) + parser.add_argument('--success-stamp', dest = 'success_stamp', + help = STAMP_HELP) + options = parser.parse_args() + + js = [] + for file in options.files: + name, extension = os.path.splitext(file) + if extension == '.js': + js.append(file) + else: + print >> sys.stderr, 'Unknown extension (' + extension + ') for ' + file + return 1 + + if not checkJavascript(js): + return 1 + + if options.success_stamp: + with open(options.success_stamp, 'w'): + os.utime(options.success_stamp, None) + + return 0 + +if __name__ == '__main__': + sys.exit(main()) diff --git a/remoting/webapp/js_proto/remoting_proto.js b/remoting/webapp/js_proto/remoting_proto.js index a1092c5..52252e1 100644 --- a/remoting/webapp/js_proto/remoting_proto.js +++ b/remoting/webapp/js_proto/remoting_proto.js @@ -163,3 +163,24 @@ remoting.ViewerPlugin = function() { }; /** @param {string} message The message to send to the host. */ remoting.ViewerPlugin.prototype.postMessage = function(message) {}; + + +/** @constructor + */ +remoting.WcsIqClient = function() {}; + +/** @param {function(Array.<string>): void} onMsg The function called when a + * message is received. + * @return {void} Nothing. */ +remoting.WcsIqClient.prototype.setOnMessage = function(onMsg) {}; + +/** @return {void} Nothing. */ +remoting.WcsIqClient.prototype.connectChannel = function() {}; + +/** @param {string} stanza An IQ stanza. + * @return {void} Nothing. */ +remoting.WcsIqClient.prototype.sendIq = function(stanza) {}; + +/** @param {string} token An OAuth2 access token. + * @return {void} Nothing. */ +remoting.WcsIqClient.prototype.updateAccessToken = function(token) {}; diff --git a/remoting/webapp/wcs_iq_client_proto.js b/remoting/webapp/wcs_iq_client_proto.js deleted file mode 100644 index 3a484260..0000000 --- a/remoting/webapp/wcs_iq_client_proto.js +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright (c) 2011 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. - -// This file contains type definitions for the WCS IQ client. It is used only -// with JSCompiler to verify the type-correctness of our code. - -/** @suppress {duplicate} */ -var remoting = remoting || {}; - -/** @constructor - */ -remoting.WcsIqClient = function() {}; - -/** @param {function(Array.<string>): void} onMsg The function called when a - * message is received. - * @return {void} Nothing. */ -remoting.WcsIqClient.prototype.setOnMessage = function(onMsg) {}; - -/** @return {void} Nothing. */ -remoting.WcsIqClient.prototype.connectChannel = function() {}; - -/** @param {string} stanza An IQ stanza. - * @return {void} Nothing. */ -remoting.WcsIqClient.prototype.sendIq = function(stanza) {}; - -/** @param {string} token An OAuth2 access token. - * @return {void} Nothing. */ -remoting.WcsIqClient.prototype.updateAccessToken = function(token) {}; |