├── README.md ├── img ├── markdown-logo.png └── spinner.svg ├── js ├── base.js └── md5.js ├── samples ├── CAJCH0yBs5LxvYmgvbLHX7NgSptfBUF4TB7tw_OeuyFpTiiLbUg@mail.gmail.com.html ├── CAJCH0yDfeosp3XHzvGtC8yoWBknycs4d-z1AkuHmZ0TvbSQ-kQ@mail.gmail.com.html ├── EEF23BC3-7ADD-4A1F-839A-C354064839BE@lukasa.co.uk.html ├── index.html ├── message-proposal-1.html ├── message-proposal-collapsible.html ├── message-proposal-fields.html ├── message-proposal-gravatars.html ├── message-proposal-header.html ├── message-proposal-markdown.html ├── public-index.html ├── public-message.html └── thread.html ├── style ├── base.css ├── mainindex.css ├── member-mainindex.css ├── member-message.css ├── member-messagelist.css ├── message-proposal-1.css ├── message.css ├── messagelist.css ├── public-mainindex.css ├── public-message.css ├── public-messagelist.css ├── style-short.css ├── style-wrap.css ├── team-mainindex.css ├── team-message.css ├── team-messagelist.css └── thread.css └── w3c.json /README.md: -------------------------------------------------------------------------------- 1 | # Modern Mailing List Archives 2 | 3 | This repository is used to experiment with various approaches to 4 | modernizing W3C's mailing list archives. 5 | 6 | Goals include: 7 | 8 | - improve readability of default styles (incl. proportional fonts) 9 | - improve usability on mobile devices 10 | - provide a thread view that spans hypermail's period boundaries 11 | - provide a flattened view of message threads (all messages on one page) 12 | - preserve the stable URIs for messages in W3C's existing archives 13 | 14 | See [How to contribute](#how-to-contribute) below for how to 15 | contribute to this project. 16 | 17 | ## Background 18 | 19 | W3C uses 20 | [hypermail](https://github.com/hypermail-project/hypermail) to 21 | manage its archives, and while we could consider switching to 22 | something else, doing so would be quite disruptive so it seems 23 | unlikely to happen. (though that is [up for 24 | discussion](https://github.com/w3c/mailing-list-archives/issues/8)) 25 | 26 | We would like to improve the markup of our hypermail-generated 27 | archives, and possibly add a few extra features on top of that 28 | using javascript libraries that can evolve independently from 29 | hypermail's basic output. 30 | 31 | ## How to contribute 32 | 33 | ### Style/markup improvements 34 | 35 | We could use contributions in a number of areas: 36 | 37 | - [simple markup improvements to the current archives](../../issues/1): 38 | HTML5, mobile-friendly; think non-controversial changes. This is 39 | tracked/discussed as [issue #1](../../issues/1). Existing proposals: 40 | * [a mockup of an updated message 41 | page](https://w3c.github.io/mailing-list-archives/samples/message-proposal-1.html) 42 | from @[gosko](/gosko) 43 | * _your proposal goes here!_ 44 | - markup to display the structure of a message thread along with 45 | a message. This needs to work well with threads that contain 46 | anywhere from 3 messages to 200 messages or more. (but probably 47 | best to optimize for 5-20 or so) 48 | [@gosko](/gosko)'s 49 | [proposal](https://w3c.github.io/mailing-list-archives/samples/message-proposal-1.html) 50 | includes a sample of what this might look like. 51 | - radical proposals for better archive UIs: in addition to simple 52 | markup fixes we should consider what usability improvements we 53 | can make by adding more advanced features, even if they prove 54 | to be infeasible. Upvote/downvote features? Inline textareas 55 | for responses? Please [submit any ideas](../../issues/) you might have! 56 | 57 | ### Javascript code 58 | 59 | We could also use some javascript code contributions to provide more advanced 60 | functionality, such as: 61 | 62 | - retrieving, parsing and displaying [a message's thread 63 | structure](../../issues/2) in a useful way. 64 | - code to show or hide the thread structure along with a message. 65 | - code to switch to/from a flattened view of a message thread. 66 | - code to [intelligently prettify an email 67 | message](https://github.com/w3c/mailing-list-archives/issues/1#issuecomment-173371579) 68 | (switch to proportional font, judiciously hide quoted text, 69 | allow quoted text to be toggled visible/invisible) 70 | - code to allow for efficient navigation of message threads 71 | using simple keystrokes a la gmail. 72 | 73 | ### Discuss open issues 74 | 75 | W3C staff and collaborators are welcome to give their opinions on 76 | the [open issues within this repository](../../issues), including 77 | topics such as: 78 | 79 | - [should we continue to use 80 | hypermail?](https://github.com/w3c/mailing-list-archives/issues/8) 81 | - [what should archived messages look like by 82 | default?](https://github.com/w3c/mailing-list-archives/issues/1) 83 | - [what is the best way to integrate a flattened view of message 84 | threads?](https://github.com/w3c/mailing-list-archives/issues/9) 85 | - [should we add some kind of thread navigation 86 | widget?](https://github.com/w3c/mailing-list-archives/issues/2) 87 | 88 | Feel free to [raise new 89 | issues](https://github.com/w3c/mailing-list-archives/issues) 90 | related to our archives as well. 91 | 92 | See also [proposed improvements to the mailing lists archives (2002/2003)](https://www.w3.org/2002/03/archives-improvements/). 93 | -------------------------------------------------------------------------------- /img/markdown-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3c/mailing-list-archives/b09f8e4f1cf58ec35445256ded5cf168af686bca/img/markdown-logo.png -------------------------------------------------------------------------------- /img/spinner.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /js/base.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | /** 4 | * Try to find URLs and turn them into Markdown links. 5 | * 6 | * @param {String} the original text. 7 | * @returns {String} the same text, with URLs as links. 8 | */ 9 | 10 | const processOriginal = function(original) { 11 | 12 | const PATTERN_URL = /(\s)(https?:\/\/[^\s]+)(\s)/gi; 13 | 14 | const ADD_LINKS = function(foo, p1, p2, p3) { 15 | return p1 + '[`' + p2 + '`](' + p2 + ')' + p3; 16 | }; 17 | 18 | return original.replace(PATTERN_URL, ADD_LINKS); 19 | 20 | }; 21 | 22 | /** 23 | * Set up the page. 24 | * 25 | * (CryptoJS extends the global object with the property 'CryptoJS'.) 26 | * 27 | * @param {Function} $ the jQuery object. 28 | * @param {Function} markdownit the markdown-it object. 29 | */ 30 | 31 | const init = function($, markdownit) { 32 | 33 | $(document).ready(function() { 34 | 35 | const MDIT = markdownit(), 36 | MESSAGE = $('#body'), 37 | OPTIONS = $('form#options'), 38 | OPT_MD = $('input#markdown'), 39 | OPTS_THREAD = $(':radio[name="thread"]'), 40 | ORIGINAL = MESSAGE.text(), 41 | ENHANCED = MDIT.render(processOriginal(ORIGINAL)), 42 | MESSAGE_CONTAINER = $('div#message-container'), 43 | THREAD_CONTAINER = $('div#thread-container'), 44 | AUTHOR = $('meta[name="Author"]'), 45 | ROW_DETAILED = $('.headers .detailed'), 46 | ROW_GUTTER = $('#gutter'), 47 | GUTTER = $('a', ROW_GUTTER), 48 | GUTTER_GLYPH = $('#glyph'), 49 | TR_UP_FULL = '▲', 50 | TR_UP_EMPTY = '△', 51 | TR_DOWN_FULL = '▼', 52 | TR_DOWN_EMPTY = '▽', 53 | TITLE = $('h1'), 54 | BODY = $('#body'), 55 | SPINNER = $('#spinner'), 56 | TREE = $('.thread'), 57 | SELECTOR_LINKS = '.thread a'; 58 | 59 | var detailsVisible = true, 60 | cache = {}; 61 | 62 | const toggleThread = function(event) { 63 | const OPTION = event.target.value; 64 | if ('no' === OPTION) { 65 | MESSAGE_CONTAINER.removeClass('col-md-8').addClass('col-md-12'); 66 | THREAD_CONTAINER.removeClass('col-md-4').hide(); 67 | } else if ('flat' === OPTION) { 68 | } else { 69 | // ie, 'tree' === OPTION 70 | MESSAGE_CONTAINER.removeClass('col-md-12').addClass('col-md-8'); 71 | THREAD_CONTAINER.addClass('col-md-4').show(); 72 | } 73 | }; 74 | 75 | const toggleFormatting = function() { 76 | if (OPT_MD[0].checked) { 77 | MESSAGE.addClass('rich'); 78 | MESSAGE.html(ENHANCED); 79 | } else { 80 | MESSAGE.text(ORIGINAL); 81 | MESSAGE.removeClass('rich'); 82 | } 83 | }; 84 | 85 | const highlightGutter = function(event) { 86 | if (event && 'mouseenter' === event.type) { 87 | if (detailsVisible) { 88 | GUTTER_GLYPH.html(TR_UP_FULL); 89 | } else { 90 | GUTTER_GLYPH.html(TR_DOWN_FULL); 91 | } 92 | } else { 93 | // ie, 'mouseleave' === event.type 94 | if (detailsVisible) { 95 | GUTTER_GLYPH.html(TR_UP_EMPTY); 96 | } else { 97 | GUTTER_GLYPH.html(TR_DOWN_EMPTY); 98 | } 99 | } 100 | }; 101 | 102 | const processMessage = function(url) { 103 | return function(data) { 104 | const MESSAGE = $(data), 105 | NEW_TITLE = $('h1', MESSAGE).text(), 106 | NEW_BODY = $('#body', MESSAGE).text(), 107 | NEW_TREE = $('.thread', MESSAGE).html(), 108 | STATE = {title: NEW_TITLE, body: NEW_BODY, tree: NEW_TREE}; 109 | history.pushState(STATE, NEW_TITLE, url); 110 | TITLE.text(NEW_TITLE); 111 | BODY.text(NEW_BODY); 112 | TREE.html(NEW_TREE); 113 | $(SELECTOR_LINKS).click(navigate); 114 | }; 115 | }; 116 | 117 | const handleError = function(data) { 118 | window.alert('Error: could not load the message.'); 119 | }; 120 | 121 | const restore = function() { 122 | TITLE.removeClass('inactive'); 123 | BODY.removeClass('inactive'); 124 | SPINNER.hide(); 125 | TREE.show(); 126 | }; 127 | 128 | const retrieveWithCache = function(url, done, fail, always) { 129 | if (cache[url]) { 130 | done(cache[url]); 131 | always(); 132 | } else { 133 | setTimeout(function() { 134 | $.get(url).done(function(data) { 135 | cache[url] = data; 136 | done(data); 137 | }).fail(fail).always(always); 138 | }, 1500); 139 | } 140 | }; 141 | 142 | const toggleDetails = function() { 143 | detailsVisible = !detailsVisible; 144 | if (detailsVisible) { 145 | ROW_DETAILED.removeClass('hidden'); 146 | GUTTER_GLYPH.html(TR_UP_EMPTY); 147 | } else { 148 | ROW_DETAILED.addClass('hidden'); 149 | GUTTER_GLYPH.html(TR_DOWN_EMPTY); 150 | } 151 | return false; 152 | }; 153 | 154 | const navigate = function(event) { 155 | const SELF = $(event.target); 156 | if (!SELF.hasClass('current')) { 157 | const URL = SELF.data('id') + '.html'; 158 | TITLE.addClass('inactive'); 159 | BODY.addClass('inactive'); 160 | SPINNER.show(); 161 | TREE.hide(); 162 | retrieveWithCache(URL, processMessage(URL), handleError, restore); 163 | } 164 | return false; 165 | }; 166 | 167 | const back = function(event) { 168 | if (!event || !event.state) { 169 | window.alert('Error: could not navigate back to the previous message.'); 170 | } else { 171 | TITLE.text(event.state.title); 172 | BODY.text(event.state.body); 173 | TREE.html(event.state.tree); 174 | $(SELECTOR_LINKS).click(navigate); 175 | } 176 | }; 177 | 178 | const setUp = function() { 179 | const STATE = {title: TITLE.text(), body: BODY.text(), tree: TREE.html()}; 180 | history.replaceState(STATE, TITLE.text(), document.location.href); 181 | window.addEventListener('popstate', back); 182 | $(SELECTOR_LINKS).click(navigate); 183 | }; 184 | 185 | if (AUTHOR && AUTHOR.attr('Content')) { 186 | const PATTERN_EMAIL = /\b[a-z0-9\._%+\-]+@[a-z0-9\.\-]+\.[a-z]{2,}\b/i, // regex from http://www.regular-expressions.info/email.html 187 | ADDRESS = PATTERN_EMAIL.exec(AUTHOR.attr('Content')); 188 | if (ADDRESS) { 189 | const URL = 'https://www.gravatar.com/avatar/' + CryptoJS.MD5(ADDRESS[0].toLowerCase()) + '?d=404', 190 | GRAVATAR = $('#gravatar'); 191 | GRAVATAR.load(function() { 192 | GRAVATAR.addClass('active'); 193 | }); 194 | GRAVATAR.attr('src', URL); 195 | } 196 | } 197 | 198 | if (OPT_MD.length) toggleFormatting(); 199 | OPT_MD.change(toggleFormatting); 200 | OPTS_THREAD.change(toggleThread); 201 | GUTTER.hover(highlightGutter); 202 | GUTTER.click(toggleDetails); 203 | ROW_GUTTER.removeClass('hidden'); 204 | toggleDetails(); 205 | OPTIONS.addClass('active'); 206 | setUp(); 207 | 208 | }); 209 | 210 | }; 211 | 212 | // Set up RequireJS: 213 | requirejs.config({ 214 | paths: { 215 | jquery: 'https://www.w3.org/scripts/jquery/2.1/jquery.min', 216 | 'markdown-it': 'https://cdnjs.cloudflare.com/ajax/libs/markdown-it/6.0.0/markdown-it.min', 217 | 'cryptojs-md5': '../js/md5' // downloaded from https://code.google.com/archive/p/crypto-js/downloads 218 | } 219 | }); 220 | 221 | // Load dependencies asynchronously via RequireJS: 222 | requirejs(['jquery', 'markdown-it', 'cryptojs-md5'], init); 223 | -------------------------------------------------------------------------------- /js/md5.js: -------------------------------------------------------------------------------- 1 | /* 2 | CryptoJS v3.1.2 3 | code.google.com/p/crypto-js 4 | (c) 2009-2013 by Jeff Mott. All rights reserved. 5 | code.google.com/p/crypto-js/wiki/License 6 | */ 7 | var CryptoJS=CryptoJS||function(s,p){var m={},l=m.lib={},n=function(){},r=l.Base={extend:function(b){n.prototype=this;var h=new n;b&&h.mixIn(b);h.hasOwnProperty("init")||(h.init=function(){h.$super.init.apply(this,arguments)});h.init.prototype=h;h.$super=this;return h},create:function(){var b=this.extend();b.init.apply(b,arguments);return b},init:function(){},mixIn:function(b){for(var h in b)b.hasOwnProperty(h)&&(this[h]=b[h]);b.hasOwnProperty("toString")&&(this.toString=b.toString)},clone:function(){return this.init.prototype.extend(this)}}, 8 | q=l.WordArray=r.extend({init:function(b,h){b=this.words=b||[];this.sigBytes=h!=p?h:4*b.length},toString:function(b){return(b||t).stringify(this)},concat:function(b){var h=this.words,a=b.words,j=this.sigBytes;b=b.sigBytes;this.clamp();if(j%4)for(var g=0;g>>2]|=(a[g>>>2]>>>24-8*(g%4)&255)<<24-8*((j+g)%4);else if(65535>>2]=a[g>>>2];else h.push.apply(h,a);this.sigBytes+=b;return this},clamp:function(){var b=this.words,h=this.sigBytes;b[h>>>2]&=4294967295<< 9 | 32-8*(h%4);b.length=s.ceil(h/4)},clone:function(){var b=r.clone.call(this);b.words=this.words.slice(0);return b},random:function(b){for(var h=[],a=0;a>>2]>>>24-8*(j%4)&255;g.push((k>>>4).toString(16));g.push((k&15).toString(16))}return g.join("")},parse:function(b){for(var a=b.length,g=[],j=0;j>>3]|=parseInt(b.substr(j, 10 | 2),16)<<24-4*(j%8);return new q.init(g,a/2)}},a=v.Latin1={stringify:function(b){var a=b.words;b=b.sigBytes;for(var g=[],j=0;j>>2]>>>24-8*(j%4)&255));return g.join("")},parse:function(b){for(var a=b.length,g=[],j=0;j>>2]|=(b.charCodeAt(j)&255)<<24-8*(j%4);return new q.init(g,a)}},u=v.Utf8={stringify:function(b){try{return decodeURIComponent(escape(a.stringify(b)))}catch(g){throw Error("Malformed UTF-8 data");}},parse:function(b){return a.parse(unescape(encodeURIComponent(b)))}}, 11 | g=l.BufferedBlockAlgorithm=r.extend({reset:function(){this._data=new q.init;this._nDataBytes=0},_append:function(b){"string"==typeof b&&(b=u.parse(b));this._data.concat(b);this._nDataBytes+=b.sigBytes},_process:function(b){var a=this._data,g=a.words,j=a.sigBytes,k=this.blockSize,m=j/(4*k),m=b?s.ceil(m):s.max((m|0)-this._minBufferSize,0);b=m*k;j=s.min(4*b,j);if(b){for(var l=0;l>>32-j)+k}function m(a,k,b,h,l,j,m){a=a+(k&h|b&~h)+l+m;return(a<>>32-j)+k}function l(a,k,b,h,l,j,m){a=a+(k^b^h)+l+m;return(a<>>32-j)+k}function n(a,k,b,h,l,j,m){a=a+(b^(k|~h))+l+m;return(a<>>32-j)+k}for(var r=CryptoJS,q=r.lib,v=q.WordArray,t=q.Hasher,q=r.algo,a=[],u=0;64>u;u++)a[u]=4294967296*s.abs(s.sin(u+1))|0;q=q.MD5=t.extend({_doReset:function(){this._hash=new v.init([1732584193,4023233417,2562383102,271733878])}, 15 | _doProcessBlock:function(g,k){for(var b=0;16>b;b++){var h=k+b,w=g[h];g[h]=(w<<8|w>>>24)&16711935|(w<<24|w>>>8)&4278255360}var b=this._hash.words,h=g[k+0],w=g[k+1],j=g[k+2],q=g[k+3],r=g[k+4],s=g[k+5],t=g[k+6],u=g[k+7],v=g[k+8],x=g[k+9],y=g[k+10],z=g[k+11],A=g[k+12],B=g[k+13],C=g[k+14],D=g[k+15],c=b[0],d=b[1],e=b[2],f=b[3],c=p(c,d,e,f,h,7,a[0]),f=p(f,c,d,e,w,12,a[1]),e=p(e,f,c,d,j,17,a[2]),d=p(d,e,f,c,q,22,a[3]),c=p(c,d,e,f,r,7,a[4]),f=p(f,c,d,e,s,12,a[5]),e=p(e,f,c,d,t,17,a[6]),d=p(d,e,f,c,u,22,a[7]), 16 | c=p(c,d,e,f,v,7,a[8]),f=p(f,c,d,e,x,12,a[9]),e=p(e,f,c,d,y,17,a[10]),d=p(d,e,f,c,z,22,a[11]),c=p(c,d,e,f,A,7,a[12]),f=p(f,c,d,e,B,12,a[13]),e=p(e,f,c,d,C,17,a[14]),d=p(d,e,f,c,D,22,a[15]),c=m(c,d,e,f,w,5,a[16]),f=m(f,c,d,e,t,9,a[17]),e=m(e,f,c,d,z,14,a[18]),d=m(d,e,f,c,h,20,a[19]),c=m(c,d,e,f,s,5,a[20]),f=m(f,c,d,e,y,9,a[21]),e=m(e,f,c,d,D,14,a[22]),d=m(d,e,f,c,r,20,a[23]),c=m(c,d,e,f,x,5,a[24]),f=m(f,c,d,e,C,9,a[25]),e=m(e,f,c,d,q,14,a[26]),d=m(d,e,f,c,v,20,a[27]),c=m(c,d,e,f,B,5,a[28]),f=m(f,c, 17 | d,e,j,9,a[29]),e=m(e,f,c,d,u,14,a[30]),d=m(d,e,f,c,A,20,a[31]),c=l(c,d,e,f,s,4,a[32]),f=l(f,c,d,e,v,11,a[33]),e=l(e,f,c,d,z,16,a[34]),d=l(d,e,f,c,C,23,a[35]),c=l(c,d,e,f,w,4,a[36]),f=l(f,c,d,e,r,11,a[37]),e=l(e,f,c,d,u,16,a[38]),d=l(d,e,f,c,y,23,a[39]),c=l(c,d,e,f,B,4,a[40]),f=l(f,c,d,e,h,11,a[41]),e=l(e,f,c,d,q,16,a[42]),d=l(d,e,f,c,t,23,a[43]),c=l(c,d,e,f,x,4,a[44]),f=l(f,c,d,e,A,11,a[45]),e=l(e,f,c,d,D,16,a[46]),d=l(d,e,f,c,j,23,a[47]),c=n(c,d,e,f,h,6,a[48]),f=n(f,c,d,e,u,10,a[49]),e=n(e,f,c,d, 18 | C,15,a[50]),d=n(d,e,f,c,s,21,a[51]),c=n(c,d,e,f,A,6,a[52]),f=n(f,c,d,e,q,10,a[53]),e=n(e,f,c,d,y,15,a[54]),d=n(d,e,f,c,w,21,a[55]),c=n(c,d,e,f,v,6,a[56]),f=n(f,c,d,e,D,10,a[57]),e=n(e,f,c,d,t,15,a[58]),d=n(d,e,f,c,B,21,a[59]),c=n(c,d,e,f,r,6,a[60]),f=n(f,c,d,e,z,10,a[61]),e=n(e,f,c,d,j,15,a[62]),d=n(d,e,f,c,x,21,a[63]);b[0]=b[0]+c|0;b[1]=b[1]+d|0;b[2]=b[2]+e|0;b[3]=b[3]+f|0},_doFinalize:function(){var a=this._data,k=a.words,b=8*this._nDataBytes,h=8*a.sigBytes;k[h>>>5]|=128<<24-h%32;var l=s.floor(b/ 19 | 4294967296);k[(h+64>>>9<<4)+15]=(l<<8|l>>>24)&16711935|(l<<24|l>>>8)&4278255360;k[(h+64>>>9<<4)+14]=(b<<8|b>>>24)&16711935|(b<<24|b>>>8)&4278255360;a.sigBytes=4*(k.length+1);this._process();a=this._hash;k=a.words;for(b=0;4>b;b++)h=k[b],k[b]=(h<<8|h>>>24)&16711935|(h<<24|h>>>8)&4278255360;return a},clone:function(){var a=t.clone.call(this);a._hash=this._hash.clone();return a}});r.MD5=t._createHelper(q);r.HmacMD5=t._createHmacHelper(q)})(Math); 20 | -------------------------------------------------------------------------------- /samples/CAJCH0yBs5LxvYmgvbLHX7NgSptfBUF4TB7tw_OeuyFpTiiLbUg@mail.gmail.com.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Streams after receiving GOAWAY from Glen Knowles on 2015-11-15 (ietf-http-wg@w3.org from October to December 2015) 11 | 12 | 13 | 14 | 15 | 16 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 56 | 57 |
58 |
59 | 60 |
61 | 62 |

Streams after receiving GOAWAY

63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 |
75 |
76 | 77 | From: Glen Knowles <gknowles@ieee.org> 78 |
79 | Date: Sun, 15 Nov 2015 02:24:15 -0800
80 | To: HTTP Working Group <ietf-http-wg@w3.org> 81 |
82 |
83 |
I'm about to deliberately violate the letter of a MUST NOT because I 84 | believe it's overly strict. 85 | 86 | "Receivers of a GOAWAY frame MUST NOT open additional streams on the 87 | connection..." 88 | 89 | When my server wants to close a connection it sends a GOAWAY with last 90 | stream id set to a value somewhat higher than anything it has received. It 91 | then keeps the connection until the reported last id is reached or enough 92 | time goes by. 93 | 94 | When the client gets a GOAWAY it will immediately start establishing a new 95 | connection, continue issuing new requests up to the reported last id, and 96 | close the old connection when it either has a new connection or has used 97 | all the reported streams. 98 | 99 | The goal is to avoid suspending requests in a high volume server to server 100 | environment while waiting for new connections. I don't see how it conflicts 101 | with any conforming implementation, am I missing something? 102 | 103 | Thanks, 104 | Glen 105 |
106 | 107 |

108 | Received on Sunday, 15 November 2015 10:24:44 UTC
109 | Message-ID: <CAJCH0yBs5LxvYmgvbLHX7NgSptfBUF4TB7tw_OeuyFpTiiLbUg@mail.gmail.com> 110 |

111 | 112 |
113 | 114 | 115 |

Contemporary messages sorted by: 116 | date, 117 | thread, 118 | subject, 119 | author 120 |

121 | 122 |

123 | 124 |

125 | This archive was generated by 126 | hypermail 2.3.1: 127 | Sunday, 15 November 2015 10:24:47 UTC 128 |

129 | 130 |

How to use these archives

132 | 133 | 134 |
135 | 136 |
137 | 138 |
139 | 140 | Next message 141 | 142 | Reply 145 | 146 | New topic 147 | 148 |
149 | 150 |

 

151 | 152 |

Flatten

153 | 154 |

This thread:

155 | 156 | Loading... 157 | 158 |
159 | 171 |
172 | 173 |
174 | 175 |
176 | 177 |
178 | 179 |
180 |
181 | 182 |
183 | 184 |
185 | 186 |

This page is an early draft of what an updated message page might look 187 | like in a restyling 188 | of W3C's mailing list archives.

189 | 190 |

See the 192 | original message in our archives for comparison.

193 | 194 |

This is not a complete proposal, only a quick conversion to HTML5 and 195 | bootstrap, with a thread pane and search box added. 196 |

197 | 198 |

Switch background colors: 199 | public, 200 | member, 201 | team. 202 | (requires js) 203 |

204 | 205 |
206 | 207 | 208 | 209 | 210 | 211 | -------------------------------------------------------------------------------- /samples/CAJCH0yDfeosp3XHzvGtC8yoWBknycs4d-z1AkuHmZ0TvbSQ-kQ@mail.gmail.com.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Re: Streams after receiving GOAWAY from Glen Knowles on 2015-11-15 (ietf-http-wg@w3.org from October to December 2015) 11 | 12 | 13 | 14 | 15 | 16 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 56 | 57 |
58 |
59 | 60 |
61 | 62 |

Re: Streams after receiving GOAWAY

63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 |
75 |
76 | 77 | From: Glen Knowles <gknowles@ieee.org> 78 |
79 | Date: Sun, 15 Nov 2015 10:48:32 -0800
80 | To: HTTP Working Group <ietf-http-wg@w3.org> 81 |
82 |
83 |
On Sun, Nov 15, 2015 at 2:52 AM, Cory Benfield <cory@lukasa.co.uk> wrote: 84 | 85 | > 86 | > GOAWAY is not intended as a mechanism for saying “I will process no more 87 | > than n further streams”. 88 | 89 | 90 | But that is exactly a stated purpose of GOAWAY(noerror): 91 | "To deal with this case, the GOAWAY contains the stream identifier of the 92 | last peer-initiated stream that was or might be processed on the sending 93 | endpoint in this connection." 94 | 95 | 96 | > If it were, it would be totally acceptable to open all connections with 97 | > the preamble, followed immediately by GOAWAY(last_stream_id=100). This is 98 | > not the intended use of GOAWAY. 99 | > 100 | > Reinterpreting last_stream_id to mean "last I will send" instead of "last 101 | of your streams I may process" would be clearly wrong, and is not what I'm 102 | doing. I'm merely giving the listener the option to widen the existing 103 | "inherent race condition between an endpoint starting new streams and the 104 | remote sending a GOAWAY frame." 105 | 106 | If your server sends a GOAWAY(no error) with the last stream id set to the 107 | last one it's processed then my client will not open any more streams on 108 | that connection. It will only continue to open additional streams if the 109 | last stream you report is "in the future". I see how this could be a 110 | problem if the server doesn't set the last stream id according to the spec, 111 | but otherwise? 112 |
113 | 114 |

115 | Received on Sunday, 15 November 2015 10:24:44 UTC
116 | Message-ID: <CAJCH0yBs5LxvYmgvbLHX7NgSptfBUF4TB7tw_OeuyFpTiiLbUg@mail.gmail.com> 117 |

118 | 119 |
120 | 121 | 122 |

Contemporary messages sorted by: 123 | date, 124 | thread, 125 | subject, 126 | author 127 |

128 | 129 |

130 | 131 |

132 | This archive was generated by 133 | hypermail 2.3.1: 134 | Sunday, 15 November 2015 10:24:47 UTC 135 |

136 | 137 |

How to use these archives

139 | 140 | 141 |
142 | 143 |
144 | 145 |
146 | 147 | Next message 148 | 149 | Reply 152 | 153 | New topic 154 | 155 |
156 | 157 |

 

158 | 159 |

Flatten

160 | 161 |

This thread:

162 | 163 | Loading... 164 | 165 |
166 | 178 |
179 | 180 |
181 | 182 |
183 | 184 |
185 | 186 |
187 |
188 | 189 |
190 | 191 |
192 | 193 |

This page is an early draft of what an updated message page might look 194 | like in a restyling 195 | of W3C's mailing list archives.

196 | 197 |

See the 199 | original message in our archives for comparison.

200 | 201 |

This is not a complete proposal, only a quick conversion to HTML5 and 202 | bootstrap, with a thread pane and search box added. 203 |

204 | 205 |

Switch background colors: 206 | public, 207 | member, 208 | team. 209 | (requires js) 210 |

211 | 212 |
213 | 214 | 215 | 216 | 217 | 218 | -------------------------------------------------------------------------------- /samples/EEF23BC3-7ADD-4A1F-839A-C354064839BE@lukasa.co.uk.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Re: Streams after receiving GOAWAY from Cory Benfield on 2015-11-15 (ietf-http-wg@w3.org from October to December 2015) 11 | 12 | 13 | 14 | 15 | 16 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 56 | 57 |
58 |
59 | 60 |
61 | 62 |

Re: Streams after receiving GOAWAY

63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 |
75 |
76 | 77 | From: Cory Benfield <cory@lukasa.co.uk> 78 |
79 | Date: Sun, 15 Nov 2015 10:52:03 +0000
80 | To: HTTP Working Group <ietf-http-wg@w3.org> 81 |
82 |
83 |
> On 15 Nov 2015, at 10:24, Glen Knowles <gknowles@ieee.org> wrote: 84 | > 85 | > I'm about to deliberately violate the letter of a MUST NOT because I believe it's overly strict. 86 | > 87 | > "Receivers of a GOAWAY frame MUST NOT open additional streams on the connection..." 88 | > 89 | > When the client gets a GOAWAY it will immediately start establishing a new connection, continue issuing new requests up to the reported last id, and close the old connection when it either has a new connection or has used all the reported streams. 90 | > 91 | > The goal is to avoid suspending requests in a high volume server to server environment while waiting for new connections. I don't see how it conflicts with any conforming implementation, am I missing something? 92 | 93 | 94 | The client conflicts with *any* conforming implementation because it ignores the section of RFC 7540 that you just quoted. You’re not just violating the letter of that MUST NOT, you’re violating the spirit of it too, which is indicated in the first paragraph of that section of the spec: 95 | 96 | > GOAWAY allows an endpoint to gracefully stop accepting new streams while still finishing processing of previously established streams. 97 | 98 | GOAWAY is not intended as a mechanism for saying “I will process no more than n further streams”. If it were, it would be totally acceptable to open all connections with the preamble, followed immediately by GOAWAY(last_stream_id=100). This is not the intended use of GOAWAY. 99 | 100 | Certainly my Python implementation would reject your client’s traffic, and in this regard I believe it is conformant. 101 | 102 | Cory 103 |
104 | 105 |

106 | Received on Sunday, 15 November 2015 10:24:44 UTC
107 | Message-ID: <CAJCH0yBs5LxvYmgvbLHX7NgSptfBUF4TB7tw_OeuyFpTiiLbUg@mail.gmail.com> 108 |

109 | 110 |
111 | 112 | 113 |

Contemporary messages sorted by: 114 | date, 115 | thread, 116 | subject, 117 | author 118 |

119 | 120 |

121 | 122 |

123 | This archive was generated by 124 | hypermail 2.3.1: 125 | Sunday, 15 November 2015 10:24:47 UTC 126 |

127 | 128 |

How to use these archives

130 | 131 | 132 |
133 | 134 |
135 | 136 |
137 | 138 | Next message 139 | 140 | Reply 143 | 144 | New topic 145 | 146 |
147 | 148 |

 

149 | 150 |

Flatten

151 | 152 |

This thread:

153 | 154 | Loading... 155 | 156 |
157 | 169 |
170 | 171 |
172 | 173 |
174 | 175 |
176 | 177 |
178 |
179 | 180 |
181 | 182 |
183 | 184 |

This page is an early draft of what an updated message page might look 185 | like in a restyling 186 | of W3C's mailing list archives.

187 | 188 |

See the 190 | original message in our archives for comparison.

191 | 192 |

This is not a complete proposal, only a quick conversion to HTML5 and 193 | bootstrap, with a thread pane and search box added. 194 |

195 | 196 |

Switch background colors: 197 | public, 198 | member, 199 | team. 200 | (requires js) 201 |

202 | 203 |
204 | 205 | 206 | 207 | 208 | 209 | -------------------------------------------------------------------------------- /samples/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Mail archive samples 8 | 9 | 10 | 11 | 12 |
13 |

Mail archive samples

14 |
15 | 16 |
17 |

Pages taken from the current version of the archives

18 | 24 |

Proposals

25 | 52 |
53 | 54 | 57 | 58 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /samples/message-proposal-1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Streams after receiving GOAWAY from Glen Knowles on 2015-11-15 (ietf-http-wg@w3.org from October to December 2015) 11 | 12 | 13 | 14 | 15 | 16 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 57 | 58 |
59 |
60 | 61 |
62 | 63 |

Streams after receiving GOAWAY

64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 |
76 |
77 | 78 | From: Glen Knowles <gknowles@ieee.org> 79 |
80 | Date: Sun, 15 Nov 2015 02:24:15 -0800
81 | To: HTTP Working Group <ietf-http-wg@w3.org> 82 |
83 |
84 |
I'm about to deliberately violate the letter of a MUST NOT because I 85 | believe it's overly strict. 86 | 87 | "Receivers of a GOAWAY frame MUST NOT open additional streams on the 88 | connection..." 89 | 90 | When my server wants to close a connection it sends a GOAWAY with last 91 | stream id set to a value somewhat higher than anything it has received. It 92 | then keeps the connection until the reported last id is reached or enough 93 | time goes by. 94 | 95 | When the client gets a GOAWAY it will immediately start establishing a new 96 | connection, continue issuing new requests up to the reported last id, and 97 | close the old connection when it either has a new connection or has used 98 | all the reported streams. 99 | 100 | The goal is to avoid suspending requests in a high volume server to server 101 | environment while waiting for new connections. I don't see how it conflicts 102 | with any conforming implementation, am I missing something? 103 | 104 | Thanks, 105 | Glen 106 |
107 | 108 |

109 | Received on Sunday, 15 November 2015 10:24:44 UTC
110 | Message-ID: <CAJCH0yBs5LxvYmgvbLHX7NgSptfBUF4TB7tw_OeuyFpTiiLbUg@mail.gmail.com> 111 |

112 | 113 |
114 | 115 | 116 |

Contemporary messages sorted by: 117 | date, 118 | thread, 119 | subject, 120 | author 121 |

122 | 123 |

124 | 125 |

126 | This archive was generated by 127 | hypermail 2.3.1: 128 | Sunday, 15 November 2015 10:24:47 UTC 129 |

130 | 131 |

How to use these archives

133 | 134 | 135 |
136 | 137 |
138 | 139 |
140 | 141 | Next message 142 | 143 | Reply 146 | 147 | New topic 148 | 149 |
150 | 151 |

 

152 | 153 |

Flatten

154 | 155 |

This thread:

156 | 157 |
158 | 193 |
194 | 195 |
196 | 197 |
198 | 199 |
200 | 201 |
202 |
203 | 204 |
205 | 206 |
207 | 208 |

This page is an early draft of what an updated message page might look 209 | like in a restyling 210 | of W3C's mailing list archives.

211 | 212 |

See the 214 | original message in our archives for comparison.

215 | 216 |

This is not a complete proposal, only a quick conversion to HTML5 and 217 | bootstrap, with a thread pane and search box added. 218 |

219 | 220 |

Switch background colors: 221 | public, 222 | member, 223 | team. 224 | (requires js) 225 |

226 | 227 |
228 | 229 | 230 | 231 | 232 | -------------------------------------------------------------------------------- /samples/message-proposal-collapsible.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Streams after receiving GOAWAY from Glen Knowles on 2015-11-15 (ietf-http-wg@w3.org from October to December 2015) 11 | 12 | 13 | 14 | 15 | 16 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 56 | 57 |
58 | 59 |
60 | 61 |
62 | 63 |

Streams after receiving GOAWAY

64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 |
77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 |
85 |
86 | 87 | From: Glen Knowles <gknowles@ieee.org> 88 |
89 | Date: Sun, 15 Nov 2015 02:24:15 -0800
90 | To: HTTP Working Group <ietf-http-wg@w3.org> 91 |
92 |
93 | 94 |
95 | 96 |
97 | 98 |
99 | 100 | Next message 101 | 102 | Reply 105 | 106 | New topic 107 | 108 |
109 | 110 |
111 | 112 |
113 | 114 |
115 | 116 |
117 | 118 |
119 |
I'm about to deliberately violate the letter of a MUST NOT because I 120 | believe it's overly strict. 121 | 122 | "Receivers of a GOAWAY frame MUST NOT open additional streams on the 123 | connection..." 124 | 125 | When my server wants to close a connection it sends a GOAWAY with last 126 | stream id set to a value somewhat higher than anything it has received. It 127 | then keeps the connection until the reported last id is reached or enough 128 | time goes by. 129 | 130 | When the client gets a GOAWAY it will immediately start establishing a new 131 | connection, continue issuing new requests up to the reported last id, and 132 | close the old connection when it either has a new connection or has used 133 | all the reported streams. 134 | 135 | The goal is to avoid suspending requests in a high volume server to server 136 | environment while waiting for new connections. I don't see how it conflicts 137 | with any conforming implementation, am I missing something? 138 | 139 | Thanks, 140 | Glen 141 |
142 | 143 |

144 | Received on Sunday, 15 November 2015 10:24:44 UTC
145 | Message-ID: <CAJCH0yBs5LxvYmgvbLHX7NgSptfBUF4TB7tw_OeuyFpTiiLbUg@mail.gmail.com> 146 |

147 | 148 |
149 | 150 | 151 |

Contemporary messages sorted by: 152 | date, 153 | thread, 154 | subject, 155 | author 156 |

157 | 158 |

159 | 160 |

161 | This archive was generated by 162 | hypermail 2.3.1: 163 | Sunday, 15 November 2015 10:24:47 UTC 164 |

165 | 166 |

How to use these archives

168 | 169 |
170 | 171 |
172 | 173 |
174 | 209 |
210 | 211 |
212 | 213 |
214 | 215 |
216 | 217 |
218 |
219 | 220 |
221 | 222 |
223 | 224 |

This page is an early draft of what an updated message page might look 225 | like in a restyling 226 | of W3C's mailing list archives.

227 | 228 |

See the 230 | original message in our archives for comparison.

231 | 232 |

This is not a complete proposal, only a quick conversion to HTML5 and 233 | bootstrap, with a thread pane and search box added. 234 |

235 | 236 |

Switch background colors: 237 | public, 238 | member, 239 | team. 240 | (requires js) 241 |

242 | 243 |
244 | 245 | 246 | 247 | 248 | 249 | -------------------------------------------------------------------------------- /samples/message-proposal-fields.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Streams after receiving GOAWAY from Glen Knowles on 2015-11-15 (ietf-http-wg@w3.org from October to December 2015) 11 | 12 | 13 | 14 | 15 | 16 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 56 | 57 |
58 |
59 | 60 |
61 | 62 |

Streams after receiving GOAWAY

63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 |
75 |
76 | 85 |
86 |
Date:
87 |
88 | Sun, 15 Nov 2015 02:24:15 -0800 89 |
90 |
91 | 100 |
101 |
Received:
102 |
103 | Sunday, 15 November 2015 10:24:44 UTC 104 |
105 |
106 |
107 |
Message ID:
108 |
109 | <CAJCH0yBs5LxvYmgvbLHX7NgSptfBUF4TB7tw_OeuyFpTiiLbUg@mail.gmail.com> 110 |
111 |
112 | 119 |
120 |
I'm about to deliberately violate the letter of a MUST NOT because I 121 | believe it's overly strict. 122 | 123 | "Receivers of a GOAWAY frame MUST NOT open additional streams on the 124 | connection..." 125 | 126 | When my server wants to close a connection it sends a GOAWAY with last 127 | stream id set to a value somewhat higher than anything it has received. It 128 | then keeps the connection until the reported last id is reached or enough 129 | time goes by. 130 | 131 | When the client gets a GOAWAY it will immediately start establishing a new 132 | connection, continue issuing new requests up to the reported last id, and 133 | close the old connection when it either has a new connection or has used 134 | all the reported streams. 135 | 136 | The goal is to avoid suspending requests in a high volume server to server 137 | environment while waiting for new connections. I don't see how it conflicts 138 | with any conforming implementation, am I missing something? 139 | 140 | Thanks, 141 | Glen 142 |
143 | 144 |
145 | 146 | 147 |

Contemporary messages sorted by: 148 | date, 149 | thread, 150 | subject, 151 | author 152 |

153 | 154 |

155 | 156 |

157 | This archive was generated by 158 | hypermail 2.3.1: 159 | Sunday, 15 November 2015 10:24:47 UTC 160 |

161 | 162 |

How to use these archives

164 | 165 | 166 |
167 | 168 |
169 | 170 |
171 | 172 | Next message 173 | 174 | Reply 177 | 178 | New topic 179 | 180 |
181 | 182 |

 

183 | 184 |

Flatten

185 | 186 |

This thread:

187 | 188 |
189 | 224 |
225 | 226 |
227 | 228 |
229 | 230 |
231 | 232 |
233 |
234 | 235 |
236 | 237 |
238 | 239 |

This page is an early draft of what an updated message page might look 240 | like in a restyling 241 | of W3C's mailing list archives.

242 | 243 |

See the 245 | original message in our archives for comparison.

246 | 247 |

This is not a complete proposal, only a quick conversion to HTML5 and 248 | bootstrap, with a thread pane and search box added. 249 |

250 | 251 |

Switch background colors: 252 | public, 253 | member, 254 | team. 255 | (requires js) 256 |

257 | 258 |
259 | 260 | 261 | 262 | 263 | 264 | -------------------------------------------------------------------------------- /samples/message-proposal-gravatars.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Streams after receiving GOAWAY from Antonio Olmo Titos on 2015-11-15 (ietf-http-wg@w3.org from October to December 2015) 11 | 12 | 13 | 14 | 15 | 16 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 56 | 57 |
58 |
59 | 60 |
61 | 62 | Gravatar of the sender 63 |

Streams after receiving GOAWAY

64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 |
76 |
77 | 78 | From: Antonio Olmo Titos <antonio@w3.org> 79 |
80 | Date: Sun, 15 Nov 2015 02:24:15 -0800
81 | To: HTTP Working Group <ietf-http-wg@w3.org> 82 |
83 |
84 |
I'm about to deliberately violate the letter of a MUST NOT because I 85 | believe it's overly strict. 86 | 87 | "Receivers of a GOAWAY frame MUST NOT open additional streams on the 88 | connection..." 89 | 90 | When my server wants to close a connection it sends a GOAWAY with last 91 | stream id set to a value somewhat higher than anything it has received. It 92 | then keeps the connection until the reported last id is reached or enough 93 | time goes by. 94 | 95 | When the client gets a GOAWAY it will immediately start establishing a new 96 | connection, continue issuing new requests up to the reported last id, and 97 | close the old connection when it either has a new connection or has used 98 | all the reported streams. 99 | 100 | The goal is to avoid suspending requests in a high volume server to server 101 | environment while waiting for new connections. I don't see how it conflicts 102 | with any conforming implementation, am I missing something? 103 | 104 | Thanks, 105 | Antonio 106 |
107 | 108 |

109 | Received on Sunday, 15 November 2015 10:24:44 UTC
110 | Message-ID: <CAJCH0yBs5LxvYmgvbLHX7NgSptfBUF4TB7tw_OeuyFpTiiLbUg@mail.gmail.com> 111 |

112 | 113 |
114 | 115 | 116 |

Contemporary messages sorted by: 117 | date, 118 | thread, 119 | subject, 120 | author 121 |

122 | 123 |

124 | 125 |

126 | This archive was generated by 127 | hypermail 2.3.1: 128 | Sunday, 15 November 2015 10:24:47 UTC 129 |

130 | 131 |

How to use these archives

133 | 134 | 135 |
136 | 137 |
138 | 139 |
140 | 141 | Next message 142 | 143 | Reply 146 | 147 | New topic 148 | 149 |
150 | 151 |

 

152 | 153 |

Flatten

154 | 155 |

This thread:

156 | 157 |
158 | 193 |
194 | 195 |
196 | 197 |
198 | 199 |
200 | 201 |
202 |
203 | 204 |
205 | 206 |
207 | 208 |

This page is an early draft of what an updated message page might look 209 | like in a restyling 210 | of W3C's mailing list archives.

211 | 212 |

See the 214 | original message in our archives for comparison.

215 | 216 |

This is not a complete proposal, only a quick conversion to HTML5 and 217 | bootstrap, with a thread pane and search box added. 218 |

219 | 220 |

Switch background colors: 221 | public, 222 | member, 223 | team. 224 | (requires js) 225 |

226 | 227 |
228 | 229 | 230 | 231 | 232 | 233 | -------------------------------------------------------------------------------- /samples/message-proposal-header.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Streams after receiving GOAWAY from Glen Knowles on 2015-11-15 (ietf-http-wg@w3.org from October to December 2015) 11 | 12 | 13 | 14 | 15 | 16 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 56 | 57 |
58 |
59 | 60 |
61 | 62 |

Streams after receiving GOAWAY

63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 |
75 |
76 | 77 | From: Glen Knowles <gknowles@ieee.org> 78 |
79 | Date: Sun, 15 Nov 2015 02:24:15 -0800
80 | To: HTTP Working Group <ietf-http-wg@w3.org> 81 |
82 |
83 |
I'm about to deliberately violate the letter of a MUST NOT because I 84 | believe it's overly strict. 85 | 86 | "Receivers of a GOAWAY frame MUST NOT open additional streams on the 87 | connection..." 88 | 89 | When my server wants to close a connection it sends a GOAWAY with last 90 | stream id set to a value somewhat higher than anything it has received. It 91 | then keeps the connection until the reported last id is reached or enough 92 | time goes by. 93 | 94 | When the client gets a GOAWAY it will immediately start establishing a new 95 | connection, continue issuing new requests up to the reported last id, and 96 | close the old connection when it either has a new connection or has used 97 | all the reported streams. 98 | 99 | The goal is to avoid suspending requests in a high volume server to server 100 | environment while waiting for new connections. I don't see how it conflicts 101 | with any conforming implementation, am I missing something? 102 | 103 | Thanks, 104 | Glen 105 |
106 | 107 |

108 | Received on Sunday, 15 November 2015 10:24:44 UTC
109 | Message-ID: <CAJCH0yBs5LxvYmgvbLHX7NgSptfBUF4TB7tw_OeuyFpTiiLbUg@mail.gmail.com> 110 |

111 | 112 |
113 | 114 | 115 |

Contemporary messages sorted by: 116 | date, 117 | thread, 118 | subject, 119 | author 120 |

121 | 122 |

123 | 124 |

125 | This archive was generated by 126 | hypermail 2.3.1: 127 | Sunday, 15 November 2015 10:24:47 UTC 128 |

129 | 130 |

How to use these archives

132 | 133 | 134 |
135 | 136 |
137 | 138 |
139 | 140 | Next message 141 | 142 | Reply 145 | 146 | New topic 147 | 148 |
149 | 150 |

 

151 | 152 |

Flatten

153 | 154 |

This thread:

155 | 156 |
157 | 192 |
193 | 194 |
195 | 196 |
197 | 198 |
199 | 200 |
201 |
202 | 203 |
204 | 205 |
206 | 207 |

This page is an early draft of what an updated message page might look 208 | like in a restyling 209 | of W3C's mailing list archives.

210 | 211 |

See the 213 | original message in our archives for comparison.

214 | 215 |

This is not a complete proposal, only a quick conversion to HTML5 and 216 | bootstrap, with a thread pane and search box added. 217 |

218 | 219 |

Switch background colors: 220 | public, 221 | member, 222 | team. 223 | (requires js) 224 |

225 | 226 |
227 | 228 | 229 | 230 | 231 | -------------------------------------------------------------------------------- /samples/message-proposal-markdown.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | Streams after receiving GOAWAY from Glen Knowles on 2015-11-15 (ietf-http-wg@w3.org from October to December 2015) 11 | 12 | 13 | 14 | 15 | 16 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 56 | 57 |
58 |
59 | 60 |
61 | 62 |

Streams after receiving GOAWAY

63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 |
75 |
76 | 77 | 80 |
81 |
82 | 83 | From: Glen Knowles <gknowles@ieee.org> 84 |
85 | Date: Sun, 15 Nov 2015 02:24:15 -0800
86 | To: HTTP Working Group <ietf-http-wg@w3.org> 87 |
88 |
89 |
I'm about to deliberately violate the letter of a MUST NOT because I 90 | believe it's ~~overly~~ quite strict. 91 | 92 | > "Receivers of a GOAWAY frame MUST NOT open additional streams on the 93 | > connection..." 94 | 95 | When my server wants to close a connection it sends a GOAWAY with last 96 | stream id set to a value _somewhat higher than anything it has received_. It 97 | then keeps the connection until the reported last id is reached or enough 98 | time goes by [1]. For reference: http://example.com/foo 99 | 100 | $ ls 101 | a.txt foo.md higher-number.docx 102 | $ rm foo.md 103 | 104 | Also: 105 | ```javascript 106 | container.removeClass('rich').addClass('plain'); 107 | ``` 108 | 109 | When the client gets a GOAWAY **it will immediately start establishing a new 110 | connection**, continue issuing new requests up to the reported last id, and 111 | close the old connection when it either has a new connection or has used 112 | all the reported streams[1][2]. 113 | 114 | The goal is: 115 | * to avoid suspending requests in a high volume server to server environment 116 | * while waiting for new connections. 117 | 118 | I don't see how it conflicts with any conforming implementation, am I missing something? 119 | 120 | Thanks, 121 | Glen 122 | 123 | [1] https://w3.org/foo/bar.html 124 | [2] http://WWW.archive.org/ 125 |
126 | 127 |

128 | Received on Sunday, 15 November 2015 10:24:44 UTC
129 | Message-ID: <CAJCH0yBs5LxvYmgvbLHX7NgSptfBUF4TB7tw_OeuyFpTiiLbUg@mail.gmail.com> 130 |

131 | 132 |
133 | 134 | 135 |

Contemporary messages sorted by: 136 | date, 137 | thread, 138 | subject, 139 | author 140 |

141 | 142 |

143 | 144 |

145 | This archive was generated by 146 | hypermail 2.3.1: 147 | Sunday, 15 November 2015 10:24:47 UTC 148 |

149 | 150 |

How to use these archives

152 | 153 | 154 |
155 | 156 |
157 | 158 |
159 | 160 | Next message 161 | 162 | Reply 165 | 166 | New topic 167 | 168 |
169 | 170 |

 

171 | 172 |

Flatten

173 | 174 |

This thread:

175 | 176 |
177 | 212 |
213 | 214 |
215 | 216 |
217 | 218 |
219 | 220 |
221 |
222 | 223 |
224 | 225 |
226 | 227 |

This page is an early draft of what an updated message page might look 228 | like in a restyling 229 | of W3C's mailing list archives.

230 | 231 |

See the 233 | original message in our archives for comparison.

234 | 235 |

This is not a complete proposal, only a quick conversion to HTML5 and 236 | bootstrap, with a thread pane and search box added. 237 |

238 | 239 |

Switch background colors: 240 | public, 241 | member, 242 | team. 243 | (requires js) 244 |

245 | 246 |
247 | 248 | 249 | 250 | 251 | 252 | -------------------------------------------------------------------------------- /samples/public-index.html: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | public-html-mail@w3.org from May 2007: by date 9 | 10 | 11 | 12 | 14 | 15 | 16 | 17 | 18 |
19 | 20 |

21 | W3C home > 22 | Mailing 23 | lists > 24 | Public > 26 | public-html-mail@w3.org > 27 | May 2007 28 |

29 |
30 |

public-html-mail@w3.org from May 2007 by date

31 | 32 | 44 | 45 |
46 |
47 | 118 |
    119 |
  • Last message date: Tuesday, 29 May 2007 06:04:58 UTC
  • 120 |
  • Archived on: Tuesday, 6 January 2015 19:42:17 UTC
  • 121 |
122 |
123 |
124 | 125 | 134 | 135 | 136 |

137 | This archive was generated by hypermail 2.3.1 138 | : Tuesday, 6 January 2015 19:42:17 UTC 139 |

140 |
141 | 142 | 143 | -------------------------------------------------------------------------------- /samples/public-message.html: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | Email security position paper from Chris Newman on 2007-05-02 (public-html-mail@w3.org from May 2007) 9 | 10 | 11 | 12 | 13 | 15 | 16 | 17 | 18 | 19 |
20 | 21 |

22 | W3C home > 23 | Mailing 24 | lists > 25 | Public > 27 | public-html-mail@w3.org > 28 | May 2007 29 |

30 |
31 |

Email security position paper

32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 59 | 60 |
61 | 62 |
63 |
64 | 65 | From: Chris Newman <Chris.Newman@Sun.COM> 66 |
67 | Date: Wed, 02 May 2007 09:11:46 -0700
68 | To: public-html-mail@w3.org 69 |
70 | Message-id: <3C785A769C70FE58ECC8941F@[192.168.0.103]> 71 |
72 |
73 |
 74 | 
 75 | I don't have time to attend the meeting, but wanted to make sure you have this 
 76 | input.  This is my personal opinion as a long-time participant in the email 
 77 | industry.
 78 | 
 79 | -------
 80 | Email security and client development position paper
 81 | 
 82 | Imagine you had a web browser which every day would randomly jump to a web page 
 83 | created by a phishing house (a different one each day) that was trying to break 
 84 | into your computer.  This browser would proceed to execute all javascript, 
 85 | flash, and other active content on that web page?  If you were lucky you would 
 86 | only get a few pieces of new spyware and adware each day, making your computer 
 87 | unusable within a week regardless of the quality of your anti-virus or other 
 88 | protection software.  Then imagine this web browser had unrestricted access to 
 89 | your personal address book and all your business contacts and could trivially 
 90 | use that information to generate emails to those contacts on your behalf?  How 
 91 | would that impact your business relationships?   Would you run this web browser 
 92 | if you had the option to run one that didn't do this?
 93 | 
 94 | Next, imagine the second you view one of these phishing web page, the web page 
 95 | owner immediately knows that you actively use your web browser (and when you 
 96 | use it) and can arrange to have your web browser visit their page every day in 
 97 | addition to the other things it does.
 98 | 
 99 | That's what rich HTML email would be like and why email vendors work hard to 
100 | restrict what forms of HTML are permissible (and is one of many reasons why 
101 | technology-aware users prefer plain text email).  Because email can be sent to 
102 | an unsolicited recipient, rendering rich email safely is a much greater 
103 | security and privacy risk for the recipient than a typical web page.  While 
104 | there was some early research on active content in email that could be used 
105 | safely (safe-TCL), it was never clear that the benefits would outweigh the 
106 | risks.
107 | 
108 | Attempts to "filter" HTML, CSS and javascript to remove known bad things are 
109 | not viable long term.  There's always another extension by some particular HTML 
110 | engine that allows risky content embedded in some new part of the language. 
111 | What's needed is an extensible white-list of HTML and CSS features that is 
112 | typically safe for use in email.  For an example of such technology, see:
113 |   <http://www.feedparser.org/docs/html-sanitization.html>
114 | 
115 | If the W3C were to take the lead on maintaining and standardizing an 
116 | industry-standard default HTML/CSS whitelist for risky content environments 
117 | it's likely to (eventually) raise the baseline level of HTML/CSS support in 
118 | email.  Furthermore, an investigation of why privacy-preserving technology 
119 | (such as MIME HTML RFC 2557) to embed the complete HTML document and all 
120 | ancillary data in the email so the client can operate in a "safe no network" 
121 | privacy mode has failed to deploy well would be interesting.
122 | 
123 | The current email client market is in a dire state from the viewpoint of 
124 | innovation.  The vast majority of mail clients generate no revenue for the 
125 | vendors of those clients and as a result there is extremely limited investment 
126 | in mail client technology.  Two of the leading innovative cross-platform fat 
127 | client projects (Mulberry and Eudora) were recently terminated (the former due 
128 | to chapter 7 bankruptcy, the latter is merging with Thunderbird).  Is there a 
129 | way that the companies that want more features in email clients could invest 
130 | money to restart innovation in the mail client industry and possibly make it 
131 | profitable for independent mail client vendors so there is innovation?  Is 
132 | other standards work needed to improve the situation?  Can innovation be driven 
133 | by clients on portable devices and then move back to the more traditional 
134 | client environments?  What sort of rich client features would benefit mail 
135 | users so much that it would start a mass migration?
136 | -------
137 | 
138 |                 - Chris
139 | 
140 | Received on Wednesday, 2 May 2007 16:11:12 UTC 141 |
142 | 143 |
144 | 145 | 153 | 160 | 161 |
162 | 163 |

164 | This archive was generated by hypermail 2.3.1 165 | : Tuesday, 6 January 2015 19:42:17 UTC 166 |

167 | 168 | 169 | -------------------------------------------------------------------------------- /samples/thread.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |
6 | 41 |
42 | -------------------------------------------------------------------------------- /style/base.css: -------------------------------------------------------------------------------- 1 | /* Copyright 1997-2003 W3C (MIT, ERCIM, Keio). All Rights Reserved. 2 | The following software licensing rules apply: 3 | http://www.w3.org/Consortium/Legal/copyright-software */ 4 | 5 | /* $Id: base.css,v 1.14 2014-02-24 23:11:24 sysbot Exp $ */ 6 | 7 | /* this style sheet defines the basic style for all W3C pages */ 8 | /* you can point to this by adding: 9 | 10 | 11 | 12 | 13 | in the HEAD of your HTML document */ 14 | 15 | body { 16 | font-family: sans-serif; 17 | color: black; 18 | background: white; 19 | } 20 | 21 | a:link, a:active { 22 | color: #00e; 23 | background: transparent; 24 | } 25 | 26 | a:visited { 27 | color: #529; 28 | background: transparent; 29 | } 30 | 31 | div.intro { 32 | margin-left: 5%; 33 | margin-right: 5%; 34 | font-style: italic 35 | } 36 | 37 | pre { 38 | font-family: monospace 39 | } 40 | 41 | a:link img, a:visited img { 42 | border-style: none 43 | } 44 | 45 | a img { color: white; } /* hide the border in Netscape 4 */ 46 | @media all { /* hide from Netscape 4 */ 47 | a img { color: inherit; } /* undo the rule above */ 48 | } 49 | 50 | ul.toc, ol.toc { 51 | list-style: disc; 52 | list-style: none; 53 | } 54 | 55 | div.issue { 56 | padding: 0.5em; 57 | border: none; 58 | margin-right: 5%; 59 | } 60 | 61 | .hideme { display: none } 62 | 63 | @media print { 64 | 65 | table { 66 | page-break-inside: avoid 67 | } 68 | 69 | } -------------------------------------------------------------------------------- /style/mainindex.css: -------------------------------------------------------------------------------- 1 | /* Copyright 1997-2003 W3C (MIT, ERCIM, Keio). All Rights Reserved. 2 | The following software licensing rules apply: 3 | http://www.w3.org/Consortium/Legal/copyright-software */ 4 | 5 | /* $Id: mainindex.css,v 1.9 2012/01/17 18:46:14 bbos Exp $ */ 6 | 7 | /* Common sub- Style sheet for email archives 8 | ** 9 | ** used by *-mainindex.css 10 | ** Example page: 11 | ** http://lists.w3.org/Archives/Public/www-talk/ 12 | ** 13 | */ 14 | 15 | 16 | /* General chat at the top needs some white space */ 17 | 18 | /* p { margin: 0.5em 1em 0.5em 3em ; text-indent: 1em } */ 19 | p { margin-top: 0.5em; margin-bottom: 1em; } 20 | 21 | /* Table head -- should be w3c blue */ 22 | thead tr { color: #FFFFFF; background-color: rgb(0,90,156) } 23 | 24 | /* tbody tr { font-family: sans-serif ; font-size: 80%} */ 25 | tbody tr { font-family: sans-serif ; } 26 | 27 | .head img {float:left;} 28 | .head p {clear: left;} 29 | th {font-style:italic;} 30 | map ul { list-style:none;} 31 | map#navbar { background-color:#ddd;} 32 | /* table { margin-left:2em;}*/ 33 | 34 | a.sub:link { color:green } 35 | a.unsub:link {color : red } 36 | 37 | .header .important {border: thin solid; padding: 0.5em 1em} 38 | -------------------------------------------------------------------------------- /style/member-mainindex.css: -------------------------------------------------------------------------------- 1 | /* Copyright 1997-2003 W3C (MIT, ERCIM, Keio). All Rights Reserved. 2 | The following software licensing rules apply: 3 | http://www.w3.org/Consortium/Legal/copyright-software */ 4 | 5 | /* $Id: member-mainindex.css,v 1.4 2003/01/21 02:50:51 slesch Exp $ */ 6 | 7 | /* Main index for Member archives */ 8 | 9 | @import url(/StyleSheets/member.css); 10 | 11 | @import url(/StyleSheets/Mail/mainindex.css) ; 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /style/member-message.css: -------------------------------------------------------------------------------- 1 | /* Copyright 1997-2003 W3C (MIT, ERCIM, Keio). All Rights Reserved. 2 | The following software licensing rules apply: 3 | http://www.w3.org/Consortium/Legal/copyright-software */ 4 | 5 | /* $Id: member-message.css,v 1.3 2003/01/21 05:58:38 slesch Exp $ */ 6 | 7 | /* @@ */ 8 | 9 | @import url(/StyleSheets/member.css); 10 | @import url(message.css); 11 | 12 | /* .. */ 13 | 14 | -------------------------------------------------------------------------------- /style/member-messagelist.css: -------------------------------------------------------------------------------- 1 | /* Copyright 1997-2003 W3C (MIT, ERCIM, Keio). All Rights Reserved. 2 | The following software licensing rules apply: 3 | http://www.w3.org/Consortium/Legal/copyright-software */ 4 | 5 | /* $Id: member-messagelist.css,v 1.5 2003/01/21 02:55:31 slesch Exp $ */ 6 | 7 | /* @@ */ 8 | 9 | @import url(/StyleSheets/member.css); 10 | @import url(messagelist.css); 11 | 12 | /* --- */ 13 | 14 | -------------------------------------------------------------------------------- /style/message-proposal-1.css: -------------------------------------------------------------------------------- 1 | /* Copyright 1997-2003 W3C (MIT, ERCIM, Keio). All Rights Reserved. 2 | The following software licensing rules apply: 3 | http://www.w3.org/Consortium/Legal/copyright-software */ 4 | 5 | /* adapted from: */ 6 | /* $Id: public-message.css,v 1.23 2015/01/06 20:28:42 ylafon Exp $ */ 7 | /* W3C Message Archive - public message */ 8 | 9 | 10 | /* much of this is obsolete and can go away */ 11 | 12 | 13 | body { 14 | font-family: sans-serif; 15 | color: black; 16 | line-height: 1.2em; 17 | } 18 | 19 | a:link, a:active { 20 | color: #00e; 21 | background: transparent; 22 | } 23 | 24 | a:visited { 25 | color: #529; 26 | background: transparent; 27 | } 28 | 29 | div.intro { 30 | margin-left: 5%; 31 | margin-right: 5%; 32 | font-style: italic 33 | } 34 | 35 | a:link img, a:visited img { 36 | border-style: none 37 | } 38 | 39 | ul.toc, ol.toc { 40 | list-style: disc; 41 | list-style: none; 42 | } 43 | 44 | div.issue { 45 | padding: 0.5em; 46 | border: none; 47 | margin-right: 5%; 48 | } 49 | 50 | @media print { 51 | 52 | table { 53 | page-break-inside: avoid 54 | } 55 | 56 | } 57 | 58 | 59 | /* want to be able to identify the author and style it 60 | ** but can't 61 | */ 62 | 63 | .mail, .head { border-bottom:1px solid black;} 64 | map ul {list-style:none;} 65 | #message-id { font-size: small;} 66 | address { font-style:inherit ;} 67 | 68 | @media print { 69 | #upper, #navbarfoot, #navbar { 70 | display:none; 71 | } 72 | } 73 | 74 | /* for edited messages */ 75 | div.edit { 76 | background: #CCFF99; 77 | padding: 0.25em 2em 0.25em 1em; 78 | margin-top: 0.25em; 79 | } 80 | p.editmes{ 81 | font-style: italic; 82 | font-size: small; 83 | padding: 0; 84 | } 85 | p.editfooter{ 86 | font-size: small; 87 | padding: 0; 88 | } 89 | 90 | /* for deleted messages */ 91 | div.spam { 92 | background: #aaffaa; 93 | padding: 1em 2em; 94 | } 95 | p.spammes{ 96 | font-size: x-large; 97 | font-weight: bold; 98 | } 99 | p.spamfooter{ 100 | font-size: small; 101 | } 102 | 103 | div#body { 104 | display: block; 105 | unicode-bidi: embed; 106 | background: white; 107 | padding: 0.5em; 108 | margin-top: 0.5em; 109 | margin-bottom: 0.5em; 110 | } 111 | 112 | div#body a { 113 | margin: 0; 114 | padding: 0; 115 | display: inline; 116 | } 117 | 118 | div.message { 119 | word-wrap: break-word; 120 | } 121 | 122 | h1 { 123 | margin-top: 0; 124 | font-size: 150%; 125 | text-shadow: .05em 0 .05em #808080; 126 | font-style: italic; 127 | font-family: serif; 128 | } 129 | 130 | a:hover { 131 | text-decoration: underline !important; 132 | } 133 | 134 | body { background: #eee; } 135 | 136 | 137 | /* ************************************* */ 138 | /* temporary stuff for debugging follows */ 139 | /* ************************************* */ 140 | 141 | 142 | /* uncomment to test scrolling 143 | 144 | body { 145 | min-height: 2000px; 146 | } 147 | 148 | /* 149 | 150 | 151 | /* uncomment the following to see which divs are where 152 | 153 | div.col-md-8 { 154 | background: #f7f0f0; 155 | } 156 | 157 | div.col-md-4 { 158 | background: #f0f7f0; 159 | } 160 | 161 | div.container { 162 | background: #f0f0f7; 163 | } 164 | 165 | body { 166 | background: #fafafa; 167 | } 168 | 169 | */ 170 | 171 | /** 172 | * Styles for the fixed-positioned header 173 | */ 174 | 175 | nav#gutter-top { 176 | position: fixed; 177 | top: 0; 178 | left: 0; 179 | right: 0; 180 | height: 53px; 181 | margin-bottom: 17px; 182 | background-color: #2975ac; 183 | border: none; 184 | font-size: larger; 185 | color: #e0e0e0; 186 | } 187 | 188 | nav#gutter-top > .container-fluid { 189 | padding-left: 0; 190 | } 191 | 192 | .navbar-default .navbar-nav > li > a { 193 | color: #e0e0e0; 194 | } 195 | .navbar-default .navbar-nav > li > a:focus, .navbar-default .navbar-nav > li > a:hover, .navbar-default .navbar-nav > li > a:active { 196 | color: #ffffff; 197 | } 198 | 199 | .navbar-default .navbar-nav li:first-child a { 200 | padding: 0; 201 | } 202 | 203 | div#main { 204 | margin-top: 71px; 205 | } 206 | 207 | /* 208 | * Styles for the Markdown formatting feature 209 | * and for the collapsible thread feature 210 | */ 211 | 212 | form#options { 213 | display: none; 214 | float: right; 215 | width: 33.3%; 216 | } 217 | 218 | form#options.active { 219 | display: block; 220 | } 221 | 222 | form#options label { 223 | font-weight: normal; 224 | } 225 | 226 | form#options img { 227 | height: 1em; 228 | } 229 | 230 | div#body:not(.rich) { 231 | font-family: monospace; 232 | white-space: pre; 233 | white-space: pre-wrap; /* css-3 */ 234 | white-space: -moz-pre-wrap; /* Mozilla, since 1999 */ 235 | white-space: -pre-wrap; /* Opera 4-6 */ 236 | white-space: -o-pre-wrap; /* Opera 7 */ 237 | word-wrap: break-word; /* Internet Explorer 5.5+ */ 238 | } 239 | 240 | div#body pre { 241 | border: none; 242 | padding-top: 0; 243 | padding-bottom: 0; 244 | line-height: inherit; 245 | background-color: inherit; 246 | } 247 | 248 | div#body code { 249 | background-color: inherit; 250 | } 251 | 252 | div#body blockquote { 253 | font-style: italic; 254 | font-size: inherit; 255 | } 256 | 257 | /** 258 | * Styles for gravatars 259 | */ 260 | 261 | #gravatar { 262 | visibility: hidden; 263 | float: right; 264 | box-shadow: 0 4px 4px black; 265 | } 266 | 267 | #gravatar.active { 268 | visibility: visible; 269 | } 270 | 271 | /** 272 | * Styles to improve the message headers 273 | */ 274 | 275 | .headers .key { 276 | font-weight: bold; 277 | } 278 | 279 | .headers .value { 280 | color: #606060; 281 | } 282 | 283 | .headers .name { 284 | color: #000000; 285 | } 286 | 287 | .headers code { 288 | font-size: 1em; 289 | padding-left: 0; 290 | background-color: transparent; 291 | color: #606060; 292 | } 293 | 294 | #gutter { 295 | text-align: center; 296 | text-decoration: none; 297 | color: #000000; 298 | } 299 | 300 | #gutter a:hover #glyph { 301 | background-color: #f8f8f8; 302 | } 303 | 304 | .headers .hidden { 305 | visibility: hidden; 306 | } 307 | 308 | /** 309 | * Styles for the SPA approach 310 | */ 311 | 312 | .inactive { 313 | opacity: .667; 314 | filter: blur(.1em); 315 | -moz-filter: blur(.1em); 316 | -webkit-filter: blur(.1em); 317 | -o-filter: blur(.1em); 318 | -ms-filter: blur(.1em); 319 | } 320 | 321 | #spinner { 322 | display: none; 323 | } 324 | -------------------------------------------------------------------------------- /style/message.css: -------------------------------------------------------------------------------- 1 | /* Copyright 1997-2003 W3C (MIT, ERCIM, Keio). All Rights Reserved. 2 | The following software licensing rules apply: 3 | http://www.w3.org/Consortium/Legal/copyright-software */ 4 | 5 | /* $Id: message.css,v 1.30 2013/03/27 19:07:35 kahan Exp $ */ 6 | 7 | /* Style submodule - W3C Message Archive - message 8 | ** 9 | ** see *-message.css 10 | ** 11 | ** Copyright W3C 12 | */ 13 | 14 | 15 | /* Leave message itself white but rest 16 | ** of metadata very pale grey 17 | 18 | ** This makes it more legible. 19 | ** it also by analogy points out that the content of the message 20 | ** someone else's, not W3C material necessarily -- we just run the list 21 | */ 22 | 23 | body { 24 | margin: 20px; /* 40px from base is too high */ 25 | 26 | } 27 | 28 | pre { color: black; background-color: white; 29 | padding: 0.5em ; } 30 | 31 | 32 | pre { 33 | white-space: pre-wrap; /* css-3 */ 34 | white-space: -moz-pre-wrap; /* Mozilla, since 1999 */ 35 | white-space: -pre-wrap; /* Opera 4-6 */ 36 | white-space: -o-pre-wrap; /* Opera 7 */ 37 | word-wrap: break-word; /* Internet Explorer 5.5+; makes the CSS invalid :( */ 38 | } 39 | 40 | 41 | /* Not too big on the heading - they can be long */ 42 | 43 | h1 { font-size: 150% } 44 | 45 | /* want to be able to identify the author and style it 46 | ** but can't 47 | */ 48 | 49 | dfn {font-weight: bold;} 50 | /* pre { background-color:inherit;} */ 51 | .mail, .head { border-bottom:1px solid black;} 52 | #body {background-color:#fff;} 53 | map ul {list-style:none;} 54 | /* #message-id { font-size:0.9em;} */ 55 | #message-id { font-size: small;} 56 | address { font-style:inherit ;} 57 | /* #from { font-size:1.1em;} */ 58 | 59 | @media print { 60 | #upper, #navbarfoot, #navbar { 61 | display:none; 62 | } 63 | } 64 | 65 | /* for edited messages */ 66 | div.edit { 67 | background: #CCFF99; 68 | padding: 0.25em 2em 0.25em 1em; 69 | margin-top: 0.25em; 70 | } 71 | p.editmes{ 72 | font-style: italic; 73 | font-size: small; 74 | padding: 0; 75 | } 76 | p.editfooter{ 77 | font-size: small; 78 | padding: 0; 79 | } 80 | 81 | /* for deleted messages */ 82 | div.spam { 83 | background: #aaffaa; 84 | padding: 1em 2em; 85 | } 86 | p.spammes{ 87 | font-size: x-large; 88 | font-weight: bold; 89 | } 90 | p.spamfooter{ 91 | font-size: small; 92 | } 93 | -------------------------------------------------------------------------------- /style/messagelist.css: -------------------------------------------------------------------------------- 1 | /* Copyright 1997-2003 W3C (MIT, ERCIM, Keio). All Rights Reserved. 2 | The following software licensing rules apply: 3 | http://www.w3.org/Consortium/Legal/copyright-software */ 4 | 5 | /* $Id: messagelist.css,v 1.5 2003/09/04 21:02:16 dom Exp $ */ 6 | 7 | /* Common submodule for all message lists 8 | ** 9 | ** Used in {team,member,public}-messagelist.css 10 | ** 11 | */ 12 | 13 | 14 | 15 | 16 | 17 | /* li { font-size: 80% ; font-family: sans-serif } */ 18 | 19 | 20 | /* li li { font-size: 100% } don't ripple down getting smaller */ 21 | 22 | dfn {font-weight: bold;} 23 | map ul {list-style:none;} 24 | .messages-list { 25 | border-top:thin solid black; 26 | border-bottom:thin solid black; 27 | } -------------------------------------------------------------------------------- /style/public-mainindex.css: -------------------------------------------------------------------------------- 1 | /* Copyright 1997-2003 W3C (MIT, ERCIM, Keio). All Rights Reserved. 2 | The following software licensing rules apply: 3 | http://www.w3.org/Consortium/Legal/copyright-software */ 4 | 5 | /* $Id: public-mainindex.css,v 1.23 2003/01/21 02:50:51 slesch Exp $ */ 6 | 7 | /* Style sheet for Public email archives 8 | ** 9 | ** Example page: 10 | ** http://lists.w3.org/Archives/Public/www-talk/ 11 | ** 12 | ** This file was empty - it needed something tbl 13 | */ 14 | 15 | @import url(/StyleSheets/base.css); 16 | 17 | @import url(/StyleSheets/Mail/mainindex.css); 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /style/public-message.css: -------------------------------------------------------------------------------- 1 | /* Copyright 1997-2003 W3C (MIT, ERCIM, Keio). All Rights Reserved. 2 | The following software licensing rules apply: 3 | http://www.w3.org/Consortium/Legal/copyright-software */ 4 | 5 | /* $Id: public-message.css,v 1.23 2015/01/06 20:28:42 ylafon Exp $ */ 6 | 7 | /* W3C Message Archive - public message */ 8 | 9 | @import url(base.css); 10 | @import url(message.css); 11 | 12 | /* Leave message itself white but rest 13 | ** of metadata very pale grey 14 | ** Note the public background is white so here we only need to set grey 15 | */ 16 | 17 | body { color: black; background: #eee; } 18 | 19 | /* ... */ 20 | 21 | -------------------------------------------------------------------------------- /style/public-messagelist.css: -------------------------------------------------------------------------------- 1 | /* Copyright 1997-2003 W3C (MIT, ERCIM, Keio). All Rights Reserved. 2 | The following software licensing rules apply: 3 | http://www.w3.org/Consortium/Legal/copyright-software */ 4 | 5 | /* $Id: public-messagelist.css,v 1.13 2003/09/12 18:42:24 slesch Exp $ */ 6 | 7 | /* @@ */ 8 | 9 | @import url(base.css); 10 | 11 | 12 | 13 | body { color: #000000; background-color: #FFFFFF} 14 | 15 | /* li { font-size: 90% ; font-family: sans-serif } */ 16 | 17 | 18 | /* li li { font-size: 100% } */ /* don't ripple down getting smaller */ 19 | 20 | dfn {font-weight: bold;} 21 | map ul {list-style:none;} 22 | .messages-list { 23 | border-top:thin solid black; 24 | border-bottom:thin solid black; 25 | } -------------------------------------------------------------------------------- /style/style-short.css: -------------------------------------------------------------------------------- 1 | .foot, #upper { 2 | display:none; 3 | } 4 | -------------------------------------------------------------------------------- /style/style-wrap.css: -------------------------------------------------------------------------------- 1 | pre { 2 | white-space:pre-wrap; 3 | } -------------------------------------------------------------------------------- /style/team-mainindex.css: -------------------------------------------------------------------------------- 1 | /* Copyright 1997-2003 W3C (MIT, ERCIM, Keio). All Rights Reserved. 2 | The following software licensing rules apply: 3 | http://www.w3.org/Consortium/Legal/copyright-software */ 4 | 5 | /* $Id: team-mainindex.css,v 1.3 2003/01/21 02:50:51 slesch Exp $ */ 6 | 7 | /* Style sheet for Team main index */ 8 | 9 | @import url(/StyleSheets/team.css); 10 | 11 | @import url(/StyleSheets/Mail/mainindex.css); 12 | 13 | -------------------------------------------------------------------------------- /style/team-message.css: -------------------------------------------------------------------------------- 1 | /* Copyright 1997-2003 W3C (MIT, ERCIM, Keio). All Rights Reserved. 2 | The following software licensing rules apply: 3 | http://www.w3.org/Consortium/Legal/copyright-software */ 4 | 5 | /* $Id: team-message.css,v 1.4 2003/01/21 05:58:38 slesch Exp $ */ 6 | 7 | /* Team archive message */ 8 | 9 | @import url(/StyleSheets/team.css); 10 | 11 | @import url(/StyleSheets/Mail/message.css); 12 | 13 | /* ... */ 14 | 15 | -------------------------------------------------------------------------------- /style/team-messagelist.css: -------------------------------------------------------------------------------- 1 | /* Copyright 1997-2003 W3C (MIT, ERCIM, Keio). All Rights Reserved. 2 | The following software licensing rules apply: 3 | http://www.w3.org/Consortium/Legal/copyright-software */ 4 | 5 | /* $Id: team-messagelist.css,v 1.4 2003/01/21 06:11:36 slesch Exp $ */ 6 | 7 | /* Team-confidential list of messages */ 8 | 9 | @import url(/StyleSheets/team.css); 10 | 11 | @import url(/StyleSheets/Mail/messagelist.css) ; 12 | 13 | 14 | -------------------------------------------------------------------------------- /style/thread.css: -------------------------------------------------------------------------------- 1 | /* source: http://jsfiddle.net/Fh47n/ http://stackoverflow.com/a/15480307 */ 2 | 3 | .thread li { 4 | margin: 0; 5 | margin-left: -15px; 6 | list-style-type: none; 7 | position: relative; 8 | padding: 3px 5px 0px 0px; 9 | } 10 | 11 | .thread li::before{ 12 | content: ''; 13 | position: absolute; 14 | top: 0; 15 | width: 1px; 16 | height: 100%; 17 | right: auto; 18 | left: -20px; 19 | border-left: 1px solid #ccc; 20 | bottom: 50px; 21 | } 22 | .thread li::after{ 23 | content: ''; 24 | position: absolute; 25 | top: 15px; 26 | width: 20px; 27 | height: 20px; 28 | right: auto; 29 | left: -20px; 30 | border-top: 1px solid #ccc; 31 | } 32 | .thread li a{ 33 | display: inline-block; 34 | border: 1px solid #ccc; 35 | padding: 5px 10px; 36 | font-family: arial, verdana, tahoma; 37 | font-size: 0.9em; 38 | border-radius: 5px; 39 | -webkit-border-radius: 5px; 40 | -moz-border-radius: 5px; 41 | } 42 | 43 | /*Remove connectors before root*/ 44 | .thread > ul > li::before, .thread > ul > li::after{ 45 | border: 0; 46 | } 47 | /*Remove connectors after last child*/ 48 | .thread li:last-child::before{ 49 | height: 15px; 50 | } 51 | 52 | .thread li a.current { 53 | background: #fcfcfc; 54 | } 55 | 56 | /*Time for some hover effects*/ 57 | /*We will apply the hover effect the the lineage of the element also*/ 58 | .thread li a:hover, .thread li a:hover+ul li a { 59 | background: #ddd; color: #000; border: 1px solid #94a0b4; 60 | } 61 | /*Connector styles on hover*/ 62 | .thread li a:hover+ul li::after, 63 | .thread li a:hover+ul li::before, 64 | .thread li a:hover+ul::before, 65 | .thread li a:hover+ul ul::before{ 66 | border-color: #94a0b4; 67 | } 68 | 69 | -------------------------------------------------------------------------------- /w3c.json: -------------------------------------------------------------------------------- 1 | { 2 | "contacts": ["gosko"], 3 | "repo-type": "tool" 4 | } 5 | --------------------------------------------------------------------------------