summaryrefslogtreecommitdiffstats
path: root/styleguide/c++/chromium-cpp
diff options
context:
space:
mode:
authorNico Weber <thakis@chromium.org>2014-09-23 13:21:59 -0700
committerNico Weber <thakis@chromium.org>2014-09-23 20:22:35 +0000
commit019d40fa03d9135e7db9d04c2c132af5a05e3dc2 (patch)
treeeaae8f198c907a40b0759f2142a77b6d5c6168af /styleguide/c++/chromium-cpp
parent2903f33784712aa48e18006a6bca60dd284afd97 (diff)
downloadchromium_src-019d40fa03d9135e7db9d04c2c132af5a05e3dc2.zip
chromium_src-019d40fa03d9135e7db9d04c2c132af5a05e3dc2.tar.gz
chromium_src-019d40fa03d9135e7db9d04c2c132af5a05e3dc2.tar.bz2
Add a document describing which C++11 features we allow.
For now, this allows only a very limited set. Also describes the process we're going to follow to allow more features. The idea is that we're gradually going to allow more features over time. Also included is the source of a tiny appengine app running at chromium-cpp.appspot.com that will show the contents of the document in this CL once it's submitted. BUG=360096 NOTRY=true R=ben@chromium.org, inferno@chromium.org, jamesr@chromium.org Review URL: https://codereview.chromium.org/589413003 Cr-Commit-Position: refs/heads/master@{#296214}
Diffstat (limited to 'styleguide/c++/chromium-cpp')
-rw-r--r--styleguide/c++/chromium-cpp/app.yaml17
-rw-r--r--styleguide/c++/chromium-cpp/favicon.icobin0 -> 8348 bytes
-rw-r--r--styleguide/c++/chromium-cpp/index.yaml12
-rwxr-xr-xstyleguide/c++/chromium-cpp/main.py49
4 files changed, 78 insertions, 0 deletions
diff --git a/styleguide/c++/chromium-cpp/app.yaml b/styleguide/c++/chromium-cpp/app.yaml
new file mode 100644
index 0000000..669b1a0
--- /dev/null
+++ b/styleguide/c++/chromium-cpp/app.yaml
@@ -0,0 +1,17 @@
+application: chromium-cpp
+version: 1
+runtime: python27
+api_version: 1
+threadsafe: yes
+
+handlers:
+- url: /favicon\.ico
+ static_files: favicon.ico
+ upload: favicon\.ico
+
+- url: .*
+ script: main.app
+
+libraries:
+- name: webapp2
+ version: "2.5.2"
diff --git a/styleguide/c++/chromium-cpp/favicon.ico b/styleguide/c++/chromium-cpp/favicon.ico
new file mode 100644
index 0000000..23c553a2
--- /dev/null
+++ b/styleguide/c++/chromium-cpp/favicon.ico
Binary files differ
diff --git a/styleguide/c++/chromium-cpp/index.yaml b/styleguide/c++/chromium-cpp/index.yaml
new file mode 100644
index 0000000..8e6046d
--- /dev/null
+++ b/styleguide/c++/chromium-cpp/index.yaml
@@ -0,0 +1,12 @@
+indexes:
+
+# AUTOGENERATED
+
+# This index.yaml is automatically updated whenever the dev_appserver
+# detects that a new type of query is run. If you want to manage the
+# index.yaml file manually, remove the above marker line (the line
+# saying "# AUTOGENERATED"). If you want to manage some indexes
+# manually, move them above the marker line. The index.yaml file is
+# automatically uploaded to the admin console when you next deploy
+# your application using appcfg.py.
+
diff --git a/styleguide/c++/chromium-cpp/main.py b/styleguide/c++/chromium-cpp/main.py
new file mode 100755
index 0000000..9017296
--- /dev/null
+++ b/styleguide/c++/chromium-cpp/main.py
@@ -0,0 +1,49 @@
+#!/usr/bin/env 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.
+from google.appengine.api import memcache
+from google.appengine.api import urlfetch
+import webapp2
+
+import base64
+
+"""A simple appengine app that hosts .html files in src/styleguide/c++ from
+chromium's git repo."""
+
+
+class MainHandler(webapp2.RequestHandler):
+ def get(self):
+ handler = GitilesMirrorHandler()
+ handler.initialize(self.request, self.response)
+ return handler.get("c++11.html")
+
+
+BASE = 'https://chromium.googlesource.com/chromium/src.git/' \
+ '+/master/styleguide/c++/%s?format=TEXT'
+class GitilesMirrorHandler(webapp2.RequestHandler):
+ def get(self, resource):
+ if '..' in resource: # No path traversal.
+ self.response.write(':-(')
+ return
+
+ url = BASE % resource
+ contents = memcache.get(url)
+ if not contents or self.request.get('bust'):
+ result = urlfetch.fetch(url)
+ if result.status_code != 200:
+ self.response.write('http error %d' % result.status_code)
+ return
+ contents = base64.b64decode(result.content)
+ memcache.set(url, contents, time=5*60) # seconds
+
+ if resource.endswith('.css'):
+ self.response.headers['Content-Type'] = 'text/css'
+ self.response.write(contents)
+
+
+app = webapp2.WSGIApplication([
+ ('/', MainHandler),
+ ('/(\S+\.(?:css|html))', GitilesMirrorHandler),
+], debug=True)