diff --git a/.gitmodules b/.gitmodules index e69de29b..40d0bb03 100644 --- a/.gitmodules +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "http2push"] + path = http2push + url = https://github.com/GoogleChrome/http2push-gae diff --git a/README.md b/README.md index e1485a12..86e8398a 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,10 @@ Chrome Platform Status [chromestatus.com](http://chromestatus.com/) +### Get the code + + git clone --recursive https://github.com/GoogleChrome/chromium-dashboard + ### How to run the local test server 1. Install the [Google App Engine SDK for Python](https://developers.google.com/appengine/downloads#Google_App_Engine_SDK_for_Python). diff --git a/app.yaml b/app.yaml index abd48f2a..10ed3479 100644 --- a/app.yaml +++ b/app.yaml @@ -1,5 +1,5 @@ application: cr-status -version: polymer10-samples +version: h2push runtime: python27 threadsafe: true api_version: 1 @@ -90,7 +90,9 @@ skip_files: - ^(.*/)?.*\.sql[3]$ - ^(.*/)?.*\.sh$ - ^(.*/)?.*\.scss$ -- ^static/js/polymer-all +- ^http2push/example +- ^http2push/site - ^(.*/)?node_modules +- ^(.*/)?tests - ^(.*/)?.[LICENSE|PATENTS|AUTHORS|CONTRIBUTING|COPYING](\.md)? - ^(.*/)?.*\.md$ diff --git a/http2push b/http2push new file mode 160000 index 00000000..9ab153d6 --- /dev/null +++ b/http2push @@ -0,0 +1 @@ +Subproject commit 9ab153d6833db5effb910ab0699a70ade4b84f78 diff --git a/package.json b/package.json index b83fdc36..c16a888b 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,7 @@ "grunt-contrib-compass": "^1.0.3", "grunt-minified": "0.0.6", "grunt-vulcanize": "^1.0.0", + "http2-push-manifest": "0.0.1", "load-grunt-tasks": "*" } } diff --git a/push_manifest.json b/push_manifest.json new file mode 100644 index 00000000..e484b6b9 --- /dev/null +++ b/push_manifest.json @@ -0,0 +1,9 @@ +{ + "/static/css/main.css": 1, + "/static/bower_components/webcomponentsjs/webcomponents-lite.min.js": 1, + "/static/css/features/features.css": 1, + "/static/elements/features-imports.vulcanize.html": 1, + "/static/elements/features-imports.vulcanize.js": 1, + "/features.json": 1, + "/omaha_data": 1 +} diff --git a/server.py b/server.py index bd0cc1c8..cbaeb879 100644 --- a/server.py +++ b/server.py @@ -28,6 +28,8 @@ import common import models import settings +import http2push.http2push as http2push + def normalized_name(val): return val.lower().replace(' ', '').replace('/', '') @@ -41,7 +43,7 @@ def first_of_milestone(feature_list, milestone, start=0): return -1 -class MainHandler(common.ContentHandler, common.JSONHandler): +class MainHandler(http2push.PushHandler, common.ContentHandler, common.JSONHandler): def __get_omaha_data(self): omaha_data = memcache.get('omaha_data') @@ -88,6 +90,7 @@ class MainHandler(common.ContentHandler, common.JSONHandler): self.__annotate_first_of_milestones(feature_list) return feature_list + @http2push.push() def get(self, path, feature_id=None): # Default to features page. # TODO: remove later when we want an index.html @@ -220,6 +223,8 @@ routes = [ ] app = webapp2.WSGIApplication(routes, debug=settings.DEBUG) + app.error_handlers[404] = common.handle_404 + if settings.PROD and not settings.DEBUG: app.error_handlers[500] = common.handle_500 diff --git a/templates/base.html b/templates/base.html index a6f7f1e0..3a7bad4a 100644 --- a/templates/base.html +++ b/templates/base.html @@ -51,7 +51,7 @@ want a jumpstart on download and the GFonts API is helllla cached. --> - + {% block css %}{% endblock %} diff --git a/templates/features.html b/templates/features.html index 41bf65f2..14993807 100644 --- a/templates/features.html +++ b/templates/features.html @@ -14,7 +14,7 @@ {% endblock %} {% block css %} - + {% endblock %} {% block subheader %} @@ -134,7 +134,7 @@ $('.legend').addEventListener('click', function(e) { // Fire of features.json XHR right away so data can populate faster. var featuresPromise = new Promise(function(resolve, reject) { - var url = location.hostname == 'localhost' ? '/static/js/mockdata.json' : + var url = location.hostname == 'localhost' ? 'https://www.chromestatus.com/features.json' : '/features.json'; var xhr = new XMLHttpRequest(); // Fill features list via AJAX. xhr.open('GET', url);