summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--remoting/remoting.gyp6
-rwxr-xr-xremoting/tools/htmlcompile.py79
-rwxr-xr-xremoting/tools/jscompile.py49
-rw-r--r--remoting/webapp/js_proto/remoting_proto.js21
-rw-r--r--remoting/webapp/wcs_iq_client_proto.js29
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) {};