2021-09-02  Jonathan Bedard  <jbedard@apple.com>

        [contributors.json] Relocation (Part 3)
        https://bugs.webkit.org/show_bug.cgi?id=229690
        <rdar://problem/82552403>

        Reviewed by Aakash Jain.

        * commit-review.md: Link to metadata/contributors.json.
        * wp-content/themes/webkit/team.php: Load from metadata/contributors.json,
        load list instead of dictionary.

2021-08-31  Jonathan Bedard  <jbedard@apple.com>

        [contributors.json] Replace class=bot with status=bot
        https://bugs.webkit.org/show_bug.cgi?id=229712
        <rdar://problem/82579767>

        Reviewed by Aakash Jain.

        * wp-content/themes/webkit/team.php: "bot" is now a status, not a class.

2021-02-17  Ling Ho  <lingho@apple.com>

        WebKit nighly archives page not working for Big Sur
        https://bugs.webkit.org/show_bug.cgi?id=222016
        <rdar://problem/74037376>

        Reviewed by Alexey Proskuryakov.

        * wp-content/themes/webkit/build-archives.php:

2021-02-11  Martin Robinson  <mrobinson@igalia.com>

        scroll-snap demo should use new spec
        https://bugs.webkit.org/show_bug.cgi?id=184046

        Reviewed by Wenson Hsieh.

        Update the scroll-snap demo to reflect the modern specification. This
        demo isn't currently linked from the site, but if it's every linked again
        it will now reflect the current specification.

        This maintains the old CSS so that the demo continues to work with
        old versions of Safari.

        * demos/scroll-snap/index.html: Update the descriptions in the demo to reflect
        the newest version of the specification.

2021-01-29  Beth Dakin  <bdakin@apple.com>

        Remove non-inclusive language from webkit.org/blog-files/css-jit-introduction/html5-single-page-microbenchmark.html
        https://bugs.webkit.org/show_bug.cgi?id=221154

        Reviewed by Geoffrey Garen.

        * blog-files/css-jit-introduction/html5-single-page-microbenchmark.html:

2021-01-05  Jon Davis  <jond@apple.com>

        Limit failed login attempts on webkit.org blog
        https://bugs.webkit.org/show_bug.cgi?id=220032

        Reviewed by Timothy Hatcher.

        * wp-content/plugins/limit-logins.php: Added.

2021-01-05  Jon Davis  <jond@apple.com>

        Disable public APIs on webkit.org blog
        https://bugs.webkit.org/show_bug.cgi?id=220028

        Reviewed by Timothy Hatcher.

        * wp-content/plugins/disable-public-apis.php: Added.

2021-01-05  Jon Davis  <jond@apple.com>

        Enforce strong password changes on webkit.org blog
        https://bugs.webkit.org/show_bug.cgi?id=220027

        Reviewed by Timothy Hatcher.

        * wp-content/plugins/strong-passwords.php: Added.

2020-12-11  Ryan Haddad  <ryanhaddad@apple.com>

        Add Big Sur to WebKit Build Archives page
        https://bugs.webkit.org/show_bug.cgi?id=219789

        Reviewed by Alexey Proskuryakov.

        * wp-content/themes/webkit/build-archives.php:
        Add Big Sur, remove High Sierra since we aren't producing new archives for it.

2020-11-02  Jon Davis  <jond@apple.com>

        Input sanitization improvements for Payment Request demo
        https://bugs.webkit.org/show_bug.cgi?id=218470

        Reviewed by Andy Estes.

        * demos/payment-request/merchant-validation.php:

2020-09-02  Jon Davis  <jond@apple.com>

        Add an STP callout to Web Inspector documentation
        https://bugs.webkit.org/show_bug.cgi?id=216105

        Reviewed by Devin Rousso.

        * wp-content/themes/webkit/single-web_inspector_page.php:
        * wp-content/themes/webkit/style.css:
        (article .meta .icon):

2020-08-24  Jon Davis  <jond@apple.com>

        Disable unused RPC services
        https://bugs.webkit.org/show_bug.cgi?id=215779

        Reviewed by Alexey Proskuryakov.

        * .htaccess:

2020-08-18  Darin Adler  <darin@apple.com>

        * languages.md: Fixed "Movaje" typo.

2020-08-18  Darin Adler  <darin@apple.com>

        Document versions of C++ and Python
        https://bugs.webkit.org/show_bug.cgi?id=215191

        Reviewed by Jonathan Bedard.

        * languages.md: Added.

2020-08-12  Jon Davis  <jond@apple.com>

        Remove unused selector performance test
        https://bugs.webkit.org/show_bug.cgi?id=215414

        Reviewed by Darin Adler.

        * perf/slickspeed/config.ini: Removed.
        * perf/slickspeed/footer.html: Removed.
        * perf/slickspeed/frameworks/DomQuery.js: Removed.
        * perf/slickspeed/frameworks/dummy.js: Removed.
        * perf/slickspeed/frameworks/jquery-1.2.3.js: Removed.
        * perf/slickspeed/frameworks/prototype.js: Removed.
        * perf/slickspeed/header.html: Removed.
        * perf/slickspeed/index.php: Removed.
        * perf/slickspeed/instructions.txt: Removed.
        * perf/slickspeed/logo.png: Removed.
        * perf/slickspeed/selectors.list: Removed.
        * perf/slickspeed/style.css: Removed.
        * perf/slickspeed/system/index.php: Removed.
        * perf/slickspeed/system/slickspeed.js: Removed.
        * perf/slickspeed/system/template.php: Removed.
        * perf/slickspeed/template.html: Removed.

2020-08-06  Jon Davis  <jond@apple.com>

        Fixed widget method argument compatibility with WordPress
        https://bugs.webkit.org/show_bug.cgi?id=215103

        Reviewed by Devin Rousso.

        * wp-content/themes/webkit/widgets/icon.php:
        * wp-content/themes/webkit/widgets/page.php:
        * wp-content/themes/webkit/widgets/post.php:
        * wp-content/themes/webkit/widgets/twitter.php:

2020-08-06  Jon Davis  <jond@apple.com>

        Removed XML declaration from SVGs and updated copyrights
        https://bugs.webkit.org/show_bug.cgi?id=215102

        Reviewed by Devin Rousso.

        * wp-content/themes/webkit/images/chevron-dark.svg:
        * wp-content/themes/webkit/images/chevron.svg:
        * wp-content/themes/webkit/images/circular.svg:
        * wp-content/themes/webkit/images/compass.svg:
        * wp-content/themes/webkit/images/download-white.svg:
        * wp-content/themes/webkit/images/download.svg:
        * wp-content/themes/webkit/images/filter.svg:
        * wp-content/themes/webkit/images/icons.svg:
        * wp-content/themes/webkit/images/inspector.svg:
        * wp-content/themes/webkit/images/invert-lightness.svg:
        * wp-content/themes/webkit/images/menu-down.svg:
        * wp-content/themes/webkit/images/search.svg:
        * wp-content/themes/webkit/images/spinner.svg:
        * wp-content/themes/webkit/images/squirrelfish-lives.svg:
        * wp-content/themes/webkit/images/template.svg:
        * wp-content/themes/webkit/images/twitter.svg:
        * wp-content/themes/webkit/images/webkit.svg:

2020-08-05  Jon Davis  <jond@apple.com>

        Enhance feature status page origin for flexible test environments
        https://bugs.webkit.org/show_bug.cgi?id=215178

        Reviewed by Devin Rousso.

        * wp-content/themes/webkit/css-status.php:
        * wp-content/themes/webkit/status.php:

2020-04-23  Filip Pizlo  <fpizlo@apple.com>

        Unreviewed, check in some more files for a blog post.

        * blog-files/speculation-in-jsc/clobberize-dependence-graph.graffle:
        * blog-files/speculation-in-jsc/clobberize-dependence-graph.svg:

2020-04-21  Filip Pizlo  <fpizlo@apple.com>

        Unreviewed, check in some more files for a blog post.

        * blog-files/speculation-in-jsc/clobberize-dependence-graph.graffle:
        * blog-files/speculation-in-jsc/clobberize-dependence-graph.svg:

2020-04-21  Filip Pizlo  <fpizlo@apple.com>

        Unreviewed, check in some more files for a blog post.

        * blog-files/speculation-in-jsc/clobberize-dependence-graph.graffle: Added.
        * blog-files/speculation-in-jsc/clobberize-dependence-graph.svg: Added.

2020-04-21  Filip Pizlo  <fpizlo@apple.com>

        Unreviewed, check in some more files for a blog post.

        * blog-files/speculation-in-jsc/abstract-heaps.graffle:
        * blog-files/speculation-in-jsc/abstract-heaps.svg:

2020-04-21  Filip Pizlo  <fpizlo@apple.com>

        Unreviewed, check in some more files for a blog post.

        * blog-files/speculation-in-jsc/abstract-heaps.graffle:
        * blog-files/speculation-in-jsc/abstract-heaps.svg:

2020-04-21  Filip Pizlo  <fpizlo@apple.com>

        Unreviewed, check in some more files for a blog post.

        * blog-files/speculation-in-jsc/abstract-heaps.graffle: Added.
        * blog-files/speculation-in-jsc/abstract-heaps.svg: Added.

2020-04-18  Filip Pizlo  <fpizlo@apple.com>

        Unreviewed, check in some more files for a blog post.

        * blog-files/speculation-in-jsc/osr-exit-implicit-control-flow.graffle:
        * blog-files/speculation-in-jsc/osr-exit-implicit-control-flow.svg:

2020-04-18  Filip Pizlo  <fpizlo@apple.com>

        Unreviewed, check in some more files for a blog post.

        * blog-files/speculation-in-jsc/osr-exit-implicit-control-flow.graffle: Added.
        * blog-files/speculation-in-jsc/osr-exit-implicit-control-flow.svg: Added.

2020-04-14  Filip Pizlo  <fpizlo@apple.com>

        Unreviewed, check in some more files for a blog post.

        * blog-files/speculation-in-jsc/full-add-cfg.graffle:
        * blog-files/speculation-in-jsc/full-add-cfg.svg:

2020-04-14  Filip Pizlo  <fpizlo@apple.com>

        Unreviewed, check in some more files for a blog post.

        * blog-files/speculation-in-jsc/full-add-cfg.graffle:
        * blog-files/speculation-in-jsc/full-add-cfg.svg:

2020-04-14  Filip Pizlo  <fpizlo@apple.com>

        Unreviewed, check in some more files for a blog post.

        * blog-files/speculation-in-jsc/full-add-cfg.graffle: Added.
        * blog-files/speculation-in-jsc/full-add-cfg.svg: Added.

2020-04-14  Filip Pizlo  <fpizlo@apple.com>

        Unreviewed, check in some more files for a blog post.

        * blog-files/speculation-in-jsc/dfg-pipeline-dark.graffle: Added.
        * blog-files/speculation-in-jsc/dfg-pipeline-dark.svg: Added.
        * blog-files/speculation-in-jsc/ftl-pipeline-dark.graffle
        * blog-files/speculation-in-jsc/ftl-pipeline-dark.svg:

2020-04-14  Filip Pizlo  <fpizlo@apple.com>

        Unreviewed, check in some more files for a blog post.

        * blog-files/speculation-in-jsc/ftl-pipeline-dark.graffle: Added.
        * blog-files/speculation-in-jsc/ftl-pipeline-dark.svg: Added.

2020-04-10  Filip Pizlo  <fpizlo@apple.com>

        Unreviewed, check in some files for a blog post.

        * blog-files/speculation-in-jsc: Added.
        * blog-files/speculation-in-jsc/ai-check-elimination-examples.graffle: Added.
        * blog-files/speculation-in-jsc/ai-check-elimination-examples.svg: Added.
        * blog-files/speculation-in-jsc/bigger-data-flow-graph.graffle: Added.
        * blog-files/speculation-in-jsc/bigger-data-flow-graph.svg: Added.
        * blog-files/speculation-in-jsc/bytecode-to-dfg-ir-lowering-with-osr-phases.graffle: Added.
        * blog-files/speculation-in-jsc/bytecode-to-dfg-ir-lowering-with-osr-phases.svg: Added.
        * blog-files/speculation-in-jsc/bytecode-to-ssa-conversion-with-osr.graffle: Added.
        * blog-files/speculation-in-jsc/bytecode-to-ssa-conversion-with-osr.svg: Added.
        * blog-files/speculation-in-jsc/dfg-and-ftl-architecture.graffle: Added.
        * blog-files/speculation-in-jsc/dfg-and-ftl-architecture.svg: Added.
        * blog-files/speculation-in-jsc/dfg-arithadd-explainer.graffle: Added.
        * blog-files/speculation-in-jsc/dfg-arithadd-explainer.svg: Added.
        * blog-files/speculation-in-jsc/dfg-pipeline.graffle: Added.
        * blog-files/speculation-in-jsc/dfg-pipeline.svg: Added.
        * blog-files/speculation-in-jsc/dfg-threaded-cps-example.graffle: Added.
        * blog-files/speculation-in-jsc/dfg-threaded-cps-example.svg: Added.
        * blog-files/speculation-in-jsc/double-monomorphic-inline-cache-speculation.graffle: Added.
        * blog-files/speculation-in-jsc/double-monomorphic-inline-cache-speculation.svg: Added.
        * blog-files/speculation-in-jsc/example-data-flow-graph.graffle: Added.
        * blog-files/speculation-in-jsc/example-data-flow-graph.svg: Added.
        * blog-files/speculation-in-jsc/five-parts-of-speculation.graffle: Added.
        * blog-files/speculation-in-jsc/five-parts-of-speculation.svg: Added.
        * blog-files/speculation-in-jsc/ftl-dfg-ir-to-bytecode-osr-exit.graffle: Added.
        * blog-files/speculation-in-jsc/ftl-dfg-ir-to-bytecode-osr-exit.svg: Added.
        * blog-files/speculation-in-jsc/ftl-pipeline.graffle: Added.
        * blog-files/speculation-in-jsc/ftl-pipeline.svg: Added.
        * blog-files/speculation-in-jsc/ftl-stackmaps.graffle: Added.
        * blog-files/speculation-in-jsc/ftl-stackmaps.svg: Added.
        * blog-files/speculation-in-jsc/ideal-jsc-optimization-workflow.graffle: Added.
        * blog-files/speculation-in-jsc/ideal-jsc-optimization-workflow.svg: Added.
        * blog-files/speculation-in-jsc/inline-caches-per-tier-dynamic.graffle: Added.
        * blog-files/speculation-in-jsc/inline-caches-per-tier-dynamic.svg: Added.
        * blog-files/speculation-in-jsc/int32-add-diamond-speculation.graffle: Added.
        * blog-files/speculation-in-jsc/int32-add-diamond-speculation.svg: Added.
        * blog-files/speculation-in-jsc/int32-add-osr-speculation.graffle: Added.
        * blog-files/speculation-in-jsc/int32-add-osr-speculation.svg: Added.
        * blog-files/speculation-in-jsc/jsc-tier-architecture.graffle: Added.
        * blog-files/speculation-in-jsc/jsc-tier-architecture.svg: Added.
        * blog-files/speculation-in-jsc/jsc-tiers.graffle: Added.
        * blog-files/speculation-in-jsc/jsc-tiers.svg: Added.
        * blog-files/speculation-in-jsc/object-model.graffle: Added.
        * blog-files/speculation-in-jsc/object-model.svg: Added.
        * blog-files/speculation-in-jsc/optimization-workflow-c-vs-js.graffle: Added.
        * blog-files/speculation-in-jsc/optimization-workflow-c-vs-js.svg: Added.
        * blog-files/speculation-in-jsc/optimization-workflow-js.graffle: Added.
        * blog-files/speculation-in-jsc/optimization-workflow-js.svg: Added.
        * blog-files/speculation-in-jsc/osr-exit-bytecode-example.graffle: Added.
        * blog-files/speculation-in-jsc/osr-exit-bytecode-example.svg: Added.
        * blog-files/speculation-in-jsc/osr-stack-register-shuffle.graffle: Added.
        * blog-files/speculation-in-jsc/osr-stack-register-shuffle.svg: Added.
        * blog-files/speculation-in-jsc/polyvariant-inline-cache-speculation.graffle: Added.
        * blog-files/speculation-in-jsc/polyvariant-inline-cache-speculation.svg: Added.
        * blog-files/speculation-in-jsc/prediction-propagation-and-value-profiling.graffle: Added.
        * blog-files/speculation-in-jsc/prediction-propagation-and-value-profiling.svg: Added.
        * blog-files/speculation-in-jsc/prediction-propagation-rules-add.graffle: Added.
        * blog-files/speculation-in-jsc/prediction-propagation-rules-add.svg: Added.
        * blog-files/speculation-in-jsc/prediction-propagation-rules-getbyval.graffle: Added.
        * blog-files/speculation-in-jsc/prediction-propagation-rules-getbyval.svg: Added.
        * blog-files/speculation-in-jsc/sample-property-lookup.graffle: Added.
        * blog-files/speculation-in-jsc/sample-property-lookup.svg: Added.
        * blog-files/speculation-in-jsc/single-monomorphic-inline-cache-speculation.graffle: Added.
        * blog-files/speculation-in-jsc/single-monomorphic-inline-cache-speculation.svg: Added.
        * blog-files/speculation-in-jsc/speculated-types.graffle: Added.
        * blog-files/speculation-in-jsc/speculated-types.svg: Added.
        * blog-files/speculation-in-jsc/xy-objects-as-maps.graffle: Added.
        * blog-files/speculation-in-jsc/xy-objects-as-maps.svg: Added.
        * blog-files/speculation-in-jsc/xy-objects-with-structures.graffle: Added.
        * blog-files/speculation-in-jsc/xy-objects-with-structures.svg: Added.

2020-04-01  Jon Davis  <jond@apple.com>

        Removed the update nag from the old WebKit Nightly start page
        https://bugs.webkit.org/show_bug.cgi?id=179214

        Reviewed by Darin Adler.

        * wp-content/themes/webkit/nightly-start.php:

2020-03-30  Simon Fraser  <simon.fraser@apple.com>

        http://webkit.org/css-status/ hangs
        https://bugs.webkit.org/show_bug.cgi?id=209746

        Reviewed by Antoine Quint.
        
        A change to CSSProperties.json (probably text-orientation unprefixing) revealed an infinite loop
        in mergeProperties() which kept appending values to prefixedPropertyObj.values.
        
        Fix by cloning the array before enumerating it.

        * wp-content/themes/webkit/css-status.php:

2020-02-26  Jon Davis  <jond@apple.com>

        Prevented text selection on logo and header navigation
        https://bugs.webkit.org/show_bug.cgi?id=208157

        Reviewed by Devin Rousso.

        * wp-content/themes/webkit/style.css:
        (.site-logo):
        (header nav):

2020-01-27  Jon Davis  <jond@apple.com>

        Add support for table of contents to Web Inspector pages
        https://bugs.webkit.org/show_bug.cgi?id=206845

        Reviewed by Devin Rousso.

        * wp-content/plugins/table-of-contents.php:

2020-01-27  Jon Davis  <jond@apple.com>

        Fix submenu behavior for narrow viewports
        https://bugs.webkit.org/show_bug.cgi?id=206835

        Reviewed by Devin Rousso.

        * wp-content/themes/webkit/header.php:
        * wp-content/themes/webkit/style.css:
        (@media only screen and (max-width: 920px) header .menu > .menu-item:hover > .sub-menu,):
        (@media only screen and (max-width: 920px) header .menu > .menu-item > .menu-toggle:checked ~ .sub-menu): Deleted.

2020-01-24  Jon Davis  <jond@apple.com>

        Fix editing permissions for the Web Inspector Editor role
        https://bugs.webkit.org/show_bug.cgi?id=206761

        Reviewed by Devin Rousso.

        * wp-content/plugins/web-inspector-pages.php:

2020-01-23  Jon Davis  <jond@apple.com>

        Fix extra space between title and article body
        https://bugs.webkit.org/show_bug.cgi?id=206689

        Reviewed by Devin Rousso.

        * wp-content/themes/webkit/style.css:
        (article .meta):
        (article .bodycopy,):

2020-01-16  Jon Davis  <jond@apple.com>

        Ensure full URLs for relative path images for social meta data
        https://bugs.webkit.org/show_bug.cgi?id=206382

        Reviewed by Devin Rousso.

        * wp-content/plugins/social-meta.php:

2020-01-16  Jon Davis  <jond@apple.com>

        Add support for categories and custom post types to the social meta plugin
        https://bugs.webkit.org/show_bug.cgi?id=206327

        Reviewed by Devin Rousso.

        * wp-content/plugins/social-meta.php:
        * wp-content/plugins/web-inspector-pages.php:
        * wp-content/themes/webkit/archive-web_inspector_page.php:

2020-01-15  Jon Davis  <jond@apple.com>

        Add Web Inspector Reference notice to Web Inspector blog posts
        https://bugs.webkit.org/show_bug.cgi?id=206308

        Reviewed by Devin Rousso.

        * wp-content/themes/webkit/functions.php:

2020-01-15  Devin Rousso  <drousso@apple.com>

        Web Inspector Reference: the meta info at the end of the article should always be on its own line
        https://bugs.webkit.org/show_bug.cgi?id=206277

        Reviewed by Timothy Hatcher.

        * wp-content/themes/webkit/style.css:
        (article .bodycopy, article .meta):

2020-01-15  Devin Rousso  <drousso@apple.com>

        Web Inspector Reference: put the original author and last modified author on separate lines
        https://bugs.webkit.org/show_bug.cgi?id=206274

        Reviewed by Timothy Hatcher.

        * wp-content/themes/webkit/single-web_inspector_page.php:
        * wp-content/themes/webkit/style.css:
        (article .meta .written): Added.
        (article .meta .written, article .meta .updated): Added.
        (article .meta .updated): Deleted.

2020-01-15  Jon Davis  <jond@apple.com>

        Ensure UAs update the stylesheet
        https://bugs.webkit.org/show_bug.cgi?id=206292

        Reviewed by Devin Rousso.

        * wp-content/themes/webkit/header.php:

2020-01-14  Jon Davis  <jond@apple.com>

        Display authors of a Web Inspector reference article
        https://bugs.webkit.org/show_bug.cgi?id=206176

        Reviewed by Devin Rousso.

        * wp-content/themes/webkit/single-web_inspector_page.php:

2020-01-14  Jon Davis  <jond@apple.com>

        Add Markdown support for Web Inspector Reference articles
        https://bugs.webkit.org/show_bug.cgi?id=206256

        Reviewed by Devin Rousso.

        * wp-content/plugins/web-inspector-pages.php:

2020-01-14  Jon Davis  <jond@apple.com>

        Fix blog post article title justification
        https://bugs.webkit.org/show_bug.cgi?id=206245

        Reviewed by Devin Rousso.

        * wp-content/themes/webkit/style.css:
        (main h1):

2020-01-13  Jon Davis  <jond@apple.com>

        Add support for Web Inspector pages and topic taxonomy
        https://bugs.webkit.org/show_bug.cgi?id=206034

        Reviewed by Devin Rousso.

        * wp-content/plugins/web-inspector-pages.php: Added.
        * wp-content/themes/webkit/archive-web_inspector_page.php: Added.
        * wp-content/themes/webkit/single-web_inspector_page.php: Added.

2020-01-09  Jon Davis  <jond@apple.com>

        Add styles to support Web Inspector reference articles
        https://bugs.webkit.org/show_bug.cgi?id=206032

        Reviewed by Devin Rousso.

        * wp-content/themes/webkit/style.css:
        (main h1,):
        (main h1):
        (article .meta .updated):
        (article .bodycopy,):
        (.image):
        (p .image,):
        (.image.block):
        (.image img):
        (.widescreen .image):
        (.image.slice-top > picture > img):
        (.image.slice-right > picture > img):
        (.image.slice-bottom > picture > img):
        (.image.slice-left > picture > img):
        (.flex):
        (.flex.center):
        (figure.widescreen):
        (article picture):
        (article picture > img):
        (.single-web_inspector_page .landing-link):
        (.single-web_inspector_page .landing-link:hover):
        (@media(prefers-color-scheme:dark) article .invert-brightness,):
        (@media(prefers-color-scheme:dark) .table-of-contents label:after):
        (article h1,): Deleted.
        (article .bodycopy): Deleted.

2020-01-09  Jon Davis  <jond@apple.com>

        Fix redundant anchor tags when generating table of contents
        https://bugs.webkit.org/show_bug.cgi?id=206016

        Reviewed by Devin Rousso.

        * wp-content/plugins/table-of-contents.php:

2019-11-13  Myles C. Maxfield  <mmaxfield@apple.com>

        [WebGPU] Update Babylon WebGPU demos to work on ToT
        https://bugs.webkit.org/show_bug.cgi?id=204182

        Reviewed by Dean Jackson.

        3 things were wrong:

        - There seemed to be a bug in the loader script. I fixed the bug and added a local copy
          here so we don't have to keep hotlinking to the Babylon one.
        - I had updated the helmet shaders in
          https://github.com/litherum/Website/commit/f7768ed43012fb06345768211ea90815d81f41b4
          but I didn't update the sphere shaders.
        - r252423 turned off the sphere rendering after 2 seconds. This patch removes that.

        * demos/webgpu/babylon/babylonjs.loaders.min.js: Added.
        (return):
        (return.n.d):
        (return.get n.r):
        (return.n.t):
        (return.):
        (return.n.n):
        (return.n.o):
        * demos/webgpu/babylon/oneHelmetWebGPU.html:
        * demos/webgpu/babylon/oneSphereWebGPU.html:
        * demos/webgpu/babylon/oneSphereWebGPUWSLShaders.js:
        (sampler.reflectionSamplerSampler.register):
        (float3.normal.attribute): Deleted.
        * demos/webgpu/babylon/vertexShaderGLSL1.glsl: Removed. Unnecessary.

2019-11-13  Dean Jackson  <dino@apple.com>

        Fix some WebGPU demos
        https://bugs.webkit.org/show_bug.cgi?id=204167

        Reviewed by Myles C. Maxfield.

        Use COPY_ rather than TRANSFER_.

        * demos/webgpu/babylon/babylonWebGpu.max.js:
        * demos/webgpu/babylon/oneSphereWebGPU.html:
        * demos/webgpu/hello-cube.html:
        * demos/webgpu/scripts/compute-boids-compile.js:
        * demos/webgpu/scripts/compute-boids-utils.js:
        (async.createTextureFromImage):
        * demos/webgpu/textured-cube.html:

2019-11-08  Ryosuke Niwa  <rniwa@webkit.org>

        Add punctuation rules for C++ lambdas
        https://bugs.webkit.org/show_bug.cgi?id=204021

        Reviewed by Zalan Bujtas.

        Added rules for not putting spaces between [] and () and omitting () whenever possible for C++ lambdas.

        * code-style.md:

2019-10-26  Chris Lord  <clord@igalia.com>

        Put OffscreenCanvas behind a build flag
        https://bugs.webkit.org/show_bug.cgi?id=203146

        Reviewed by Ryosuke Niwa.

        Update to reflect split ImageBitmapOffscreenCanvas settings.

        * experimental-features.html:

2019-10-14  Ling Ho  <lingcherd_ho@apple.com>

        Update WebKit Build Archives page on webkit.org
        https://bugs.webkit.org/show_bug.cgi?id=202871

        Reviewed by Alexey Proskuryakov.

        Added Catalina and remove Sierra.

        * wp-content/themes/webkit/build-archives.php:

2019-09-19  Justin Fan  <justin_fan@apple.com>

        [WebGPU] Update messaging to reflect STP 92 requirement for demos
        https://bugs.webkit.org/show_bug.cgi?id=201931

        Reviewed by Jon Lee.

        Demos don't work anymore on versions of Safari older than STP 92,
        so update WebGPU feature detection to reflect that.

        * demos/webgpu/babylon/babylonWebGpu.max.js:
        * demos/webgpu/babylon/oneHelmetWebGPU.html:
        * demos/webgpu/babylon/oneSphereWebGPU.html:
        * demos/webgpu/compute-blur.html:
        * demos/webgpu/compute-boids-compile.html:
        * demos/webgpu/compute-boids.html:
        * demos/webgpu/hello-cube.html:
        * demos/webgpu/hello-triangle.html:
        * demos/webgpu/scripts/compute-blur.js:
        (async.init):
        * demos/webgpu/scripts/compute-boids-compile.js:
        * demos/webgpu/scripts/hello-triangle.js:
        (async.helloTriangle):
        * demos/webgpu/textured-cube.html:

2019-09-18  Myles C. Maxfield  <mmaxfield@apple.com>

        [WebGPU] Update demos to work on STP 92
        https://bugs.webkit.org/show_bug.cgi?id=201872

        Reviewed by Dean Jackson.

        Updating for new WSL buffer layouts.
        Updating for new WSL compiler struct validation rules.
        GPUShaderStageBit => GPUShaderStage
        GPUColorWriteBits => GPUColorWrite
        GPUBufferUsage.TRANSFER_DST => GPUBufferUsage.COPY_DST
        GPUBufferUsage.TRANSFER_SRC => GPUBufferUsage.COPY_SRC

        * demos/webgpu/babylon/babylonWebGpu.max.js:
        * demos/webgpu/babylon/oneHelmetWebGPUWSLShaders.js:
        (sampler.bumpSamplerSampler.register):
        (sampler.reflectionSamplerSampler.register):
        (float2.uv.attribute): Deleted.
        (float3.normal.attribute): Deleted.
        * demos/webgpu/compute-boids.html:
        * demos/webgpu/hello-cube.html:
        * demos/webgpu/scripts/compute-blur.js:
        (setUpCompute):
        (createShaderCode):
        * demos/webgpu/scripts/compute-boids-compile.js:
        * demos/webgpu/scripts/hello-triangle.js:
        (async.helloTriangle):
        * demos/webgpu/textured-cube.html:

2019-09-09  Justin Fan  <justin_fan@apple.com>

        [WebGPU] Upload Babylon.js, WSL compile, and MotionMark links to demo page
        https://bugs.webkit.org/show_bug.cgi?id=201621

        Reviewed by Dean Jackson.

        Add new demos to the WebGPU demo collection.
        Ensure error alerts/divs display properly if WebGPU is not enabled.

        * demos/webgpu/babylon/oneHelmetWebGPU.html:
        * demos/webgpu/babylon/oneSphereWebGPU.html:
        * demos/webgpu/compute-blur.html:
        * demos/webgpu/compute-boids-compile.html:
        * demos/webgpu/compute-boids.html:
        * demos/webgpu/hello-cube.html:
        * demos/webgpu/hello-triangle.html:
        * demos/webgpu/index.html:
        * demos/webgpu/resources/babylon-helmet.png: Added.
        * demos/webgpu/resources/babylon-sphere.png: Added.
        * demos/webgpu/resources/motionmark.jpeg: Added.
        * demos/webgpu/resources/webkit-logo.png: Added.
        * demos/webgpu/scripts/compute-boids-compile.js:
        * demos/webgpu/textured-cube.html:

2019-09-09  Jon Lee  <jonlee@apple.com>

        Add Babylon demos
        https://bugs.webkit.org/show_bug.cgi?id=201611

        Rubber-stamped by Justin Fan.

        * demos/webgpu/babylon/LICENSE: Added.
        * demos/webgpu/babylon/babylonWebGpu.max.js: Added.
        * demos/webgpu/babylon/logo.svg: Added.
        * demos/webgpu/babylon/oneHelmetWebGPU.html: Added.
        * demos/webgpu/babylon/oneHelmetWebGPUGLSLShaders.js: Added.
        * demos/webgpu/babylon/oneHelmetWebGPUWSLShaders.js: Added.
        * demos/webgpu/babylon/oneSphereWebGPU.html: Added.
        * demos/webgpu/babylon/oneSphereWebGPUGLSLShaders.js: Added.
        * demos/webgpu/babylon/oneSphereWebGPUWSLShaders.js: Added.
        * demos/webgpu/babylon/vertexShaderGLSL1.glsl: Added.

2019-09-09  Jon Lee  <jonlee@apple.com>

        Add boids time test
        https://bugs.webkit.org/show_bug.cgi?id=201612

        Rubber-stamped by Justin Fan.

        * demos/webgpu/compute-boids-compile.html: Added.
        * demos/webgpu/scripts/compute-boids-compile.js: Added.
        * demos/webgpu/scripts/compute-boids-utils.js: Added.

2019-09-03  Justin Fan  <justin_fan@apple.com>

        [WebGPU] Add compute-boids to WebGPU demo page
        https://bugs.webkit.org/show_bug.cgi?id=201416

        Reviewed by Dean Jackson.

        Add the compute-boids demo for use with STP 91.

        * demos/webgpu/compute-boids.html: Added.
        * demos/webgpu/index.html:
        * demos/webgpu/resources/compute-boids.png: Added.

2019-08-06  Justin Fan  <justin_fan@apple.com>

        [WebGPU] Fix up demos on and add compute demo to webkit.org/demos
        https://bugs.webkit.org/show_bug.cgi?id=200454

        Reviewed by Jon Lee.

        Add the compute-blur demo.
        Ensure that WebGPU demos will work on upcoming STP release. 

        * demos/webgpu/compute-blur.html: Added.
        * demos/webgpu/css/style.css: Sync with internal demo repository stylesheet.
        (body):
        (canvas):
        (body.error img):
        (body.error input):
        (#error p):
        * demos/webgpu/hello-cube.html:
        * demos/webgpu/hello-triangle.html:
        * demos/webgpu/index.html:
        * demos/webgpu/resources/compute-blur.png: Added.
        * demos/webgpu/resources/hello-cube.png:
        * demos/webgpu/resources/textured-cube.png: Added.
        * demos/webgpu/scripts/compute-blur.js: Added.
        (async.init):
        (async.loadImage):
        (setUpCompute):
        (async.computeBlur):
        (async.setUniforms):
        (createShaderCode):
        * demos/webgpu/scripts/hello-triangle.js:
        (async.helloTriangle):
        * demos/webgpu/textured-cube.html: Renmaed from Websites/webkit.org/demos/webgpu/hello-cube.html.

2019-07-03  Jon Davis  <jond@apple.com>

        Added a domain check for validation URLs in Apple Pay demo.
        https://bugs.webkit.org/show_bug.cgi?id=199433

        Reviewed by David Kilzer.

        * demos/payment-request/merchant-validation.php:

2019-06-05  Jon Davis  <jond@apple.com>

        Fix icons positioned incorrectly when a featured image is used
        https://bugs.webkit.org/show_bug.cgi?id=198535

        Reviewed by Devin Rousso.

        * wp-content/themes/webkit/style.css:
        (.tile .background-image.loaded svg):
        (.tile .featured-image::before):

2019-06-05  Jon Davis  <jond@apple.com>

        Improve accessibility on webkit.org
        https://bugs.webkit.org/show_bug.cgi?id=198531

        Reviewed by Devin Rousso.

        * wp-content/themes/webkit/functions.php: Added menuitem ARIA role to links
        * wp-content/themes/webkit/widgets/post.php: Added aria-label to SVG icons

2019-06-04  Jon Davis  <jond@apple.com>

        Improve performance of the lazy image loader
        https://bugs.webkit.org/show_bug.cgi?id=198530

        Reviewed by Devin Rousso.

        * wp-content/themes/webkit/scripts/global.js:
        (enableScrollableTables):
        (lazyLoadImages):
        (findParentMenu): Deleted.
        (i.m.menus.m.targetMenu.targetMenuClass.indexOf): Deleted.
        (inView): Deleted.
        (): Deleted.
        (loadImage.else.img.onload): Deleted.
        (loadImage): Deleted.
        (onMovement): Deleted.
        (updateImages): Deleted.

2019-05-06  Justin Fan  <justin_fan@apple.com>

        [Web GPU] Add demos to webkit.org
        https://bugs.webkit.org/show_bug.cgi?id=196951

        Reviewed by Dean Jackson.

        Add simple triangle and spinning textured cube demos to the website.
        Add Web GPU to experimental-features.html.

        * demos/webgpu/css/style.css: Added.
        (body):
        (canvas):
        (body.error canvas):
        (h1):
        (#container):
        (select):
        (div#log):
        (body.error):
        (body.error #contents):
        (#error):
        (@media (max-width: 480px)):
        (body.error #error):
        (#error h2):
        (#error p):
        * demos/webgpu/hello-cube.html: Added.
        * demos/webgpu/hello-triangle.html: Added.
        * demos/webgpu/index.html: Added.
        * demos/webgpu/resources/circle.svg: Added.
        * demos/webgpu/resources/hello-cube.png: Added.
        * demos/webgpu/resources/hello-triangle.png: Added.
        * demos/webgpu/resources/safari-alpha.png: Added.
        * demos/webgpu/scripts/gl-matrix-min.js: Added.
        (return.n):
        (return.n.d):
        (return.):
        (return.get n.n):
        (return.n.o):
        * demos/webgpu/scripts/hello-triangle.js: Added.
        (async.helloTriangle):
        * experimental-features.html:

2019-03-28  Jon Davis  <jond@apple.com>

        Fix font family for WebKit.org
        https://bugs.webkit.org/show_bug.cgi?id=196311

        Reviewed by Myles C. Maxfield.

        * wp-content/themes/webkit/header.php: Added SF Mono loading
        * wp-content/themes/webkit/style.css:
        (html): Use Text font by default
        (h1,): Use Display font for large headings
        (.nextrouter-copy): Use Display font for routers

2019-02-21  Ryosuke Niwa  <rniwa@webkit.org>

        Codify the naming convention for fooIfExists
        https://bugs.webkit.org/show_bug.cgi?id=194930

        Reviewed by Darin Adler.

        Updating the coding style guideline after the discussion following
        https://lists.webkit.org/pipermail/webkit-dev/2013-June/025056.html

        * code-style.md:

2019-02-20  Jon Davis  <jond@apple.com>

        Added macOS Mojave builds to the WebKit Build Archives.
        https://bugs.webkit.org/show_bug.cgi?id=190908

        Reviewed by Lucas Forschler.

        * wp-content/themes/webkit/build-archives.php:

2019-02-07  Jon Davis  <jond@apple.com>

        Fixed animation positioning when homepage animation completes
        https://bugs.webkit.org/show_bug.cgi?id=194395

        Reviewed by Devin Rousso.

        * wp-content/themes/webkit/front-header.php:

2019-02-07  Jon Davis  <jond@apple.com>

        Disable the WP emoji polyfill
        https://bugs.webkit.org/show_bug.cgi?id=194394

        Reviewed by Devin Rousso.

        * wp-content/themes/webkit/functions.php:

2019-02-07  Jon Davis  <jond@apple.com>

        Fixed responsive design issues for the Contribute drop-down menu and pagination
        https://bugs.webkit.org/show_bug.cgi?id=194393

        Reviewed by Devin Rousso.

        The short viewport breakpoint styles should apply for small width
        windows as well, and pagination styles need to accommodate wrapped
        text labels.

        * wp-content/themes/webkit/style.css:
        (.pagination .page-numbers,):
        (@media only screen and (max-height: 415px) and (max-width: 920px)):
        (@media only screen and (max-height: 415px)): Deleted.

2019-02-04  Jon Davis  <jond@apple.com>

        Add demos for Intersection Observer API
        https://bugs.webkit.org/show_bug.cgi?id=194219

        Reviewed by Simon Fraser.

        * demos/intersection-observer/lazy-image-load/index.html: Added.
        * demos/intersection-observer/lazy-image-load/scripts.js: Added.
        (ImageLoader):
        (ImageLoader.prototype.findImages):
        (ImageLoader.prototype.smallURLForImage):
        (ImageLoader.prototype.largeURLForImage):
        (ImageLoader.prototype.setupObserver):
        (ImageLoader.prototype.intersectionsChanged):
        * demos/intersection-observer/lazy-image-load/style.css: Added.
        (body):
        (section):
        (header):
        (.main):
        (.main img):
        (.stories):
        (.world, .local):
        (.world):
        (.local):
        (.ad):
        (.contents):
        (.sidebar):
        (.links):
        (.main-story):
        (.main-story img):
        (.top-story):
        (.top-story img):
        (.mid-story img):
        (.link-group):
        (.link-group img):
        (.link-group ul):
        (.link-group li):
        (footer):
        (footer ul):
        (footer a):
        (.footer-col):
        * demos/intersection-observer/simple/script.js: Added.
        (addToLog):
        (clearLog):
        (stringFromRect):
        (intersectedCallback):
        * demos/intersection-observer/simple/simple-observer-iframe.html: Added.
        * demos/intersection-observer/simple/simple-observer-root-margin.html: Added.
        * demos/intersection-observer/simple/simple-observer.html: Added.
        * demos/intersection-observer/simple/styles.css: Added.
        (body):
        (.results):
        (.results button):
        (h2):
        (#logging):
        * demos/intersection-observer/triggered-animation/index.html: Added.
        * demos/intersection-observer/triggered-animation/script.js: Added.
        (AnimationManager):
        (AnimationManager.prototype.setupObserver):
        (AnimationManager.prototype.intersectionsChanged):
        * demos/intersection-observer/triggered-animation/style.css: Added.
        (body):
        (p):
        (.animation-container h1):
        (.animation-container):
        (.animation-container .box):
        (.slide.box):
        (.animation-container.visible > .slide.box):
        (.slide.animation-container div:nth-of-type(1)):
        (.slide.animation-container div:nth-of-type(2)):
        (.slide.animation-container div:nth-of-type(3)):
        (.spin):
        (.animation-container.visible .spin):
        (@keyframes spin):
        (to):
        (.animation-container.svg):
        (.animation-container.svg path):
        (.animation-container.svg.visible):
        (@keyframes stroke-move):
        (.animation-container.svg circle):
        (.animation-container.svg.visible circle):
        (.animation-container.svg circle:nth-of-type(2)):
        (.animation-container.svg circle:nth-of-type(3)):
        (.animation-container.svg circle:nth-of-type(4)):
        (.animation-container.svg circle:nth-of-type(5)):
        (@keyframes circle-scale):

2019-01-25  Jon Davis  <jond@apple.com>

        Added feature status entry for "Removed in Preview"
        https://bugs.webkit.org/show_bug.cgi?id=193794

        Reviewed by Joseph Pecoraro.

        * wp-content/themes/webkit/status.php:

2018-12-20  Jon Davis  <jond@apple.com>

        Ensure new styles are served on webkit.org.
        https://bugs.webkit.org/show_bug.cgi?id=192953

        Rubber-stamped by Devin Rousso.

        * tabicon.svg: Removed as vector icons are no longer preferred.
        * wp-content/themes/webkit/header.php: Updated stylesheet datestamp.

2018-12-20  Jon Davis  <jond@apple.com>

        Added a dark mode color scheme.
        https://bugs.webkit.org/show_bug.cgi?id=192930

        Reviewed by Timothy Hatcher.

        * .htaccess: Added convenience redirects for /features and /css-features
        * wp-content/themes/webkit/build-archives.php: Customized dark color styles for the page.
        * wp-content/themes/webkit/css-status.php: Implemented new design and dark styles support.
        * wp-content/themes/webkit/front-header.php: Added dark color styles.
        * wp-content/themes/webkit/functions.php: Added new feature status navigation menu.
        * wp-content/themes/webkit/header.php: Specify support for light and dark color schemes.
        * wp-content/themes/webkit/images/chevron-dark.svg: Added.
        * wp-content/themes/webkit/images/chevron.svg: Switch to HSL color.
        * wp-content/themes/webkit/images/filter.svg: Added.
        * wp-content/themes/webkit/images/icons.svg: Use currentColor for dark mode.
        * wp-content/themes/webkit/images/invert-lightness.svg: Added.
        * wp-content/themes/webkit/images/search.svg: Added.
        * wp-content/themes/webkit/sitemap.php: Customized dark color styles for the page.
        * wp-content/themes/webkit/status.php: Updated design and dark styles support.
        * wp-content/themes/webkit/style.css: Added dark style rules and switched to custom properties.
        (:root):
        (@media(prefers-color-scheme:dark)):
        (body):
        (a):
        (a,):
        (hr):
        (code):
        (main):
        (a[name]):
        (p > a[name]::before):
        (a[name]:hover):
        (a[name]:hover::before):
        (p:hover > a[name]::before):
        (input[type=text]):
        (input[type=submit]):
        (.screen-reader-text:focus):
        (.pagination .page-numbers,):
        (.pagination .menu-item a):
        (.pagination .page-numbers:not(.current, .dots):hover):
        (.pagination .dots,):
        (.connected.pagination .menu-item):
        (.connected.pagination .menu-item:hover a):
        (.connected.pagination .menu-item:first-child a):
        (.connected.pagination .menu-item:last-child a):
        (.connected.pagination .menu-item.current-menu-item a,):
        (.menu-feature-pages-container):
        (.nextrouter):
        (.nextrouter.previous):
        (.nextrouter:hover,):
        (.nextrouter a):
        (.nextrouter-copy):
        (.nextrouter .label):
        (.nextrouter .link):
        (.tiles):
        (.tile):
        (.tile .background-image):
        (.tile .background-image svg):
        (.tile.category-web-inspector svg):
        (.tile.category-performance svg):
        (.tile.category-javascript svg):
        (.tile.category-css svg):
        (.tile.category-standards svg):
        (.tile.category-contributing svg):
        (.tile.category-storage svg):
        (.tile.category-layout svg):
        (.tile.category-safari-technology-preview svg):
        (.tile.category-accessibility svg):
        (.tile.category-security svg):
        (.tile.category-privacy svg):
        (.tile .background-image.loaded):
        (.tile:not(.has-post-thumbnail) .background-image,):
        (.featured-tile .tile-content):
        (.background-vignette):
        (.tag-window .background-image):
        (.tag-window .background-vignette):
        (.featured-tile.tag-dark .background-vignette):
        (.featured-tile.tag-dark .tile-content):
        (.featured-tile.tag-dark .tile-content a):
        (.icon-tile .icon):
        (.icon-tile,):
        (.gray-tile):
        (.gray-tile a):
        (.amber-tile):
        (.blue-tile):
        (.twitter-tile):
        (.icon.twitter-icon):
        (pre):
        (code .keyword,):
        (code .keyword.builtin,):
        (code .keyword.type):
        (code .preprocessor):
        (code .comment):
        (code .comment .doc):
        (code .identifier):
        (code .string,):
        (code .escaped):
        (code .number,):
        (code .regex,):
        (code .attribute.value):
        (code .operator):
        (code .keyword.operator):
        (code .whitespace):
        (code .error):
        (code .doctype):
        (code .property):
        (code.xml .comment,):
        (code.xml .preprocessor .keyword):
        (code.xml .meta,):
        (code.cpp .preprocessor .identifier):
        (pre::-moz-selection,):
        (pre::selection, pre span::selection):
        (code.css .attribute,):
        (code.css .keyword):
        (code.css .number):
        (article h1,):
        (article .byline p):
        (article thead, article tfoot):
        (article tr):
        (article blockquote):
        (.post .bodycopy > p:last-child:after):
        (article div.note):
        (article .foreword):
        (article .cliptop):
        (article .clipbottom):
        (article .clipright):
        (article .clipleft):
        (article .mattewhite):
        (article .mattewhite:not(.widescreen)):
        (figure.table):
        (article figcaption):
        (article figcaption::before):
        (.table-of-contents):
        (.site-logo):
        (.feature-header:after,):
        (header nav a,):
        (header nav a:hover,):
        (.sub-menu-layer):
        (.sub-menu-layer:after):
        (.sub-menu-layer:before):
        (@media only screen and (max-width: 920px)):
        (header .menu):
        (header nav a):
        (header .menu > .menu-item > .sub-menu):
        (@media only screen and (max-width: 690px)):
        (article .scrollable):
        (@media only screen and (max-width: 600px)):
        (.table-of-contents label:after):
        (@media only screen and (max-width: 415px)):
        (article .invert-brightness,):
        (.preserve-color, video):
        (.preserve-color:hover,):
        (.nextrouter .link,):
        (.search-input):
        (.filters-toggle-button):
        (a > code): Deleted.
        (.pagination .page-numbers): Deleted.
        (.nextrouter:hover): Deleted.
        (.nextrouter.previous:hover): Deleted.
        (.icon-tile, .icon-tile a): Deleted.
        (.gray-tile, .gray-tile a): Deleted.
        (code .string, code .char): Deleted.
        (code .number, code .tag): Deleted.
        (code .regex, code .attribute): Deleted.
        (code.xml .meta, code.xml .meta .keyword): Deleted.
        (code::-moz-selection, code span::-moz-selection): Deleted.
        (code::selection, code span::selection): Deleted.
        (article h1 a): Deleted.
        (.feature-header:after): Deleted.
        (.feature.opened .feature-header:after): Deleted.
        * wp-content/themes/webkit/team.php: Customized dark color styles for the page.

2018-12-01  Simon Fraser  <simon.fraser@apple.com>

        webkit.org/css-status is broken
        https://bugs.webkit.org/show_bug.cgi?id=192278

        Reviewed by Zalan Bujtas.

        Remove a stray '='.

        * wp-content/themes/webkit/css-status.php:

2018-11-09  Jon Davis  <jond@apple.com>

        Clean-up stray whitespace in theme files
        https://bugs.webkit.org/show_bug.cgi?id=191430

        Reviewed by Dean Jackson.

        * wp-content/themes/webkit/css-status.php:
        * wp-content/themes/webkit/footer.php:
        * wp-content/themes/webkit/front-page.php:
        * wp-content/themes/webkit/includes.php:
        * wp-content/themes/webkit/nightly-start.php:
        * wp-content/themes/webkit/nightly-survey.php:
        * wp-content/themes/webkit/page.php:
        * wp-content/themes/webkit/scripts/global.js:
        * wp-content/themes/webkit/scripts/searchbuilds.js:
        (initsearch):
        (initsearch.displayError):
        * wp-content/themes/webkit/single.php:
        * wp-content/themes/webkit/sitemap.php:
        * wp-content/themes/webkit/team.php:
        * wp-content/themes/webkit/widgets/icon.php:
        * wp-content/themes/webkit/widgets/page.php:

2018-11-02  Jon Davis  <jond@apple.com>

        Follow-up fix for the webkit.org blog index page
        https://bugs.webkit.org/show_bug.cgi?id=191216

        Reviewed by Timothy Hatcher.

        * wp-content/themes/webkit/index.php:

2018-11-02  Jon Davis  <jond@apple.com>

        Improved the SVG icons to use SVG symbols
        https://bugs.webkit.org/show_bug.cgi?id=191205

        Reviewed by Timothy Hatcher.

        This change makes it far easier to add new SVG icons to the
        icons.svg sprite and provides better positioning control
        over the icons within the blog post tile frame.

        * wp-content/themes/webkit/front-page.php:
        * wp-content/themes/webkit/functions.php:
        * wp-content/themes/webkit/header.php:
        * wp-content/themes/webkit/images/icons.svg:
        * wp-content/themes/webkit/index.php:
        * wp-content/themes/webkit/loop.php:
        * wp-content/themes/webkit/style.css:
        (@supports ( -webkit-backdrop-filter: blur(10px) )):
        (footer):
        (#icons):
        (.tile .background-image):
        (.tile .background-image svg):
        (.tile.category-web-inspector svg):
        (.tile.category-performance svg):
        (.tile.category-javascript svg):
        (.tile.category-css svg):
        (.tile.category-standards svg):
        (.tile.category-contributing svg):
        (.tile.category-storage svg):
        (.tile.category-layout svg):
        (.tile.category-safari-technology-preview svg):
        (.tile.category-accessibility svg):
        (.tile.category-security svg):
        (.tile.category-privacy svg):
        (header .menu-item-has-children .label-toggle::after):
        (@media only screen and (max-width: 920px)):
        (.main-menu.label-toggle):
        (header .menu):
        (@media only screen and (max-width: 690px)):
        (@media only screen and (max-width: 415px)):
        (@media only screen and (max-height: 415px)):
        (.tile.category-web-inspector .background-image): Deleted.
        (.tile.category-performance .background-image): Deleted.
        (.tile.category-javascript .background-image): Deleted.
        (.tile.category-css .background-image): Deleted.
        (.tile.category-standards .background-image): Deleted.
        (.tile.category-contributing .background-image): Deleted.
        (.tile.category-storage .background-image): Deleted.
        (.tile.category-layout .background-image): Deleted.
        (.tile.category-safari-technology-preview .background-image): Deleted.
        (.tile.category-accessibility .background-image): Deleted.
        (.tile.tag-console .background-image,): Deleted.
        (.tile.tag-console .background-image): Deleted.
        (.tile.tag-debugger .background-image): Deleted.
        (.tile.tag-shortcuts .background-image): Deleted.
        (.tile.tag-timeline .background-image): Deleted.
        * wp-content/themes/webkit/widgets/post.php:

2018-11-01  Jon Davis  <jond@apple.com>

        Prevent homepage animation for users that prefer reduced motion
        https://bugs.webkit.org/show_bug.cgi?id=188211

        Reviewed by Timothy Hatcher.

        * wp-content/themes/webkit/front-header.php:

2018-10-25  Jon Davis  <jond@apple.com>

        Added support for "deprecated" feature status
        https://bugs.webkit.org/show_bug.cgi?id=187615

        Reviewed by Joseph Pecoraro.

        * wp-content/themes/webkit/status.php:

2018-10-12  Devin Rousso  <drousso@apple.com>

        Add a demo for WebInspector scanvas debugging.

        * demos/canvas-debugging/index.html: Added.

2018-10-08  Justin Fan  <justin_fan@apple.com>

        WebGPU: Rename old WebGPU prototype to WebMetal
        https://bugs.webkit.org/show_bug.cgi?id=190325
        <rdar://problem/44990443>

        Reviewed by Dean Jackson.

        Rename WebGPU prototype files to WebMetal in preparation for implementing the new (Oct 2018) WebGPU interface.

        * demos/webgpu/shared.js: Removed.
        * demos/webmetal/2d.html: Renamed from Websites/webkit.org/demos/webgpu/2d.html.
        * demos/webmetal/2d.jpg: Renamed from Websites/webkit.org/demos/webgpu/2d.jpg.
        * demos/webmetal/2d.js: Renamed from Websites/webkit.org/demos/webgpu/2d.js.
        (init):
        * demos/webmetal/circle.svg: Renamed from Websites/webkit.org/demos/webgpu/circle.svg.
        * demos/webmetal/cubes.html: Renamed from Websites/webkit.org/demos/webgpu/cubes.html.
        * demos/webmetal/cubes.jpg: Renamed from Websites/webkit.org/demos/webgpu/cubes.jpg.
        * demos/webmetal/cubes.js: Renamed from Websites/webkit.org/demos/webgpu/cubes.js.
        (init):
        * demos/webmetal/gl-matrix-min.js: Renamed from Websites/webkit.org/demos/webgpu/gl-matrix-min.js.
        * demos/webmetal/hello.html: Renamed from Websites/webkit.org/demos/webgpu/hello.html.
        * demos/webmetal/hello.jpg: Renamed from Websites/webkit.org/demos/webgpu/hello.jpg.
        * demos/webmetal/hello.js: Renamed from Websites/webkit.org/demos/webgpu/hello.js.
        (init):
        * demos/webmetal/index.html: Renamed from Websites/webkit.org/demos/webgpu/index.html.
        * demos/webmetal/shared.css: Renamed from Websites/webkit.org/demos/webgpu/shared.css.
        * demos/webmetal/shared.js: Added.
        (const.hasWebMetal):
        (const.checkForWebMetal):
        * demos/webmetal/simple.html: Renamed from Websites/webkit.org/demos/webgpu/simple.html.
        * demos/webmetal/simple.jpg: Renamed from Websites/webkit.org/demos/webgpu/simple.jpg.
        * demos/webmetal/simple.js: Renamed from Websites/webkit.org/demos/webgpu/simple.js.
        (init):
        * experimental-features.html:

2018-09-05  Fujii Hironori  <Hironori.Fujii@sony.com>

        Update code style guidelines for using namespace inside a namespace definition
        https://bugs.webkit.org/show_bug.cgi?id=189298

        Reviewed by Ryosuke Niwa.

        "using namespace" statements should be inside namespace definitions for
        unified source builds.

        * code-style.md(#using-position):

2018-08-31  Dean Jackson  <dino@apple.com>

        Add support for USDZ to webkit.org for a sample file
        https://bugs.webkit.org/show_bug.cgi?id=189217

        Rubber-stamped by Anders Carlsson.

        Use the accepted MIME-type for USDZ files, and provide a
        simple example file.

        * .htaccess: Serve USD with a MIME-type that we will accept.
        * demos/ar/heart.usdz: Added.

2018-07-24  Jon Davis  <jond@apple.com>

        Disable some vestibular trigger animations when prefers-reduced-motion is active.
        https://bugs.webkit.org/show_bug.cgi?id=186529

        Reviewed by Dean Jackson.

        * wp-content/themes/webkit/style.css:
        (@media (prefers-reduced-motion)): Added to honor reduced motion settings.
        (article,): Added to only use fade-in animation and prevent motion.

2018-06-20  Manuel Rego Casasnovas  <rego@igalia.com>

        [WPE] Some fixups on webkit.org page
        https://bugs.webkit.org/show_bug.cgi?id=186844

        Unreviewed as the content is not modified, only some minor fixups on the format.

        * wpe.md: Remove title as it's already provided by the website CMS.
        Avoid breaking lines at 80 chars as it's not rendered as expected.

2018-06-20  Manuel Rego Casasnovas  <rego@igalia.com>

        [WPE] Add page for webkit.org
        https://bugs.webkit.org/show_bug.cgi?id=186844

        Reviewed by Michael Catanzaro.

        * wpe.md: Added.

2018-06-14  Roy Reapor  <rreapor@apple.com>

        Use new jQuery file layout
        https://bugs.webkit.org/show_bug.cgi?id=186636

        Reviewed by Aakash Jain.

        * ajax/libs/jqueryui/jquery-ui-1.8.15.css: Removed.
        * ajax/libs/jqueryui/jquery-ui-1.8.15.min.js: Removed.

2018-06-14  Jon Davis  <jond@apple.com>

        Minor layout fix for WebKit Feature Status Page
        https://bugs.webkit.org/show_bug.cgi?id=186539

        Reviewed by Timothy Hatcher.

        * wp-content/themes/webkit/status.php: Added padding below the bottom paragraph.

2018-06-14  Roy Reapor  <rreapor@apple.com>

        jQuery UI image assets are missing on webkit.org website.
        https://bugs.webkit.org/show_bug.cgi?id=185949

        Reviewed by Aakash Jain.

        * ajax/libs/jqueryui/1.8.15/themes/base/images/ui-bg_flat_0_aaaaaa_40x100.png: Added.
        * ajax/libs/jqueryui/1.8.15/themes/base/images/ui-bg_flat_75_ffffff_40x100.png: Added.
        * ajax/libs/jqueryui/1.8.15/themes/base/images/ui-bg_glass_55_fbf9ee_1x400.png: Added.
        * ajax/libs/jqueryui/1.8.15/themes/base/images/ui-bg_glass_65_ffffff_1x400.png: Added.
        * ajax/libs/jqueryui/1.8.15/themes/base/images/ui-bg_glass_75_dadada_1x400.png: Added.
        * ajax/libs/jqueryui/1.8.15/themes/base/images/ui-bg_glass_75_e6e6e6_1x400.png: Added.
        * ajax/libs/jqueryui/1.8.15/themes/base/images/ui-bg_glass_95_fef1ec_1x400.png: Added.
        * ajax/libs/jqueryui/1.8.15/themes/base/images/ui-bg_highlight-soft_75_cccccc_1x100.png: Added.
        * ajax/libs/jqueryui/1.8.15/themes/base/images/ui-icons_222222_256x240.png: Added.
        * ajax/libs/jqueryui/1.8.15/themes/base/images/ui-icons_2e83ff_256x240.png: Added.
        * ajax/libs/jqueryui/1.8.15/themes/base/images/ui-icons_454545_256x240.png: Added.
        * ajax/libs/jqueryui/1.8.15/themes/base/images/ui-icons_888888_256x240.png: Added.
        * ajax/libs/jqueryui/1.8.15/themes/base/images/ui-icons_cd0a0a_256x240.png: Added.
        * ajax/libs/jqueryui/1.8.15/themes/base/jquery-ui.min.css: Added.
        * ajax/libs/jqueryui/1.8.15/themes/base/jquery.ui.accordion.min.css: Added.
        * ajax/libs/jqueryui/1.8.15/themes/base/jquery.ui.all.min.css: Added.
        * ajax/libs/jqueryui/1.8.15/themes/base/jquery.ui.autocomplete.min.css: Added.
        * ajax/libs/jqueryui/1.8.15/themes/base/jquery.ui.base.min.css: Added.
        * ajax/libs/jqueryui/1.8.15/themes/base/jquery.ui.button.min.css: Added.
        * ajax/libs/jqueryui/1.8.15/themes/base/jquery.ui.core.min.css: Added.
        * ajax/libs/jqueryui/1.8.15/themes/base/jquery.ui.datepicker.min.css: Added.
        * ajax/libs/jqueryui/1.8.15/themes/base/jquery.ui.dialog.min.css: Added.
        * ajax/libs/jqueryui/1.8.15/themes/base/jquery.ui.progressbar.min.css: Added.
        * ajax/libs/jqueryui/1.8.15/themes/base/jquery.ui.resizable.min.css: Added.
        * ajax/libs/jqueryui/1.8.15/themes/base/jquery.ui.selectable.min.css: Added.
        * ajax/libs/jqueryui/1.8.15/themes/base/jquery.ui.slider.min.css: Added.
        * ajax/libs/jqueryui/1.8.15/themes/base/jquery.ui.tabs.min.css: Added.
        * ajax/libs/jqueryui/1.8.15/themes/base/jquery.ui.theme.min.css: Added.
        * ajax/libs/jqueryui/1.8.15/ui/jquery-ui.min.js: Added.
        * ajax/libs/jqueryui/1.8.15/ui/jquery.effects.blind.min.js: Added.
        * ajax/libs/jqueryui/1.8.15/ui/jquery.effects.bounce.min.js: Added.
        * ajax/libs/jqueryui/1.8.15/ui/jquery.effects.clip.min.js: Added.
        * ajax/libs/jqueryui/1.8.15/ui/jquery.effects.core.min.js: Added.
        * ajax/libs/jqueryui/1.8.15/ui/jquery.effects.drop.min.js: Added.
        * ajax/libs/jqueryui/1.8.15/ui/jquery.effects.explode.min.js: Added.
        * ajax/libs/jqueryui/1.8.15/ui/jquery.effects.fade.min.js: Added.
        * ajax/libs/jqueryui/1.8.15/ui/jquery.effects.fold.min.js: Added.
        * ajax/libs/jqueryui/1.8.15/ui/jquery.effects.highlight.min.js: Added.
        * ajax/libs/jqueryui/1.8.15/ui/jquery.effects.pulsate.min.js: Added.
        * ajax/libs/jqueryui/1.8.15/ui/jquery.effects.scale.min.js: Added.
        * ajax/libs/jqueryui/1.8.15/ui/jquery.effects.shake.min.js: Added.
        * ajax/libs/jqueryui/1.8.15/ui/jquery.effects.slide.min.js: Added.
        * ajax/libs/jqueryui/1.8.15/ui/jquery.effects.transfer.min.js: Added.
        * ajax/libs/jqueryui/1.8.15/ui/jquery.ui.accordion.min.js: Added.
        * ajax/libs/jqueryui/1.8.15/ui/jquery.ui.autocomplete.min.js: Added.
        * ajax/libs/jqueryui/1.8.15/ui/jquery.ui.button.min.js: Added.
        * ajax/libs/jqueryui/1.8.15/ui/jquery.ui.core.min.js: Added.
        * ajax/libs/jqueryui/1.8.15/ui/jquery.ui.datepicker.min.js: Added.
        * ajax/libs/jqueryui/1.8.15/ui/jquery.ui.dialog.min.js: Added.
        * ajax/libs/jqueryui/1.8.15/ui/jquery.ui.draggable.min.js: Added.
        * ajax/libs/jqueryui/1.8.15/ui/jquery.ui.droppable.min.js: Added.
        * ajax/libs/jqueryui/1.8.15/ui/jquery.ui.mouse.min.js: Added.
        * ajax/libs/jqueryui/1.8.15/ui/jquery.ui.position.min.js: Added.
        * ajax/libs/jqueryui/1.8.15/ui/jquery.ui.progressbar.min.js: Added.
        * ajax/libs/jqueryui/1.8.15/ui/jquery.ui.resizable.min.js: Added.
        * ajax/libs/jqueryui/1.8.15/ui/jquery.ui.selectable.min.js: Added.
        * ajax/libs/jqueryui/1.8.15/ui/jquery.ui.slider.min.js: Added.
        * ajax/libs/jqueryui/1.8.15/ui/jquery.ui.sortable.min.js: Added.
        * ajax/libs/jqueryui/1.8.15/ui/jquery.ui.tabs.min.js: Added.
        * ajax/libs/jqueryui/1.8.15/ui/jquery.ui.widget.min.js: Added.

2018-06-05  Antoine Quint  <graouts@apple.com>

        [Web Animations] Only expose CSSAnimation and CSSTransition if the WebAnimationsCSSIntegration runtime flag is enabled
        https://bugs.webkit.org/show_bug.cgi?id=186305

        Reviewed by Dean Jackson.

        Add a test for the WebAnimationsCSSIntegration runtime flag.

        * experimental-features.html:

2018-06-01  Dean Jackson  <dino@apple.com>

        Add a demo for passive touch listeners.

        * demos/passive-touches/index.html: Added.

2018-05-23  Roy Reapor  <rreapor@apple.com>

        Remove Source Sans Pro from WebKit website
        https://bugs.webkit.org/show_bug.cgi?id=185871

        Reviewed by Aakash Jain.

        * demos/spring/index.html:

2018-05-22  Roy Reapor  <rreapor@apple.com>

        Test infrastructure websites should use jQuery and jQuery UI hosted on webkit.org
        https://bugs.webkit.org/show_bug.cgi?id=185788

        Reviewed by Aakash Jain.

        * ajax/libs/jquery/jquery-1.6.2.min.js: Added.
        * ajax/libs/jqueryui: Added.
        * ajax/libs/jqueryui/jquery-ui-1.8.15.css: Added.

2018-05-22  Wenson Hsieh  <wenson_hsieh@apple.com>

        Add some additional demo content to webkit.org
        https://bugs.webkit.org/show_bug.cgi?id=185892

        Reviewed by Tim Horton.

        Adds three demo pages, and some placeholder assets.

        * demos/extrazoom/article/constitution.jpg: Added.
        * demos/extrazoom/article/index.html: Added.
        * demos/extrazoom/login/index.html: Added.
        * demos/extrazoom/login/webkit.svg: Added.
        * demos/extrazoom/recipes/butterchicken.jpg: Added.
        * demos/extrazoom/recipes/chowder.jpg: Added.
        * demos/extrazoom/recipes/hummus.jpg: Added.
        * demos/extrazoom/recipes/index.html: Added.
        * demos/extrazoom/recipes/padthai.jpg: Added.
        * demos/extrazoom/recipes/pizza.jpg: Added.
        * demos/extrazoom/recipes/salmon.jpg: Added.
        * demos/extrazoom/recipes/steak.jpg: Added.
        * demos/extrazoom/recipes/tacos.jpg: Added.

2018-04-26  Ross Kirsling  <ross.kirsling@sony.com>

        Update code style guidelines to mention braced initialization style.
        https://bugs.webkit.org/show_bug.cgi?id=185053

        Reviewed by Ryosuke Niwa.

        * code-style.md:
        Add a clause to the Spacing section about braced initialization.
        (Also, fix an erroneous element ID on a neighboring line.)

2018-04-04  Andy Estes  <aestes@apple.com>

        Unreviewed. Correct the path to merchant-validation-config.php.

        * demos/payment-request/merchant-validation.php:

2018-04-04  Andy Estes  <aestes@apple.com>

        Add Payment Request demo content.

        Rubber-stamped by Zalan Bujtas.

        * demos/payment-request/demo.js: Added.
        (string_appeared_here.async.applePayButtonClicked):
        * demos/payment-request/index.html: Added.
        * demos/payment-request/merchant-validation.php: Added.
        * demos/payment-request/squirrelfish.png: Added.
        * demos/payment-request/style.css: Added.
        (@supports (-webkit-appearance: -apple-pay-button)):
        (.apple-pay-not-supported::before):
        (.hidden):
        (#black-buttons > .apple-pay-button):
        (#white-buttons > .apple-pay-button):
        (#demo):
        (#description):

2018-03-21  Jon Davis  <jond@apple.com>

        Add support for an overridable byline in blog posts
        https://bugs.webkit.org/show_bug.cgi?id=183799

        Reviewed by Timothy Hatcher.

        * wp-content/themes/webkit/functions.php:

2018-02-20  Jon Davis  <jond@apple.com>

        Add widescreen layout class for the Downloads page
        https://bugs.webkit.org/show_bug.cgi?id=182948

        Reviewed by Alexey Proskuryakov.

        * wp-content/themes/webkit/downloads.php: Added .widescreen for full-width layout.

2018-02-13  Jon Davis  <jond@apple.com>

        Added a redirect for /nightly to /downloads/.
        https://bugs.webkit.org/show_bug.cgi?id=182743
        <rdar://problem/35126697>

        Reviewed by Lucas Forschler.

        * .htaccess:

2018-01-24  Aakash Jain  <aakash_jain@apple.com>

        Update code style guidelines for Python
        https://bugs.webkit.org/show_bug.cgi?id=179387

        Rubber-stamped by Alexey Proskuryakov.

        * code-style.md:

2017-12-11  Dean Jackson  <dino@apple.com>

        Add a runtime feature flag for ImageBitmap and OffscreenCanvas
        https://bugs.webkit.org/show_bug.cgi?id=180652
        <rdar://problem/35969611>

        Reviewed by Antoine Quint.

        Simple test to validate if these interfaces are enabled.

        * experimental-features.html:

2017-11-28  Dean Jackson  <dino@apple.com>

        Include gl-matrix directly since github doesn't serve the correct mime type
        https://bugs.webkit.org/show_bug.cgi?id=180102
        <rdar://problem/35301622>

        Reviewed by Antoine Quint.

        * demos/webgpu/cubes.html:
        * demos/webgpu/gl-matrix-min.js: Added.
        * demos/webgpu/simple.html:

2017-11-13  Jon Davis  <jond@apple.com>

        Update safe area CSS for webkit.org
        https://bugs.webkit.org/show_bug.cgi?id=179615

        Reviewed by Alexey Proskuryakov.

        * wp-content/themes/webkit/style.css:
        (@media only screen and (max-height: 415px)):
        (@supports(padding:max(0px))):

2017-11-13  Jon Davis  <jond@apple.com>

        Add a new landing page design and site-wide design detail updates for webkit.org
        https://bugs.webkit.org/show_bug.cgi?id=179558

        Reviewed by Alexey Proskuryakov.

        * wp-content/themes/webkit/404.php: Removed unnecessary prefixed CSS.
        * wp-content/themes/webkit/444.php: Removed unnecessary prefixed CSS.
        * wp-content/themes/webkit/css-status.php: Removed unnecessary prefixed CSS.
        * wp-content/themes/webkit/footer.php: Added new page wrapper container.
        * wp-content/themes/webkit/front-header.php: Redesigned landing hero.
        * wp-content/themes/webkit/functions.php: Added support for configurable non-breaking words.
        * wp-content/themes/webkit/header.php: Added viewport-fit, changed web font, changed logo title.
        * wp-content/themes/webkit/images/chevron.svg: Added.
        * wp-content/themes/webkit/images/circular.svg: Added.
        * wp-content/themes/webkit/images/compass.svg: Added.
        * wp-content/themes/webkit/images/download-white.svg: Added.
        * wp-content/themes/webkit/images/template.svg: Added.
        * wp-content/themes/webkit/loop.php: Updated "read more" link presentation.
        * wp-content/themes/webkit/nightly-start.php: Adjusted header background colors.
        * wp-content/themes/webkit/nightly-survey.php: Adjusted header background colors.
        * wp-content/themes/webkit/nightly.php: Adjusted header background colors.
        * wp-content/themes/webkit/page.php: Page clean up.
        * wp-content/themes/webkit/single.php: Updated "read more" link presentation.
        * wp-content/themes/webkit/status.php: Removed unnecessary prefixed CSS, improved page title.
        * wp-content/themes/webkit/style.css: Redesigned.
        (html):
        (body):
        (strong):
        (em):
        (code):
        (main):
        (h1,):
        (input[type=text]):
        (input[type=submit]):
        (header):
        (.home header):
        (@supports ( -webkit-backdrop-filter: blur(10px) )):
        (.sub-menu-layer):
        (.nextrouter .link,):
        (.pagination):
        (.pagination::after):
        (.pagination .page-numbers):
        (.pagination .dots,):
        (.pagination .next-button):
        (.nextrouter):
        (.nextrouter:hover):
        (.nextrouter.previous):
        (.nextrouter.previous:hover):
        (.nextrouter .bodycopy):
        (.nextrouter a):
        (.nextrouter a:hover):
        (.nextrouter-copy):
        (.nextrouter .label):
        (.nextrouter .title):
        (.nextrouter .link):
        (.nextrouter a:hover .link):
        (footer):
        (.tiles):
        (.tile):
        (.third-tile):
        (.two-thirds-tile):
        (.tile .background-image):
        (.tile .background-image.has-featured-image):
        (.tile .featured-image):
        (.tile:not(.has-post-thumbnail) .background-image,):
        (.tile h1):
        (.tile h2):
        (.tile .summary,):
        (pre):
        (article):
        (article::after):
        (article h1):
        (article h2):
        (article h3):
        (article h4):
        (article h5):
        (article h6):
        (article h2 + h3,):
        (article figcaption):
        (article figcaption::before):
        (.table-of-contents):
        (article .table-of-contents label):
        (.table-of-contents ul):
        (.table-of-contents ul li):
        (.table-of-contents ul li > ul):
        (.site-logo):
        (footer nav):
        (header nav li):
        (header nav a,):
        (header .menu-item-has-children .label-toggle::after):
        (header .menu-item):
        (@media only screen and (max-width: 1180px)):
        (article .byline):
        (@media only screen and (max-width: 920px)):
        (.main-menu.label-toggle):
        (header .menu):
        (header nav a):
        (header .menu-main-menu-container >  ul > li):
        (header .sub-menu-layer):
        (@media only screen and (max-width: 690px)):
        (.third-tile,):
        (@media only screen and (max-width: 600px)):
        (.table-of-contents label:after):
        (@media only screen and (max-width: 415px)):
        (@media only screen and (max-height: 415px)):
        (@supports(padding:max(0px))):
        (header .menu .menu-item > .sub-menu):
        (.sub-menu-layer .menu-item:first-child,):
        (#template):
        (#compass):
        (.tile .featured-image,): Deleted.
        (.site-logo .tagline): Deleted.
        (.timeline): Deleted.
        (.timeline:after): Deleted.
        (.timeline *): Deleted.
        (.timeline:before): Deleted.
        (.timeline > li): Deleted.
        (.timeline > li:before): Deleted.
        (.timeline .content): Deleted.
        (.timeline figure): Deleted.
        (.timeline .time): Deleted.
        (.timeline h2, .timeline h3): Deleted.
        (.timeline .time::before): Deleted.
        (.timeline img): Deleted.
        (@media (min-width: 900px)): Deleted.
        (.timeline > li.force-clear): Deleted.
        (.timeline > li:nth-child(odd)): Deleted.
        (.timeline > li:nth-child(even)): Deleted.
        (.timeline > li:nth-child(2),): Deleted.
        (.timeline li .time): Deleted.
        (.timeline li:nth-child(odd) .time): Deleted.
        (.timeline li:nth-child(even) .time): Deleted.
        (.timeline li:nth-child(even) .time::before): Deleted.
        (.timeline > li:nth-child(even):before): Deleted.
        (@media (max-width: 900px)): Deleted.
        (.timeline li .time::before): Deleted.
        (.hero .logo,): Deleted.
        (.home .hero): Deleted.
        (.home.admin-bar .hero): Deleted.
        (@media only screen and (max-width: 320px)): Deleted.
        * wp-content/themes/webkit/widgets/post.php: Updated "read more" link presentation.

2017-10-30  Tim Horton  <timothy_horton@apple.com>

        Update safe area inset demo pages to use env()
        https://bugs.webkit.org/show_bug.cgi?id=179041

        Reviewed by Simon Fraser.

        * demos/safe-area-insets/1-default.html:
        * demos/safe-area-insets/2-viewport-fit.html:
        * demos/safe-area-insets/3-safe-area-constants.html:
        * demos/safe-area-insets/4-min-max.html:
        * demos/safe-area-insets/safe-areas.html:
        Update to use env() instead of constant(), but keep constant() around
        for backwards-compatibility.

        Adjust the colors on the safe areas test page to look a little less holiday-like.

2017-10-16  Daniel Bates  <dabates@apple.com>

        No nightlies listed on nightly.webkit.org when using shipping Safari on macOS Sierra and OS X El Capitan
        https://bugs.webkit.org/show_bug.cgi?id=178372

        Reviewed by Tim Horton.

        The Build Archive page depends on the collections (e.g. HTMLCollection) being
        iterable so as to support iteration using ES6 for-of loop. Such support postdates
        the version of WebKit shipped in macOS Sierra and OS X El Capitan. We should
        make <https://webkit.org/build-archives/> work for these OSes since we still publish
        nightlies for them.

        * wp-content/themes/webkit/build-archives.php: Use Array.prototype.slice() to
        convert the HTMLCollection to an array that can be iterated using a ES6 for-of loop.

2017-10-04  Megan Gardner  <megan_gardner@apple.com>

        Update Webkit Style webpage to include Obj-C blocks
        https://bugs.webkit.org/show_bug.cgi?id=177906

        Reviewed by Tim Horton.

        * code-style.md:

2017-10-02  Jon Davis  <jond@apple.com>

        Add a WebKit Build Archives page
        https://bugs.webkit.org/show_bug.cgi?id=177654

        Reviewed by Alexey Proskuryakov.

        * wp-content/themes/webkit/build-archives.php: Added.

2017-09-22  Timothy Horton  <timothy_horton@apple.com>

        Update some links in demos

        * demos/safe-area-insets/1-default.html:
        * demos/safe-area-insets/2-viewport-fit.html:
        * demos/safe-area-insets/3-safe-area-constants.html:
        * demos/safe-area-insets/4-min-max.html:

2017-09-21  Tim Horton  <timothy_horton@apple.com>

        Add some blog post resources
        https://bugs.webkit.org/show_bug.cgi?id=177333

        Reviewed by Sam Weinig.

        * demos/safe-area-insets/1-default.html: Added.
        * demos/safe-area-insets/2-viewport-fit.html: Added.
        * demos/safe-area-insets/3-safe-area-constants.html: Added.
        * demos/safe-area-insets/4-min-max.html: Added.
        * demos/safe-area-insets/safe-areas.html: Added.
        * demos/safe-area-insets/style.css: Added.

2017-08-21  Ross Kirsling  <ross.kirsling@sony.com>

        Add Sony to domain affiliations on team page
        https://bugs.webkit.org/show_bug.cgi?id=175806

        Reviewed by Alex Christensen.

        * wp-content/themes/webkit/team.php:

2017-08-11  Filip Pizlo  <fpizlo@apple.com>

        Caging shouldn't have to use a patchpoint for adding
        https://bugs.webkit.org/show_bug.cgi?id=175483

        Reviewed by Mark Lam.

        Write documentation for the new Opaque opcode.

        * docs/b3/intermediate-representation.html:

2017-08-07  Jon Davis  <jond@apple.com>

        Fixed superscript rendering for blog posts
        https://bugs.webkit.org/show_bug.cgi?id=175285

        Reviewed by Filip Pizlo.

        * wp-content/themes/webkit/style.css:
        (sup): Added.

2017-08-06  James Craig  <jcraig@apple.com>

        Update prefers-reduced-motion demos to link back to blog post
        https://bugs.webkit.org/show_bug.cgi?id=175251

        Unreviewed, added some cross links to older demo files.

        * blog-files/prefers-reduced-motion/axi.htm:
        * blog-files/prefers-reduced-motion/prm.htm:

2017-08-04  Jon Davis  <jond@apple.com>

        Fixed loading feature status page queries and anchor link URLs
        https://bugs.webkit.org/show_bug.cgi?id=175156

        Reviewed by Simon Fraser.

        * wp-content/themes/webkit/status.php:

2017-07-26  Frederic Wang  <fwang@igalia.com>

        Unreviewed, minor adjustments to the previous demo.

        * demos/frames/index.html: Added. Index page for the list of demos.
        * demos/frames/sandboxing/index.html: Minor fixes.

2017-07-26  Frederic Wang  <fwang@igalia.com>

        Unreviewed, add demos (frame sandboxing and scrolling) for a blog post.

        * demos/frames/sandboxing/am-i-sandboxed.html: Added.
        * demos/frames/sandboxing/framebusting-success.html: Added.
        * demos/frames/sandboxing/framebusting-without-user-activation.html: Added.
        * demos/frames/sandboxing/index.html: Added.
        * demos/frames/scrollable-iframes.html: Added.
        * demos/frames/scrollingElement.html: Added.

2017-07-20  Jiewen Tan  <jiewen_tan@apple.com>

        Unreviewed, add the final demo page for a WebCrypto API blog post

        * demos/webcrypto/pbkdf2.html: Added.

2017-07-20  Jiewen Tan  <jiewen_tan@apple.com>

        Unreviewed, add yet another demo page for a WebCrypto API blog post

        * demos/webcrypto/aes-gcm.html:
        * demos/webcrypto/alice.png: Added.
        * demos/webcrypto/bob.png: Added.
        * demos/webcrypto/ecdh.html: Added.

2017-07-20  Jiewen Tan  <jiewen_tan@apple.com>

        Unreviewed, add another demo page for a WebCrypto API blog post

        * demos/webcrypto/aes-gcm.html: Added.
        * demos/webcrypto/asynchronous-execution.html:
        * demos/webcrypto/common.js: Added.

2017-07-19  Jiewen Tan  <jiewen_tan@apple.com>

        Unreviewed, add a demo page for a WebCrypto API blog post

        * demos/webcrypto/asynchronous-execution-worker.js: Added.
        * demos/webcrypto/asynchronous-execution.html: Added.

2017-06-30  Jon Lee  <jonlee@apple.com>

        Add a WebRTC example for a blog post
        https://bugs.webkit.org/show_bug.cgi?id=174049

        Reviewed by Youenn Fablet.

        Example does a typical WebRTC video call, but uses canvas to do some image effects.
        Image effects will last for 30 seconds.
        After that time, the video stream is directly sent.
        This illustrates using RTCPeerConnection, replaceTrack and canvas capture.

        * blog-files/webrtc/pc-with-effects/LICENSE: Added.
        * blog-files/webrtc/pc-with-effects/glfx.js: Added.
        * blog-files/webrtc/pc-with-effects/index.html: Added.
        * blog-files/webrtc/pc-with-effects/main.css: Added.
        * blog-files/webrtc/pc-with-effects/main.js: Added.

2017-06-28  Saam Barati  <sbarati@apple.com>

        Add a Object rest/spread test to the experimental features test page
        https://bugs.webkit.org/show_bug.cgi?id=173947

        Rubber stamped by Dean Jackson.

        * experimental-features.html:

2017-06-07  Jon Davis  <jond@apple.com>

        Update the design of the WebKit Feature Status page
        https://bugs.webkit.org/show_bug.cgi?id=173036

        Reviewed by Simon Fraser.

        * wp-content/themes/webkit/functions.php: Fixed a bad function call.
        * wp-content/themes/webkit/status.php: Implemented redesign with saved search.
        * wp-content/themes/webkit/style.css:
        (.feature-header:after):
        (@media only screen and (max-width: 920px)):
        (@media only screen and (max-width: 600px)):
        (.feature-filters): Deleted.
        (.feature-filters.opened): Deleted.
        (.feature-filters:after): Deleted.
        (.feature-filters.opened:after): Deleted.

2017-06-06  Joseph Pecoraro  <pecoraro@apple.com>

        Add a WebGPU test to the experimental features test page
        https://bugs.webkit.org/show_bug.cgi?id=172953

        Reviewed by Darin Adler.

        * experimental-features.html:

2017-06-06  Joseph Pecoraro  <pecoraro@apple.com>

        Move Resource Timing / User Timing from experimental features into main preferences
        https://bugs.webkit.org/show_bug.cgi?id=172950

        Reviewed by Darin Adler.

        * experimental-features.html:
        Remove no longer experimental features.

2017-06-02  Filip Pizlo  <fpizlo@apple.com>

        Atomics.load and Atomics.store need to be fully fenced
        https://bugs.webkit.org/show_bug.cgi?id=172844

        Reviewed by Keith Miller.

        Update documentation to say that the canonical way to do fully fenced loads and stores is
        AtomicXchgAdd(0, ptr) and AtomicXchg(value, ptr), respectively.

        * docs/b3/intermediate-representation.html:

2017-05-31  Jon Davis  <jond@apple.com>

        Reduce Safari Technology Preview Release Notes posts shown on homepage
        https://bugs.webkit.org/show_bug.cgi?id=172364

        Reviewed by Daniel Bates.

        * wp-content/themes/webkit/functions.php: Load some extra posts.
        * wp-content/themes/webkit/widgets/post.php: Show STP blog posts when it is the current featured post.

2017-05-18  Jon Davis  <jond@apple.com>

        Add an Accessibility icon to webkit.org
        https://bugs.webkit.org/show_bug.cgi?id=172298

        Reviewed by Alexey Proskuryakov.

        * wp-content/themes/webkit/images/icons.svg: Added accessibility icon to the sprite.
        * wp-content/themes/webkit/style.css: New rule to use the accessibility icon from the icons sprite.
        (.tile.category-accessibility .background-image):

2017-05-15  James Craig  <jcraig@apple.com>

        AX: Inaccessible content on webkit.org main page
        https://bugs.webkit.org/show_bug.cgi?id=172106

        Reviewed by Joseph Pecoraro.

        * wp-content/themes/webkit/widgets/icon.php: Resolved link title.
        * wp-content/themes/webkit/widgets/post.php: Resolved link title.
        * wp-content/themes/webkit/widgets/twitter.php: Resolved link titles. Suppressed unlabeled images with alt="".

2017-05-14  James Craig  <jcraig@apple.com>

        Upload poster images and working captioned video
        https://bugs.webkit.org/show_bug.cgi?id=172102

        Unreviewed. More resources for prefers-reduced-motion post.

        * blog-files/prefers-reduced-motion/axi.htm: Added.
        * blog-files/prefers-reduced-motion/axi.png: Removed.
        * blog-files/prefers-reduced-motion/posters: Added.
        * blog-files/prefers-reduced-motion/posters/apple_env_load.jpg: Added.
        * blog-files/prefers-reduced-motion/posters/apple_env_planeshift.jpg: Added.
        * blog-files/prefers-reduced-motion/posters/apple_ios10.jpg: Added.
        * blog-files/prefers-reduced-motion/posters/apple_shoot.jpg: Added.
        * blog-files/prefers-reduced-motion/posters/apple_shoot_reduced.jpg: Added.
        * blog-files/prefers-reduced-motion/posters/apple_sierra.jpg: Added.
        * blog-files/prefers-reduced-motion/posters/apple_sierra_reduced.jpg: Added.
        * blog-files/prefers-reduced-motion/posters/axi.jpg: Added.
        * blog-files/prefers-reduced-motion/posters/viljami.jpg: Added.
        * blog-files/prefers-reduced-motion/prm.htm: Link to axi.htm video demo.

2017-05-14  James Craig  <jcraig@apple.com>

        AX: All the articles on the WebKit blog are called "Clickable Link" by VoiceOver
        https://bugs.webkit.org/show_bug.cgi?id=172096
        <rdar://problem/31624323>

        Unreviewed. Fixing broken link titles for screen readers.

        * wp-content/themes/webkit/loop.php: Adding relevant link label for accessibility.

2017-05-08  James Craig  <jcraig@apple.com>

        More demo files for prefers-reduced-motion post
        https://bugs.webkit.org/show_bug.cgi?id=170663

        Unreviewed.

        * blog-files/prefers-reduced-motion/jaws.gif: Added.
        * blog-files/prefers-reduced-motion/jaws.jpg: Added.
        * blog-files/prefers-reduced-motion/prm.htm: New animated GIF example.

2017-04-24  James Craig  <jcraig@apple.com>

        Upload demo files for prefers-reduced-motion post
        https://bugs.webkit.org/show_bug.cgi?id=170663

        Rubber stamped by Jon Davis.

        * blog-files/prefers-reduced-motion: Added.
        * blog-files/prefers-reduced-motion/axi.png: Added.
        * blog-files/prefers-reduced-motion/prm.htm: Added.

2017-04-18  Jon Davis  <jond@apple.com>

        Images in WebKit.org blog article are stretched out
        https://bugs.webkit.org/show_bug.cgi?id=169208

        Reviewed by Michael Catanzaro.

        * wp-content/themes/webkit/style.css:
        (article figure > img):

2017-04-13  JF Bastien  <jfbastien@apple.com>

        WebAssembly: manage memory better
        https://bugs.webkit.org/show_bug.cgi?id=170628

        Reviewed by Keith Miller, Michael Saboff.

        * docs/b3/intermediate-representation.html: typos

2017-04-08  Simon Fraser  <simon.fraser@apple.com>

        Update the css-status page to handle changes in CSSProperties.json.

        Change the page structure to allow the left sidebar to use sticky positioning.

        "Done" -> "Supported".

        Save the search in the URL.

        Other formatting changes.

        * wp-content/themes/webkit/css-status.php:

2017-04-06  Dean Jackson  <dino@apple.com>

        Fix broken link.

        * demos/webgpu/index.html:

2017-04-06  Jon Davis  <jond@apple.com>

        Updates feature status for recently shipped features
        https://bugs.webkit.org/show_bug.cgi?id=170359

        Reviewed by Brian Burg.

        Added styles for "Supported" status.

        * wp-content/themes/webkit/status.php:

2017-04-04  Dean Jackson  <dino@apple.com>

        Unreviewed. Add details on how to enable the experimental feature.

        * demos/webgpu/index.html:

2017-04-03  Dean Jackson  <dino@apple.com>

        Unreviewed. More WebGPU demos.

        * demos/webgpu/2d.jpg: Added.
        * demos/webgpu/2d.js:
        * demos/webgpu/circle.svg: Added.
        * demos/webgpu/cubes.jpg: Added.
        * demos/webgpu/hello.html: Added.
        * demos/webgpu/hello.jpg: Added.
        * demos/webgpu/hello.js: Copied from Websites/webkit.org/demos/webgpu/2d.js.
        (init):
        (render):
        * demos/webgpu/index.html: Added.
        * demos/webgpu/simple.jpg: Added.

2017-03-31  Dean Jackson  <dino@apple.com>

        Unreviewed. Add some WebGPU examples.

        * demos/webgpu/2d.html: Added.
        * demos/webgpu/2d.js: Added.
        * demos/webgpu/cubes.html: Added.
        * demos/webgpu/cubes.js: Added.
        * demos/webgpu/shared.css: Added.
        * demos/webgpu/shared.js: Added.
        * demos/webgpu/simple.html: Added.
        * demos/webgpu/simple.js: Added.

2017-03-11  Jon Davis  <jond@apple.com>

        Add Swift syntax highlighting to webkit.org
        https://bugs.webkit.org/show_bug.cgi?id=163672

        Reviewed by Matt Baker.

        * wp-content/plugins/hyperlight/hyperlight/languages/swift.php: Added.

2017-03-10  Jon Davis  <jond@apple.com>

        Switch back to the Twitter API for the Tweet widget
        https://bugs.webkit.org/show_bug.cgi?id=168749

        Reviewed by Lucas Forschler.

        Updates the Twitter widget tile implementation to prefer the Twitter API to populate tweets
        displayed through the widget. If the API fails for any reason, it falls back to using the
        Tweet listener for updated tweets.

        The Twitter API provides the benefit of embedding media and being able to display the full
        URLs rather than Twitter-shortened URLs.

        * wp-content/plugins/tweet-listener.php:
        * wp-content/themes/webkit/style.css:
        (.twitter-tile .tile-content):
        (.twitter-tile.text-only):
        (.twitter-tile .media):
        (.twitter-tile img):
        * wp-content/themes/webkit/widgets/twitter.php:

2017-03-04  Filip Pizlo  <fpizlo@apple.com>

        B3 should have comprehensive support for atomic operations
        https://bugs.webkit.org/show_bug.cgi?id=162349

        Reviewed by Keith Miller.

        Document the new opcodes!

        * docs/b3/intermediate-representation.html:

2017-03-09  Jon Davis  <jond@apple.com>

        Prevent HTML in rich link previews
        https://bugs.webkit.org/show_bug.cgi?id=169435

        Reviewed by Tim Horton.

        * wp-content/plugins/social-meta.php:

2017-03-03  Manuel Rego Casasnovas  <rego@igalia.com>

        Unreviewed, minor updates on CSS Grid Layout examples.

        * demos/css-grid/index.html:
        * demos/css-grid/responsive-grid.html:

2017-02-27  Simon Fraser  <simon.fraser@apple.com>

        Add css-status page on webkit.org
        https://bugs.webkit.org/show_bug.cgi?id=168921

        Reviewed by Sam Weinig.

        Add a page that shows the status of CSS properties and values, scraped from Source/WebCore/css/CSSProperties.json.

        This is modeled after the feature status page. Properties can be filtered by status
        and the spec they belong to.

        * wp-content/themes/webkit/css-status.php: Added.

2017-02-23  Joseph Pecoraro  <pecoraro@apple.com>

        [Resource Timing] Add Experimental Feature Flag
        https://bugs.webkit.org/show_bug.cgi?id=167147

        Reviewed by Ryosuke Niwa.

        * experimental-features.html:
        Test for Resource Timing.

2017-02-23  Alex Christensen  <achristensen@webkit.org>

        Add WebRTC to experimental-features.html
        https://bugs.webkit.org/show_bug.cgi?id=168757

        Reviewed by Tim Horton.

        * experimental-features.html:

2017-02-23  Jon Davis  <jond@apple.com>

        Fixed saving survey data
        https://bugs.webkit.org/show_bug.cgi?id=168730

        Reviewed by Joseph Pecoraro.

        * wp-content/themes/webkit/functions.php:

2017-02-20  Manuel Rego Casasnovas  <rego@igalia.com>

        Unreviewed, add CSS Grid Layout examples for a blog post.

        * demos/css-grid/index.html: Added.
        * demos/css-grid/responsive-grid.html: Added.

2017-02-06  Jon Davis  <jond@apple.com>

        Add a survey to learn how people use WebKit Nightly builds
        https://bugs.webkit.org/show_bug.cgi?id=167748

        Reviewed by Joseph Pecoraro.

        * wp-content/themes/webkit/functions.php:
        * wp-content/themes/webkit/nightly-start.php:
        * wp-content/themes/webkit/nightly-survey.php: Added.
        * wp-content/themes/webkit/survey.json: Added.

2017-01-28  Yoav Weiss  <yoav@yoav.ws>

        Add Link Preload as an off-by-default experimental feature menu item.
        https://bugs.webkit.org/show_bug.cgi?id=167201

        Reviewed by Ryosuke Niwa.

        * experimental-features.html: Added Link Preload.

2017-01-28  Joseph Pecoraro  <pecoraro@apple.com>

        Add User Timing Experimental Feature
        https://bugs.webkit.org/show_bug.cgi?id=167542
        <rdar://problem/22746307>

        Reviewed by Ryosuke Niwa.

        * experimental-features.html:

2017-01-27  Dean Jackson  <dino@apple.com>

        Add a simple demo for Touch stylus events
        https://bugs.webkit.org/show_bug.cgi?id=167534

        Reviewed by Simon Fraser.

        * demos/touch/stylus.html: Added.

2017-01-27  Wenson Hsieh  <wenson_hsieh@apple.com>

        Unreviewed, update scroll snapping demos to use current Module 1 spec

        * demos/scroll-snap/index.html:

        Adopt the new CSS properties scroll-snap-type and scroll-snap-align.

2017-01-26  Wenson Hsieh  <wenson_hsieh@apple.com>

        Unreviewed, add a demo page for an input events blog post

        * demos/input-events/index.html: Added.

2017-01-20  Antoine Quint  <graouts@apple.com>

        Web Animations should be off by default and enabled as an experimental feature
        https://bugs.webkit.org/show_bug.cgi?id=167115
        <rdar://problem/30048963>

        Reviewed by Joseph Pecoraro.

        Add a test for Web Animations feature detection.

        * experimental-features.html:

2017-01-19  Joseph Pecoraro  <pecoraro@apple.com>

        Include SubtleCrypto test on experimental-features test page
        https://bugs.webkit.org/show_bug.cgi?id=167226

        Reviewed by Yusuke Suzuki.

        * experimental-features.html:
        Add a test for SubtleCrypto and make the test resilient against exceptions.

2017-01-19  Timothy Hatcher  <timothy@hatcher.name>

        Add Tesla to the domain associations on the team page
        https://bugs.webkit.org/show_bug.cgi?id=167202

        Reviewed by Brian Burg.

        * wp-content/themes/webkit/team.php:

2016-12-22  Keith Miller  <keith_miller@apple.com>

        Add BitOr for floating points to B3
        https://bugs.webkit.org/show_bug.cgi?id=166446

        Reviewed by Saam Barati.

        Update docs to indicate it's cool to use bit ops with floating point.

        * docs/b3/intermediate-representation.html:

2016-12-07  Dean Jackson  <dino@apple.com>

        Remove runtime toggle for pointer-lock
        https://bugs.webkit.org/show_bug.cgi?id=165577
        <rdar://problems/29566996>

        Reviewed by Jon Lee.

        No need to have pointer-lock tested.

        * experimental-features.html: Also sort the list alphabetically.

2016-12-05  Dean Jackson  <dino@apple.com>

        pointer lock needs to be feature detectable
        https://bugs.webkit.org/show_bug.cgi?id=165426
        <rdar://problem/29486715>

        Reviewed by Antoine Quint.

        We can now accurately detect pointer-lock.

        * experimental-features.html:

2016-12-02  Dean Jackson  <dino@apple.com>

        Make a public facing page to check for WebKit features
        https://bugs.webkit.org/show_bug.cgi?id=165331
        <rdar://problem/29488535>

        Reviewed by Antoine Quint.

        Add a web page to webkit.org that allows us to live
        detect our experimental features. This is mostly for
        internal debugging, but also provides simple examples
        of how real content would do such detection.

        * experimental-features.html: Added.

2016-11-17  Keith Miller  <keith_miller@apple.com>

        Add rotate to Wasm
        https://bugs.webkit.org/show_bug.cgi?id=164871

        Reviewed by Filip Pizlo.

        Update docs for new rotate instructions.

        * docs/b3/intermediate-representation.html:

2016-10-21  Keith Miller  <keith_miller@apple.com>

        Expand Trunc in B3 to support Double to Float
        https://bugs.webkit.org/show_bug.cgi?id=163809

        Update the docs to explain that Trunc now works with fleating point numbers.

        Reviewed by Geoffrey Garen.

        * docs/b3/intermediate-representation.html:

2016-10-14  Keith Miller  <keith_miller@apple.com>

        B3 needs a special WasmAddress Opcode
        https://bugs.webkit.org/show_bug.cgi?id=163394

        Reviewed by Filip Pizlo.

        Update the b3 docs for the new WasmAddress opcode.

        * docs/b3/intermediate-representation.html:

2016-10-14  Simon Fraser  <simon.fraser@apple.com>

        Annotate bots in contributors.json and don't show them on webkit.org/team
        https://bugs.webkit.org/show_bug.cgi?id=163317

        Reviewed by Daniel Bates.

        Don't show bots.

        * wp-content/themes/webkit/team.php:

2016-10-12  Keith Miller  <keith_miller@apple.com>

        B3 needs a special WasmBoundsCheck Opcode
        https://bugs.webkit.org/show_bug.cgi?id=163246

        Reviewed by Filip Pizlo.

        Update the docs for the new WasmBoundsCheck opcode.

        * docs/b3/intermediate-representation.html:

2016-10-09  Simon Fraser  <simon.fraser@apple.com>

        Convert contributors.json to a flat list
        https://bugs.webkit.org/show_bug.cgi?id=163183

        Reviewed by Darin Adler.

        Make contributors.json easier to maintain by eliminating the big groupings ("Committers", "Reviewers" etc)
        and moving that data to a "status" property on each contributor.

        Fix script that generates webkit.org/team.

        * wp-content/themes/webkit/team.php:

2016-10-03  Filip Pizlo  <fpizlo@apple.com>

        B3 trapping memory accesses should be documented
        https://bugs.webkit.org/show_bug.cgi?id=162845

        Reviewed by Geoffrey Garen.

        Added documentation for the Traps flag, and factored out the documentation of the Chill flag
        to a new flags section.

        * docs/b3/intermediate-representation.html:

2016-09-30  Filip Pizlo  <fpizlo@apple.com>

        Air should have a way of expressing additional instruction flags
        https://bugs.webkit.org/show_bug.cgi?id=162699

        Reviewed by Mark Lam.

        * docs/b3/assembly-intermediate-representation.html:

2016-09-28  Filip Pizlo  <fpizlo@apple.com>

        B3 opcodes should leave room for flags
        https://bugs.webkit.org/show_bug.cgi?id=162692

        Reviewed by Keith Miller.

        Updated the documentation to talk about Kind and the isChill bit, and to remove
        ChillDiv/ChillMod.

        * docs/b3/intermediate-representation.html:

2016-09-27  Joseph Pecoraro  <pecoraro@apple.com>

        Update style guide for #pragma once
        https://bugs.webkit.org/show_bug.cgi?id=162633

        Reviewed by Dan Bernstein.

        * code-style.md:
        Update style guide for #pragma once as discussed on webkit-dev.

2016-09-21  Filip Pizlo  <fpizlo@apple.com>

        Add a Fence opcode to B3
        https://bugs.webkit.org/show_bug.cgi?id=162343

        Reviewed by Geoffrey Garen.

        * docs/b3/intermediate-representation.html:

2016-08-16  Benjamin Poulain  <bpoulain@apple.com>

        [JSC] Update the documentation of B3's Return opcode
        https://bugs.webkit.org/show_bug.cgi?id=160912

        Reviewed by Filip Pizlo.

        * docs/b3/intermediate-representation.html:

2016-08-04  Daniel Bates  <dabates@apple.com>

        Add some files for a Content Security Policy blog post

        * blog-files/content-security-policy/compass-base.css: Added.
        (.compass):
        * blog-files/content-security-policy/csp-style-hash.html: Added.
        * blog-files/content-security-policy/icons.svg: Added; derived from file
        Websites/webkit.org/wp-content/themes/webkit/images/icons.svg. I am explicitly
        not referencing file Websites/webkit.org/wp-content/themes/webkit/images/icons.svg
        so that csp-style-hash.html is not affected by changes to this file.

2016-07-24  Filip Pizlo  <fpizlo@apple.com>

        B3 should support multiple entrypoints
        https://bugs.webkit.org/show_bug.cgi?id=159391

        Reviewed by Saam Barati.

        Update some statements about ControlValue (which doesn't exist anymore) and add a blurb
        about EntrySwitch.

        * docs/b3/index.html:
        * docs/b3/intermediate-representation.html:

2016-07-20  Frederic Wang  <fwang@igalia.com>

        Unreviewed, new demo files for an up-coming blog post.

        * demos/mathml/demo2016/LICENSE-amiri.txt: Added.
        * demos/mathml/demo2016/LICENSE-latinmodern-math.txt: Added.
        * demos/mathml/demo2016/LICENSE-libertinusmath.txt: Added.
        * demos/mathml/demo2016/README.txt: Added.
        * demos/mathml/demo2016/amiri-regular.woff: Added.
        * demos/mathml/demo2016/index.html: Added.
        * demos/mathml/demo2016/latinmodern-math.woff: Added.
        * demos/mathml/demo2016/libertinusmath-regular.woff: Added.
        * demos/mathml/demo2016/webfonts.css: Added.
        (@namespace url('http://www.w3.org/1999/xhtml');):
        (@font-face):
        (m|math, m|mtext):
        (m|math.libertinus):
        (m|math.arabic):

2016-07-19  Jon Davis  <jond@apple.com>

        Adjust margins for first-line floating elements and add preset floating video sizing
        https://bugs.webkit.org/show_bug.cgi?id=159898

        Reviewed by Benjamin Poulain.

        * wp-content/themes/webkit/style.css:
        (article video.alignright):
        (article .alignright:first-child):
        (@media only screen and (max-width: 690px)):
            (article .alignright:first-child):
        (@media only screen and (max-width: 415px)):
            (article video.alignright):
            (article .alignright:first-child):

2016-07-17  Filip Pizlo  <fpizlo@apple.com>

        Implement table-based switches in B3/Air
        https://bugs.webkit.org/show_bug.cgi?id=151141

        Reviewed by Benjamin Poulain.

        Update documentation to reflect Patchpoint's new powers.

        * docs/b3/intermediate-representation.html:

2016-07-15  Jon Davis  <jond@apple.com>

        Fixed content overflow and missing build information behavior.
        https://bugs.webkit.org/show_bug.cgi?id=159820

        Reviewed by Timothy Hatcher.

        * wp-content/themes/webkit/nightly-start.php:

2016-07-14  Jon Davis  <jond@apple.com>

        Improved WebKit Nightly start page design.
        https://bugs.webkit.org/show_bug.cgi?id=159780

        Reviewed by Timothy Hatcher.

        Added better 404 handling, improved presentation of the
        start page and new Apache rewrites for the P1 bug list.

        * .htaccess:
        * wp-content/themes/webkit/functions.php:
        * wp-content/themes/webkit/nightly-start.php:

2016-07-01  Jon Davis  <jond@apple.com>

        Added a colorful new image and fixed the Open Graph attribute.
        https://bugs.webkit.org/show_bug.cgi?id=159359

        Reviewed by Timothy Hatcher.

        The Open Graph image tag should use the property attribute not
        the itemprop attribute.

        * wp-content/plugins/social-meta.php:
        * wp-content/themes/webkit/images/ogimage.png:

2016-06-30  Dean Jackson  <dino@apple.com>

        Tab pointed out a typo that made the overdamped case fail.

        * demos/spring/spring.js:
        (SpringSolver.prototype.solve):

2016-06-30  Dean Jackson  <dino@apple.com>

        Fixed a typo in the link to the other version.

        * blog-files/color-gamut/index.html:

2016-06-29  Dean Jackson  <dino@apple.com>

        Add the UI JavaScript library to make
        other browsers happy.

        * demos/spring/dat.gui.min.js: Added.
        * demos/spring/index.html:

2016-06-29  Dean Jackson  <dino@apple.com>

        Demo and JS implementation of our spring() animation
        timing function.

        * demos/spring/index.html: Added.
        * demos/spring/spring.js: Added.
        (SpringSolver):
        (SpringSolver.prototype.solve):

2016-06-29  Dean Jackson  <dino@apple.com>

        Small change to wording, and link to the interactive version.

        * blog-files/color-gamut/index.html:

2016-06-28  Dean Jackson  <dino@apple.com>

        Add a more interactive version of the demo.

        * blog-files/color-gamut/comparison.html: Added.

2016-06-28  Jon Davis  <jond@apple.com>

        Fixed tile height for mobile phone-sized viewports.
        https://bugs.webkit.org/show_bug.cgi?id=159228

        Reviewed by Timothy Hatcher.

        Prevents cutoff text for featured tiles and prevents overlapping text and controls on the Twitter tile for phone-sized viewports.

        * wp-content/themes/webkit/style.css:
        (.twitter-tile.text-only .tile-content):
        (.tile):

2016-06-28  Jon Davis  <jond@apple.com>

        Fixed Open Graph meta data and image entries.
        https://bugs.webkit.org/show_bug.cgi?id=159167.

        Reviewed by Timothy Hatcher.

        This patch addresses Open Graph meta data issues:

        - Added a high-resolution PNG of the WebKit logo because Facebook doesn't support SVG images
        - Uses the first image of a page or post if not featured image is set
        - Article date/time information should not be given for the homepage
        - Added Facebook admins as per the Facebook Open Graph debugger

        * wp-content/plugins/social-meta.php:
        * wp-content/themes/webkit/images/ogimage.png: Added.

2016-06-27  Dean Jackson  <dino@apple.com>

        Updated content for the color blog post.

        * blog-files/color-gamut/Iceland-P3.jpg:
        * blog-files/color-gamut/Iceland-oog.jpg:
        * blog-files/color-gamut/Iceland-sRGB.jpg:
        * blog-files/color-gamut/Italy-P3.jpg:
        * blog-files/color-gamut/Italy-sRGB.jpg:
        * blog-files/color-gamut/Sunset-P3.jpg:
        * blog-files/color-gamut/Sunset-sRGB.jpg:
        * blog-files/color-gamut/YellowFlower-P3.jpg:
        * blog-files/color-gamut/YellowFlower-oog.jpg:
        * blog-files/color-gamut/YellowFlower-sRGB.jpg:
        * blog-files/color-gamut/index.html:

2016-06-27  Jon Davis  <jond@apple.com>

        Set a default image for sharing webkit.org links via social.
        https://bugs.webkit.org/show_bug.cgi?id=159167

        Reviewed by Timothy Hatcher.

        * wp-content/plugins/social-meta.php:

2016-06-24  Dean Jackson  <dino@apple.com>

        More examples for the wide-gamut demo.

        * blog-files/color-gamut/Iceland-P3.jpg: Added.
        * blog-files/color-gamut/Iceland-oog.jpg: Added.
        * blog-files/color-gamut/Iceland-sRGB.jpg: Added.
        * blog-files/color-gamut/Italy-P3.jpg: Added.
        * blog-files/color-gamut/Italy-oog.jpg: Added.
        * blog-files/color-gamut/Italy-sRGB.jpg: Added.
        * blog-files/color-gamut/Sunset-AdobeRGB.jpg: Added.
        * blog-files/color-gamut/Sunset-P3.jpg: Added.
        * blog-files/color-gamut/Sunset-oog.jpg: Added.
        * blog-files/color-gamut/Sunset-sRGB.jpg: Added.
        * blog-files/color-gamut/Webkit-logo-sRGB.png:
        * blog-files/color-gamut/YellowFlower-P3.jpg: Added.
        * blog-files/color-gamut/YellowFlower-oog.jpg: Added.
        * blog-files/color-gamut/YellowFlower-sRGB.jpg: Added.
        * blog-files/color-gamut/index.html:

2016-06-24  Dean Jackson  <dino@apple.com>

        Change something in the webkit.org directory in the hope
        it will kick off a website update.

2016-06-24  Jon Davis  <jond@apple.com>

        Rewrite the WebKit Nightly build download URLs to use the correct secure URL.
        https://bugs.webkit.org/show_bug.cgi?id=159100.

        Reviewed by Joseph Pecoraro.

        * wp-content/plugins/sync-nightly-builds.php:

2016-06-13  Jon Davis  <jond@apple.com>

        Minor style updates for figcaptions and post forewords.

        * wp-content/themes/webkit/style.css:
        (article .foreword):
        (figure.aligncenter figcaption):
        (figure.aligncenter figcaption::before):

2016-06-13  Jon Davis  <jond@apple.com>

        Adds support for foreword custom meta and display styles on blog posts.
        https://bugs.webkit.org/show_bug.cgi?id=158707.

        Reviewed by Timothy Hatcher.

        * wp-content/themes/webkit/functions.php:
        * wp-content/themes/webkit/style.css:
        (article .foreword):

2016-06-02  Dean Jackson  <dino@apple.com>

        Update the example for wider color gamut images.

        * blog-files/color-gamut/index.html:

2016-06-02  Dean Jackson  <dino@apple.com>

        Adding some sample images for a blog post on color.

        * blog-files/color-gamut/Flowers-AdobeRGB.jpg: Added.
        * blog-files/color-gamut/Flowers-ProPhoto.jpg: Added.
        * blog-files/color-gamut/Flowers-oog.jpg: Added.
        * blog-files/color-gamut/Flowers-sRGB.jpg: Added.
        * blog-files/color-gamut/Rose-AdobeRGB.jpg: Added.
        * blog-files/color-gamut/Rose-ProPhoto.jpg: Added.
        * blog-files/color-gamut/Rose-oog.jpg: Added.
        * blog-files/color-gamut/Rose-sRGB.jpg: Added.
        * blog-files/color-gamut/index.html: Added.

2016-06-02  Filip Pizlo  <fpizlo@apple.com>

        Fix typos and make some revisions to the B3 docs
        https://bugs.webkit.org/show_bug.cgi?id=158311

        Reviewed by Michael Saboff.

        I found typos and fixed them. Also, I clarified some things:

        - Is B3 IR platform-agnostic? Sort of. I tried to describe when it is (Values usually behave
          the same way regardless of CPU) and when it isn't (it lets you speak of registers if that's
          what you want to do, for example).

        - How does isValidForm really get used? You don't really need to create an Inst to use it.

        - Some other incremental improvements to make the docs clearer.

        * docs/b3/assembly-intermediate-representation.html:
        * docs/b3/index.html:
        * docs/b3/intermediate-representation.html:

2016-05-31  Filip Pizlo  <fpizlo@apple.com>

        Unreviewed, fix an obvious typo: a missing comma.

        * docs/b3/assembly-intermediate-representation.html:

2016-05-31  Filip Pizlo  <fpizlo@apple.com>

        Air needs documentation
        https://bugs.webkit.org/show_bug.cgi?id=153668

        Reviewed by Mark Lam, Saam Barati, and Benjamin Poulain.

        Write documentation for Air!

        * docs/b3/assembly-intermediate-representation.html:

2016-05-23  Jon Davis  <jond@apple.com>

        Add syntax highglighting for ES6 "let", "const" and "of" keywords.
        https://bugs.webkit.org/show_bug.cgi?id=157994

        Reviewed by Geoffrey Garen.

        * wp-content/plugins/hyperlight/hyperlight/languages/javascript.php:

2016-05-13  Brady Eidson  <beidson@apple.com>

        Extend protector naming code style guideline to cover operator= assignment.
        https://bugs.webkit.org/show_bug.cgi?id=157693

        Reviewed by Darin Adler.

        * code-style.md:

2016-05-13  Brady Eidson  <beidson@apple.com>

        Protector Ref/RefPtrs should have a specified naming style.
        https://bugs.webkit.org/show_bug.cgi?id=157591

        Reviewed by Darin Adler.

        * code-style.md:

2016-04-26  Timothy Hatcher  <timothy@apple.com>

        Remove hard-wraps from the feature policy markdown so it renders full width on the site.

        * feature-policy.md:

2016-04-14  Edward O'Connor  <eoconnor@apple.com>

        Publish the Web-exposed feature policy on webkit.org.
        https://bugs.webkit.org/show_bug.cgi?id=156552

        Reviewed by Timothy Hatcher.

        * feature-policy.md: Added.

2016-04-13  Jon Davis  <jond@apple.com>

        Remove database quote escapes from pushed tweets.

        Reviewed by Timothy Hatcher.

        * wp-content/plugins/tweet-listener.php:

2016-04-13  Jon Davis  <jond@apple.com>

        Added background color for Safari Technology Preview posts.

        Reviewed by Timothy Hatcher.

        * wp-content/themes/webkit/style.css:
        (.tile.category-safari-technology-preview .background-image):

2016-04-07  Jon Davis  <jond@apple.com>

        Improved drop down menu with translate; cleaned up unnecessary whitespace.
        https://bugs.webkit.org/show_bug.cgi?id=156342

        Reviewed by Timothy Hatcher.

        * wp-content/themes/webkit/style.css:
        (p > a[name]::before):
        (.has-post-thumbnail .background-image):
        (.table-of-contents):
        (header .menu-item-has-children .label-toggle::after):
        (.sub-menu-layer):
        (.sub-menu-layer:after, .sub-menu-layer:before):
        (.sub-menu-layer .menu-item):
        (.menu > .menu-item > .menu-toggle:checked + .sub-menu):
        (@media only screen and (max-width: 920px)):
        (header .sub-menu-layer):
        (@media only screen and (max-width: 415px)):
        (@media only screen and (max-width: 1180px)): Deleted.
        (@media only screen and (max-width: 1000px)): Deleted.
        (@media only screen and (max-width: 690px)): Deleted.
        (@media only screen and (max-width: 600px)): Deleted.
        (@media only screen and (max-height: 415px)): Deleted.
        (@media only screen and (max-width: 320px)): Deleted.

2016-04-05  Jon Davis  <jond@apple.com>

        Make the @webkit link on the front page link to the feed
        https://bugs.webkit.org/show_bug.cgi?id=156244

        Reviewed by Timothy Hatcher.

        * wp-content/themes/webkit/widgets/twitter.php:

2016-03-31  Jon Davis  <jond@apple.com>

        Show tweets by @webkit in the Twitter tile on webkit.org
        https://bugs.webkit.org/show_bug.cgi?id=156093

        Reviewed by Timothy Hatcher.

        * wp-content/plugins/tweet-listener.php: Added.
        * wp-content/themes/webkit/widgets/twitter.php:

2016-03-31  Jon Davis  <jond@apple.com>

        Fix download links for desktops with small resolutions
        https://bugs.webkit.org/show_bug.cgi?id=156081

        Reviewed by Timothy Hatcher.

        * wp-content/themes/webkit/downloads.php:

2016-03-29  Jon Davis  <jond@apple.com>

        Fixed a property access error by removing the lamda function for updates
        https://bugs.webkit.org/show_bug.cgi?id=155989

        * wp-content/plugins/sync-nightly-builds.php:

2016-03-29  Jon Davis  <jond@apple.com>

        Fixed a context error for Nightly Build sync plugin, tightens layout styles for abovetitle
        https://bugs.webkit.org/show_bug.cgi?id=155989

        Unreviewed fix for the Sync Nightly Builds plugin to work with the older
        PHP environment on the server. Quick style adjustments for abovetitle images.

        * wp-content/plugins/sync-nightly-builds.php:
        * wp-content/themes/webkit/nightly-archives.php:
        * wp-content/themes/webkit/style.css:
        (article .abovetitle):

2016-03-29  Jon Davis  <jond@apple.com>

        Add WebKit Nightly Archives, WebKit Nightly Start, and Downloads pages
        https://bugs.webkit.org/show_bug.cgi?id=155989

        Reviewed by Timothy Hatcher.

        * wp-content/plugins/sync-nightly-builds.php: Added.
        * wp-content/themes/webkit/downloads.php: Added.
        * wp-content/themes/webkit/functions.php:
        * wp-content/themes/webkit/images/download.svg:
        * wp-content/themes/webkit/images/spinner.svg: Added.
        * wp-content/themes/webkit/nightly-archives.php: Added.
        * wp-content/themes/webkit/nightly-start.php: Added.
        * wp-content/themes/webkit/nightly.php:
        * wp-content/themes/webkit/scripts/searchbuilds.js: Added.
        (initsearch.xhrPromise.):
        (initsearch):
        (initsearch.displayResults.addEntry):
        (initsearch.displayResults):
        (initsearch.displayError):
        (initsearch.clearErrors):
        * wp-content/themes/webkit/style.css:
        (input[type=text]):
        (input[type=submit]):
        (article .byline):
        (article .abovetitle):

2016-03-29  Jon Davis  <jond@apple.com>

        Support images above the title on webkit.org posts
        https://bugs.webkit.org/show_bug.cgi?id=155979

        Reviewed by Timothy Hatcher.

        * wp-content/themes/webkit/functions.php:
        * wp-content/themes/webkit/single.php:

2016-03-22  Jonathan Davis  <jond@apple.com>

        Allow the use of custom styles and scripts for blog posts
        https://bugs.webkit.org/show_bug.cgi?id=155768

        Reviewed by Timothy Hatcher.

        * wp-content/themes/webkit/functions.php:

2016-03-09  Jonathan Davis  <jond@apple.com>

        For RSS feeds, convert image and link relative URIs to absolute URIs
        https://bugs.webkit.org/show_bug.cgi?id=155237

        Reviewed by Timothy Hatcher.

        * wp-content/themes/webkit/functions.php:

2016-03-03  Saam barati  <sbarati@apple.com>

        Update style guide to reflect our style of only using "override" or "final" when overriding virtual methods
        https://bugs.webkit.org/show_bug.cgi?id=154978

        Reviewed by Darin Adler.

        * code-style.md:

2016-02-29  Yusuke Suzuki  <utatane.tea@gmail.com>

        [DFG][FTL][B3] Support floor and ceil
        https://bugs.webkit.org/show_bug.cgi?id=154683

        Reviewed by Filip Pizlo.

        * docs/b3/intermediate-representation.html:

2016-02-16  Jonathan Davis  <jond@apple.com>

        Add a redirect for B3 documentation
        https://bugs.webkit.org/show_bug.cgi?id=154293

        Reviewed by Timothy Hatcher.

        * .htaccess:

2016-02-15  Timothy Hatcher  <timothy@apple.com>

        Fix byline to avoid bumping into content sticks out.

        * wp-content/themes/webkit/style.css:
        (article .byline): Bump padding to avoid content with negative margins.

2016-02-13  Timothy Hatcher  <timothy@apple.com>

        Adjust the appearance of mattewhite figures that are not widescreen.

        * wp-content/themes/webkit/style.css:
        (article .mattewhite:not(.widescreen):

2016-02-12  Jonathan Davis  <jond@apple.com>

        Add a CSS class to remove padding when using mattewhite class for figures
        https://bugs.webkit.org/show_bug.cgi?id=154206

        Reviewed by Filip Pizlo.

        * wp-content/themes/webkit/style.css:
        (article .two-columns):
        (article .two-columns h6):
        (article .two-columns p):
        (article .mattewhite):
        (article .mattewhite.tightwad):
        (article figure):

2016-02-12  Filip Pizlo  <fpizlo@apple.com>

        Unreviewed, upload some blog files.

        * blog-files/compile-times.png: Added.
        * blog-files/fast-isel.png: Added.
        * blog-files/jetstream-latency.png: Added.
        * blog-files/jetstream-throughput.png: Added.
        * blog-files/jetstream.png: Added.
        * blog-files/kraken.png: Added.
        * blog-files/low-compile-times.png: Added.
        * blog-files/low-fast-isel.png: Added.
        * blog-files/low-jetstream-latency.png: Added.
        * blog-files/low-jetstream-throughput.png: Added.
        * blog-files/low-jetstream.png: Added.
        * blog-files/low-kraken.png: Added.
        * blog-files/low-octane.png: Added.
        * blog-files/octane.png: Added.

2016-02-04  Jonathan Davis  <jond@apple.com>

        Fix bad link on the Feature Status page.
        https://bugs.webkit.org/show_bug.cgi?id=152086

        Reviewed by Timothy Hatcher.

        * wp-content/themes/webkit/status.php:

2016-02-02  Filip Pizlo  <fpizlo@apple.com>

        Get rid of anonymous stack slots
        https://bugs.webkit.org/show_bug.cgi?id=151128

        Reviewed by Mark Lam.

        This changes the documentation to account for the addition of Variables and the Get and Set
        opcodes, and the removal of anonymous stack slots from B3 IR.

        * docs/b3/intermediate-representation.html:

2016-02-02  Dan Bernstein  <mitz@apple.com>

        Tagline in B3 docs should match the rest of the website
        https://bugs.webkit.org/show_bug.cgi?id=153801

        Reviewed by Filip Pizlo.

        Fix the tagline.

        * docs/b3/assembly-intermediate-representation.html:
        * docs/b3/index.html:
        * docs/b3/intermediate-representation.html:

2016-02-02  Filip Pizlo  <fpizlo@apple.com>

        Minor fixes for B3 IR documentation
        https://bugs.webkit.org/show_bug.cgi?id=153782

        Reviewed by Michael Saboff.

        Fix minor issues that Geoff found.

        * docs/b3/intermediate-representation.html:

2016-01-30  Filip Pizlo  <fpizlo@apple.com>

        B3 documentation style shouldn't have hacks for h1
        https://bugs.webkit.org/show_bug.cgi?id=153725

        Reviewed by Alexey Proskuryakov.

        * docs/b3/style.css:

2016-01-30  Filip Pizlo  <fpizlo@apple.com>

        Improve the style of B3 documentation
        https://bugs.webkit.org/show_bug.cgi?id=153674

        Reviewed by Oliver Hunt.

        This makes the style of the B3 documentation look like the Wiki, which I think is
        appropriate for the kind of content that we're putting into it - in particular, the font
        is the perfect size for dense content. The style also doesn't require much spoonfeeding
        from the HTML side so you can write nice looking documentation by just using really
        basic HTML constructs.

        * docs/b3/assembly-intermediate-representation.html:
        * docs/b3/index.html:
        * docs/b3/intermediate-representation.html:
        * docs/b3/style.css:

2016-01-29  Filip Pizlo  <fpizlo@apple.com>

        Clean up the B3 documentation a bit
        https://bugs.webkit.org/show_bug.cgi?id=153678

        Reviewed by Saam Barati.

        * docs/b3/index.html: Fix some links and fix small issues.
        * docs/b3/intermediate-representation.html: Clean up some text and fix small issues.

2016-01-29  Filip Pizlo  <fpizlo@apple.com>

        B3 should have documentation
        https://bugs.webkit.org/show_bug.cgi?id=153658

        Reviewed by Saam Barati.

        Change the documentation to use HTML instead of Markdown.  Markdown has trouble with
        definition lists.  Things go downhill when you try to add paragraphs or code blocks to
        a definition.  That's unfortunate since we use definitions for the IR document.

        Since there is no way to use our preferred styling for the IR document without doing a
        lot of bad hacks, it's best if we just stick to HTML. It looks plain but it's highly
        practical.

        * docs/b3/assembly-intermediate-representation.html: Added.
        * docs/b3/bare-bones-backend.md: Removed.
        * docs/b3/index.html: Added.
        * docs/b3/intermediate-representation.html: Added.
        * docs/b3/style.css: Added.
        (dd):
        (dd:last-child):

2016-01-29  Timothy Hatcher  <timothy@apple.com>

        Add some defintion list styles.

        * wp-content/themes/webkit/style.css:
        (dl):
        (dt):
        (dd):

2016-01-29  Filip Pizlo  <fpizlo@apple.com>

        B3 should have documentation
        https://bugs.webkit.org/show_bug.cgi?id=153658

        Reviewed by Timothy Hatcher.

        * docs: Added.
        * docs/b3: Added.
        * docs/b3/bare-bones-backend.md: Added.

2016-01-16  Timothy Hatcher  <timothy@apple.com>

        Fix some responsive issues on smaller screens.

        * wp-content/themes/webkit/style.css:
        (.timeline .time):
        (@media (max-width: 900px)):
        (.timeline:before):
        (.timeline > li):
        (.timeline > li:before):
        (.timeline .content):
        (.timeline li .time::before):

2016-01-14  Timothy Hatcher  <timothy@apple.com>

        Eliminate the margin on timeline elements so multiple timelines can touch.

        * wp-content/themes/webkit/style.css:
        (.timeline):

2016-01-14  Timothy Hatcher  <timothy@apple.com>

        Use a 2px border radius instead to look good on 2x devices as well as 1x.

        * wp-content/themes/webkit/style.css:
        (.timeline .time):

2016-01-14  Timothy Hatcher  <timothy@apple.com>

        Fix hairline crack on 1x devices between arrow and time label.

        * wp-content/themes/webkit/style.css:
        (.timeline .content):
        (.timeline .time):

2016-01-13  Timothy Hatcher  <timothy@apple.com>

        Correct some history timeline styles.

        * wp-content/themes/webkit/style.css:
        (.timeline .content):

2016-01-13  Timothy Hatcher  <timothy@apple.com>

        Add styles for a history timeline, needed by an upcoming blog post.

        * wp-content/themes/webkit/style.css:
        (.timeline):
        (.timeline:after):
        (.timeline *):
        (.timeline:before):
        (.timeline > li):
        (.timeline > li:before):
        (.timeline .content):
        (.timeline figure):
        (.timeline .time):
        (.timeline h2, .timeline h3):
        (.timeline .time::before):
        (.timeline img):
        (@media (min-width: 900px)):
        (.timeline > li.force-clear):
        (.timeline > li:nth-child(odd)):
        (.timeline > li:nth-child(even)):
        (.timeline > li.force-clear + li):
        (.timeline li .time):
        (.timeline li:nth-child(odd) .time):
        (.timeline li:nth-child(even) .time):
        (.timeline li:nth-child(even) .time::before):
        (.timeline > li:nth-child(even):before):

2016-01-06  Jonathan Davis  <jond@apple.com>

        Fixed Individuals and Vendor Contact formatting.
        https://bugs.webkit.org/show_bug.cgi?id=152714

        Reviewed by Timothy Hatcher.

        * security-policy.md:

2015-12-09  Jonathan Davis  <jond@apple.com>

        Fixed broken link: https://webkit.org/old/security/security-group-members.html
        https://bugs.webkit.org/show_bug.cgi?id=152010

        Reviewed by Timothy Hatcher.

        * .htaccess:
        * security-policy.md:
        * wp-content/themes/webkit/style.css:
        (article h4):
        (article h5):

2015-12-09  Jonathan Davis  <jond@apple.com>

        Fix function reference change.

        * wp-content/themes/webkit/scripts/global.js:

2015-12-08  Jonathan Davis  <jond@apple.com>

        Wide tables should be scrollable on narrow mobile screens.
        https://bugs.webkit.org/show_bug.cgi?id=151941

        Reviewed by Timothy Hatcher.

        * wp-content/themes/webkit/scripts/global.js:
        (inView):
        (onMovement):
        (updateImages):
        (enableScrollableTables):
        (update): Deleted.
        * wp-content/themes/webkit/style.css:
        (.pagination .prev-post):
        (article .scrollable):
        (.scrollable .scrollable-padding):

2015-12-08  Jonathan Davis  <jond@apple.com>

        Fix Code Style Guidelines code parsing.
        https://bugs.webkit.org/show_bug.cgi?id=152024

        Reviewed by Timothy Hatcher.

        * wp-content/plugins/table-of-contents.php:

2015-12-08  Jonathan Davis  <jond@apple.com>

        Fix social meta for home page.
        https://bugs.webkit.org/show_bug.cgi?id=151764

        Reviewed by Timothy Hatcher.

        * wp-content/plugins/social-meta.php:

2015-12-07  Jonathan Davis  <jond@apple.com>

        Implemented a workaround for sharp SVG WebKit logo.
        https://bugs.webkit.org/show_bug.cgi?id=151971

        Reviewed by Timothy Hatcher.

        * wp-content/themes/webkit/images/webkit.svg:

2015-12-07  Jonathan Davis  <jond@apple.com>

        Address UX issues with the Contribute menu.
        https://bugs.webkit.org/show_bug.cgi?id=151874

        Reviewed by Timothy Hatcher.

        * wp-content/themes/webkit/functions.php:
        * wp-content/themes/webkit/header.php:
        * wp-content/themes/webkit/style.css:
        (time, mark, audio, video):
        (footer, header, hgroup, menu, nav, section):
        (html):
        (body):
        (ol, ul):
        (blockquote, q):
        (q:before, q:after):
        (table):
        (p:empty):
        (.admin-bar p > a[name]::before):
        (.screen-reader-text):
        (.screen-reader-text:focus):
        (pre):
        (code):
        (.feature-header:after):
        (.feature.opened .feature-header:after):
        (footer nav a:hover):
        (header .menu-item-has-children .label-toggle::after):
        (header .menu-item):
        (.sub-menu-layer):
        (.sub-menu-layer .menu-item:first-child):
        (.menu > .menu-item > .menu-toggle:checked + .sub-menu):
        (@media only screen and (max-width: 920px)):
        (header .menu-item > .menu-toggle:checked + a > .label-toggle::after):
        (header .menu):
        (header .menu-toggle:checked ~ ul):
        (header .sub-menu-layer:before):
        (header .menu > .menu-item > .menu-toggle:checked ~ .sub-menu):
        (footer nav li):
        (@media only screen and (max-width: 690px)):
        (.feature-filters:after):
        (.feature-filters.opened:after):
        (#wpadminbar):
        (.table-of-contents label:after):
        (.menu-toggle:checked ~ .table-of-contents label:after):
        (.table-of-contents h6):
        (header nav .menu-item-has-children .label-toggle): Deleted.
        (header nav .menu-item): Deleted.
        (header .menu > .menu-item-has-children:hover > a::before): Deleted.
        (.menu > .menu-item > .menu-toggle:checked ~ .sub-menu): Deleted.
        (header nav .menu-toggle:checked ~ ul): Deleted.
        (header .menu-toggle:checked ~ .sub-menu): Deleted.
        (@media only screen and (max-width: 782px)): Deleted.

2015-12-05  Timothy Hatcher  <timothy@apple.com>

        One last fix for https redirect.

        * wp-content/themes/webkit/.htaccess:

2015-12-05  Timothy Hatcher  <timothy@apple.com>

        Attempt to fix www redirect again.

        * wp-content/themes/webkit/.htaccess:

2015-12-05  Timothy Hatcher  <timothy@apple.com>

        Fix www redirect again.

        * wp-content/themes/webkit/.htaccess:

2015-12-05  Timothy Hatcher  <timothy@apple.com>

        Fix www redirect when https was used and restore status URL code.

        * wp-content/themes/webkit/.htaccess:
        * wp-content/themes/webkit/status.php:

2015-12-05  Timothy Hatcher  <timothy@apple.com>

        Another attempt to fix a 404 error when the site loads via www.webkit.org.

        * wp-content/themes/webkit/status.php:

2015-12-05  Timothy Hatcher  <timothy@apple.com>

        Fix a 404 error when the site loads via www.webkit.org.

        * wp-content/themes/webkit/status.php:

2015-12-04  Timothy Hatcher  <timothy@apple.com>

        Fix toggling so hidden links are not clickable still.

        * wp-content/themes/webkit/status.php:

2015-12-04  Timothy Hatcher  <timothy@apple.com>

        Fix another place where feature status internal reference links were wrong.

        * wp-content/themes/webkit/status.php:

2015-12-04  Jonathan Davis  <jond@apple.com>

        Fixed feature status internal reference links.

        * wp-content/themes/webkit/status.php:

2015-12-04  Jonathan Davis  <jond@apple.com>

        Update feature status for up-to-date status information.
        https://bugs.webkit.org/show_bug.cgi?id=151821

        Reviewed by Timothy Hatcher.

        * wp-content/themes/webkit/status.php:

2015-12-04  Jonathan Davis  <jond@apple.com>

        Added redirects for old webkit.org archive.

        * .htaccess:

2015-12-04  Jonathan Davis  <jond@apple.com>

        Removing empty directories from the old site.

        Reviewed by Timothy Hatcher.

        * blog: Removed.
        * blog/wp-admin: Removed.
        * blog/wp-admin/css: Removed.
        * blog/wp-admin/css/colors: Removed.
        * blog/wp-admin/css/colors/blue: Removed.
        * blog/wp-admin/css/colors/coffee: Removed.
        * blog/wp-admin/css/colors/ectoplasm: Removed.
        * blog/wp-admin/css/colors/light: Removed.
        * blog/wp-admin/css/colors/midnight: Removed.
        * blog/wp-admin/css/colors/ocean: Removed.
        * blog/wp-admin/css/colors/sunrise: Removed.
        * blog/wp-admin/images: Removed.
        * blog/wp-admin/includes: Removed.
        * blog/wp-admin/js: Removed.
        * blog/wp-admin/maint: Removed.
        * blog/wp-admin/network: Removed.
        * blog/wp-admin/user: Removed.
        * blog/wp-content: Removed.
        * blog/wp-content/plugins: Removed.
        * blog/wp-content/plugins/akismet: Removed.
        * blog/wp-content/themes: Removed.
        * blog/wp-content/themes/classic: Removed.
        * blog/wp-content/themes/default: Removed.
        * blog/wp-content/themes/default/images: Removed.
        * blog/wp-content/themes/webkit: Removed.
        * blog/wp-content/uploads: Removed.
        * blog/wp-content/uploads/2007: Removed.
        * blog/wp-content/uploads/2007/06: Removed.
        * blog/wp-includes: Removed.
        * blog/wp-includes/ID3: Removed.
        * blog/wp-includes/SimplePie: Removed.
        * blog/wp-includes/SimplePie/Cache: Removed.
        * blog/wp-includes/SimplePie/Content: Removed.
        * blog/wp-includes/SimplePie/Content/Type: Removed.
        * blog/wp-includes/SimplePie/Decode: Removed.
        * blog/wp-includes/SimplePie/Decode/HTML: Removed.
        * blog/wp-includes/SimplePie/HTTP: Removed.
        * blog/wp-includes/SimplePie/Net: Removed.
        * blog/wp-includes/SimplePie/Parse: Removed.
        * blog/wp-includes/SimplePie/XML: Removed.
        * blog/wp-includes/SimplePie/XML/Declaration: Removed.
        * blog/wp-includes/Text: Removed.
        * blog/wp-includes/Text/Diff: Removed.
        * blog/wp-includes/Text/Diff/Engine: Removed.
        * blog/wp-includes/Text/Diff/Renderer: Removed.
        * blog/wp-includes/certificates: Removed.
        * blog/wp-includes/css: Removed.
        * blog/wp-includes/fonts: Removed.
        * blog/wp-includes/images: Removed.
        * blog/wp-includes/images/crystal: Removed.
        * blog/wp-includes/images/media: Removed.
        * blog/wp-includes/images/smilies: Removed.
        * blog/wp-includes/images/wlw: Removed.
        * blog/wp-includes/js: Removed.
        * blog/wp-includes/js/crop: Removed.
        * blog/wp-includes/js/imgareaselect: Removed.
        * blog/wp-includes/js/jcrop: Removed.
        * blog/wp-includes/js/jquery: Removed.
        * blog/wp-includes/js/jquery/ui: Removed.
        * blog/wp-includes/js/mediaelement: Removed.
        * blog/wp-includes/js/plupload: Removed.
        * blog/wp-includes/js/scriptaculous: Removed.
        * blog/wp-includes/js/swfupload: Removed.
        * blog/wp-includes/js/swfupload/plugins: Removed.
        * blog/wp-includes/js/thickbox: Removed.
        * blog/wp-includes/js/tinymce: Removed.
        * blog/wp-includes/js/tinymce/langs: Removed.
        * blog/wp-includes/js/tinymce/plugins: Removed.
        * blog/wp-includes/js/tinymce/plugins/charmap: Removed.
        * blog/wp-includes/js/tinymce/plugins/colorpicker: Removed.
        * blog/wp-includes/js/tinymce/plugins/compat3x: Removed.
        * blog/wp-includes/js/tinymce/plugins/compat3x/css: Removed.
        * blog/wp-includes/js/tinymce/plugins/directionality: Removed.
        * blog/wp-includes/js/tinymce/plugins/fullscreen: Removed.
        * blog/wp-includes/js/tinymce/plugins/hr: Removed.
        * blog/wp-includes/js/tinymce/plugins/image: Removed.
        * blog/wp-includes/js/tinymce/plugins/inlinepopups: Removed.
        * blog/wp-includes/js/tinymce/plugins/inlinepopups/skins: Removed.
        * blog/wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2: Removed.
        * blog/wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img: Removed.
        * blog/wp-includes/js/tinymce/plugins/lists: Removed.
        * blog/wp-includes/js/tinymce/plugins/media: Removed.
        * blog/wp-includes/js/tinymce/plugins/media/css: Removed.
        * blog/wp-includes/js/tinymce/plugins/media/js: Removed.
        * blog/wp-includes/js/tinymce/plugins/paste: Removed.
        * blog/wp-includes/js/tinymce/plugins/paste/js: Removed.
        * blog/wp-includes/js/tinymce/plugins/spellchecker: Removed.
        * blog/wp-includes/js/tinymce/plugins/spellchecker/classes: Removed.
        * blog/wp-includes/js/tinymce/plugins/spellchecker/classes/utils: Removed.
        * blog/wp-includes/js/tinymce/plugins/spellchecker/css: Removed.
        * blog/wp-includes/js/tinymce/plugins/spellchecker/img: Removed.
        * blog/wp-includes/js/tinymce/plugins/spellchecker/includes: Removed.
        * blog/wp-includes/js/tinymce/plugins/tabfocus: Removed.
        * blog/wp-includes/js/tinymce/plugins/textcolor: Removed.
        * blog/wp-includes/js/tinymce/plugins/wordpress: Removed.
        * blog/wp-includes/js/tinymce/plugins/wordpress/css: Removed.
        * blog/wp-includes/js/tinymce/plugins/wordpress/img: Removed.
        * blog/wp-includes/js/tinymce/plugins/wpautoresize: Removed.
        * blog/wp-includes/js/tinymce/plugins/wpdialogs: Removed.
        * blog/wp-includes/js/tinymce/plugins/wpdialogs/js: Removed.
        * blog/wp-includes/js/tinymce/plugins/wpeditimage: Removed.
        * blog/wp-includes/js/tinymce/plugins/wpeditimage/css: Removed.
        * blog/wp-includes/js/tinymce/plugins/wpeditimage/img: Removed.
        * blog/wp-includes/js/tinymce/plugins/wpeditimage/js: Removed.
        * blog/wp-includes/js/tinymce/plugins/wpemoji: Removed.
        * blog/wp-includes/js/tinymce/plugins/wpfullscreen: Removed.
        * blog/wp-includes/js/tinymce/plugins/wpfullscreen/css: Removed.
        * blog/wp-includes/js/tinymce/plugins/wpgallery: Removed.
        * blog/wp-includes/js/tinymce/plugins/wpgallery/img: Removed.
        * blog/wp-includes/js/tinymce/plugins/wplink: Removed.
        * blog/wp-includes/js/tinymce/plugins/wplink/css: Removed.
        * blog/wp-includes/js/tinymce/plugins/wplink/img: Removed.
        * blog/wp-includes/js/tinymce/plugins/wplink/js: Removed.
        * blog/wp-includes/js/tinymce/plugins/wpview: Removed.
        * blog/wp-includes/js/tinymce/skins: Removed.
        * blog/wp-includes/js/tinymce/skins/lightgray: Removed.
        * blog/wp-includes/js/tinymce/skins/lightgray/fonts: Removed.
        * blog/wp-includes/js/tinymce/skins/lightgray/img: Removed.
        * blog/wp-includes/js/tinymce/skins/wordpress: Removed.
        * blog/wp-includes/js/tinymce/skins/wordpress/images: Removed.
        * blog/wp-includes/js/tinymce/themes: Removed.
        * blog/wp-includes/js/tinymce/themes/advanced: Removed.
        * blog/wp-includes/js/tinymce/themes/advanced/img: Removed.
        * blog/wp-includes/js/tinymce/themes/advanced/js: Removed.
        * blog/wp-includes/js/tinymce/themes/advanced/skins: Removed.
        * blog/wp-includes/js/tinymce/themes/advanced/skins/default: Removed.
        * blog/wp-includes/js/tinymce/themes/advanced/skins/default/img: Removed.
        * blog/wp-includes/js/tinymce/themes/advanced/skins/highcontrast: Removed.
        * blog/wp-includes/js/tinymce/themes/advanced/skins/o2k7: Removed.
        * blog/wp-includes/js/tinymce/themes/advanced/skins/o2k7/img: Removed.
        * blog/wp-includes/js/tinymce/themes/advanced/skins/wp_theme: Removed.
        * blog/wp-includes/js/tinymce/themes/advanced/skins/wp_theme/img: Removed.
        * blog/wp-includes/js/tinymce/themes/modern: Removed.
        * blog/wp-includes/js/tinymce/utils: Removed.
        * blog/wp-includes/pomo: Removed.
        * blog/wp-includes/theme-compat: Removed.
        * building: Removed.
        * coding: Removed.
        * coding/images: Removed.
        * css: Removed.
        * images: Removed.
        * misc: Removed.
        * misc/DatabaseExample.html: Removed.
        * misc/DatabaseTester.html: Removed.
        * misc/WebKitDetect.html: Removed.
        * misc/WebKitDetect.js: Removed.
        * misc/drosera: Removed.
        * misc/drosera/demo.js: Removed.
        * misc/drosera/drosera.png: Removed.
        * misc/drosera/index.html: Removed.
        * misc/gradient-input.html: Removed.
        * misc/morph.html: Removed.
        * misc/related-target-and-shadow-dom.svg: Removed.
        * projects: Removed.
        * projects/accessibility: Removed.
        * projects/cleanup: Removed.
        * projects/compat: Removed.
        * projects/css: Removed.
        * projects/documentation: Removed.
        * projects/dom: Removed.
        * projects/editing: Removed.
        * projects/forms: Removed.
        * projects/html: Removed.
        * projects/javascript: Removed.
        * projects/layout: Removed.
        * projects/mathml: Removed.
        * projects/performance: Removed.
        * projects/plugins: Removed.
        * projects/portability: Removed.
        * projects/printing: Removed.
        * projects/svg: Removed.
        * projects/webkit: Removed.
        * projects/xml: Removed.
        * projects/xslt: Removed.
        * quality: Removed.
        * security: Removed.

2015-12-03  Timothy Hatcher  <timothy@apple.com>

        Allow index.html indexes again.

        * .htaccess:

2015-12-03  Timothy Hatcher  <timothy@apple.com>

        Remove the old site files.

        * asking_questions.html: Removed.
        * building/active-scheme-xcode4.png: Removed.
        * building/build-settings-tab-xcode4.png: Removed.
        * building/build.html: Removed.
        * building/checkout.html: Removed.
        * building/custom-executable-xcode4.png: Removed.
        * building/cygwin-downloader.zip: Removed.
        * building/debug-mac-uiprocess.html: Removed.
        * building/debug.html: Removed.
        * building/launch-debugger-vs2010-small.png: Removed.
        * building/launch-debugger-vs2010.png: Removed.
        * building/run-xcode4.png: Removed.
        * building/run.html: Removed.
        * building/set-as-startup-project-vs2010.png: Removed.
        * building/set-debugging-properties-vs2010-small.png: Removed.
        * building/set-debugging-properties-vs2010.png: Removed.
        * building/tools.html: Removed.
        * coding/RefPtr.html: Removed.
        * coding/adding-features.html: Removed.
        * coding/assertion-guidelines.html: Removed.
        * coding/bsd-license.html: Removed.
        * coding/coding-style.html: Removed.
        * coding/commit-review-policy.html: Removed.
        * coding/contributing.html: Removed.
        * coding/dom-element-attach.html: Removed.
        * coding/images/contribute_add_attachment.png: Removed.
        * coding/images/contribute_mark_review.png: Removed.
        * coding/images/dom-element-attach-large.png: Removed.
        * coding/images/dom-element-attach-small.png: Removed.
        * coding/images/dom-element-attach.graffle: Removed.
        * coding/lgpl-license.html: Removed.
        * coding/major-objects.html: Removed.
        * coding/scripts.html: Removed.
        * coding/technical-articles.html: Removed.
        * contact.html: Removed.
        * css/blue.css: Removed.
        * css/gray.css: Removed.
        * css/green.css: Removed.
        * css/ie.css: Removed.
        * css/main.css: Removed.
        * css/pink.css: Removed.
        * css/purple.css: Removed.
        * css/yellow.css: Removed.
        * demos/index.html: Removed.
        * footer.inc: Removed.
        * header.inc: Removed.
        * images/DroseraPic.png: Removed.
        * images/blank.png: Removed.
        * images/blue-background.png: Removed.
        * images/blue-bullet.png: Removed.
        * images/download.png: Removed.
        * images/end.png: Removed.
        * images/gray-background.png: Removed.
        * images/green-background.png: Removed.
        * images/green-bullet.png: Removed.
        * images/icon-gold.png: Removed.
        * images/icon.png: Removed.
        * images/ie-nav.png: Removed.
        * images/middle.png: Removed.
        * images/nav.png: Removed.
        * images/pink-background.png: Removed.
        * images/pink-bullet.png: Removed.
        * images/purple-background.png: Removed.
        * images/purple-bullet.png: Removed.
        * images/surfin-safari.icns: Removed.
        * images/yellow-background.png: Removed.
        * images/yellow-bullet.png: Removed.
        * index.html: Removed.
        * nav.inc: Removed.
        * pngbehavior.htc: Removed.
        * projects/accessibility/index.html: Removed.
        * projects/cleanup/index.html: Removed.
        * projects/compat/index.html: Removed.
        * projects/css/index.html: Removed.
        * projects/documentation/index.html: Removed.
        * projects/dom/index.html: Removed.
        * projects/editing/index.html: Removed.
        * projects/forms/image-usemap.png: Removed.
        * projects/forms/image1.png: Removed.
        * projects/forms/image10.png: Removed.
        * projects/forms/image16.png: Removed.
        * projects/forms/index.html: Removed.
        * projects/forms/survey.html: Removed.
        * projects/goals.html: Removed.
        * projects/html/index.html: Removed.
        * projects/index.html: Removed.
        * projects/javascript/index.html: Removed.
        * projects/layout/index.html: Removed.
        * projects/mathml/index.html: Removed.
        * projects/performance/index.html: Removed.
        * projects/plugins/index.html: Removed.
        * projects/portability/index.html: Removed.
        * projects/printing/index.html: Removed.
        * projects/svg/index.html: Removed.
        * projects/svg/status.xml: Removed.
        * projects/svg/svg-status.css: Removed.
        * projects/svg/svg-status.xsl: Removed.
        * projects/webkit/index.html: Removed.
        * projects/xml/index.html: Removed.
        * projects/xslt/index.html: Removed.
        * quality/.htaccess: Removed.
        * quality/Ahem.ttf: Removed.
        * quality/bugpriorities.html: Removed.
        * quality/bugwriting.html: Removed.
        * quality/bugzilla.html: Removed.
        * quality/crashlogs.html: Removed.
        * quality/leakhunting.html: Removed.
        * quality/lifecycle.html: Removed.
        * quality/mac_reportbox.jpg: Removed.
        * quality/mac_viewtrace.jpg: Removed.
        * quality/reduction.html: Removed.
        * quality/reporting.html: Removed.
        * quality/testing.html: Removed.
        * quality/testwriting.html: Removed.
        * quality/win_installwatson.jpg: Removed.
        * quality/win_watsongui.jpg: Removed.
        * quality/win_watsoninstalled.jpg: Removed.
        * security/index.html: Removed.
        * security/security-group-members.html: Removed.
        * status.html: Removed.
        * team.html: Removed.

2015-12-03  Timothy Hatcher  <timothy@apple.com>

        Yet another attempt to fix the http blog redirects.

        Removing the blog folder should do it.

        * .htaccess:
        * blog: Removed.

2015-12-03  Timothy Hatcher  <timothy@apple.com>

        Another attempt to fix the http blog redirects.

        * .htaccess:

2015-12-03  Timothy Hatcher  <timothy@apple.com>

        Attempt to fix the http blog redirects.

        * .htaccess:

2015-12-03  Timothy Hatcher  <timothy@apple.com>

        Another attempt to fix the https redirect.

        * .htaccess:

2015-12-03  Timothy Hatcher  <timothy@apple.com>

        Attempt to fix the https redirect.

        * .htaccess:

2015-12-03  Timothy Hatcher  <timothy@apple.com>

        Fix blog.webkit.org redirects.

        * .htaccess:

2015-12-03  Timothy Hatcher  <timothy@apple.com>

        Add redirects for the demos folder.

        * .htaccess:

2015-12-03  Timothy Hatcher  <timothy@apple.com>

        Remove duplicate redirect.

        * .htaccess:

2015-12-03  Timothy Hatcher  <timothy@apple.com>

        One more attempt to clean up redirects.

        * .htaccess:

2015-12-03  Timothy Hatcher  <timothy@apple.com>

        Avoid double slashes after redirect for directories.

        * .htaccess:

2015-12-03  Timothy Hatcher  <timothy@apple.com>

        Fix directory redirects some more.

        * .htaccess:

2015-12-03  Timothy Hatcher  <timothy@apple.com>

        Fix directory redirect ordering.

        * .htaccess:

2015-12-03  Jonathan Davis  <jond@apple.com>

        Fixed cache logic so download data is correctly available.

        * wp-content/themes/webkit/nightly.php:

2015-12-03  Timothy Hatcher  <timothy@apple.com>

        Add some missing redirects for directories of the old site.

        * .htaccess:

2015-12-03  Jonathan Davis  <jond@apple.com>

        Fixed transient behavior when the cache plugin is enabled.

        * wp-content/themes/webkit/functions.php:
        * wp-content/themes/webkit/includes.php:
        * wp-content/themes/webkit/nightly.php:

2015-12-03  Jonathan Davis  <jond@apple.com>

        Add sub-section anchors to code style guidelines
        https://bugs.webkit.org/show_bug.cgi?id=151770

        Reviewed by Timothy Hatcher.

        * code-style.md:
        * wp-content/plugins/table-of-contents.php:
        * wp-content/themes/webkit/includes.php:
        * wp-content/themes/webkit/style.css:
        (a[name]):
        (p > a[name]::before):
        (a[name]:hover):
        (h6 a[name]):
        (.admin-bar a[name]):
        (.admin-bar p > a[name]::before):
        (.screen-reader-text):
        (.table-of-contents ul li > ul):
        (#post-4132 pre:nth-child(-n+10)):
        (#post-4132 pre:nth-child(-n+8)): Deleted.

2015-12-01  Jonathan Davis  <jond@apple.com>

        Updated favicon.ico with the new logo.

        * favicon.ico:

2015-12-01  Jonathan Davis  <jond@apple.com>

        Improved accessibility handling for the small drop-down menu.

        * wp-content/themes/webkit/scripts/global.js:

2015-12-01  Jonathan Davis  <jond@apple.com>

        Fixed font rendering. Fixed SVG rendering for Firefox.

        * wp-content/themes/webkit/images/icons.svg:
        * wp-content/themes/webkit/images/inspector.svg:
        * wp-content/themes/webkit/images/twitter.svg:
        * wp-content/themes/webkit/style.css:
        (code):
        (a[name]):
        (.screen-reader-text:focus):
        (.page-width):
        (.tile.category-web-inspector .background-image):
        (.tile.category-performance .background-image):
        (.tile.category-javascript .background-image):
        (.tile.category-css .background-image):
        (.tile.category-standards .background-image):
        (.tile.category-contributing .background-image):
        (.tile.category-storage .background-image):
        (.tile.category-layout .background-image):
        (.tile.tag-timeline .background-image):
        (.tile.tag-console .background-image):
        (.tile.tag-debugger .background-image):
        (.tile.tag-shortcuts .background-image):
        (.tile .background-image.loaded):
        (body, input, textarea, select, button): Deleted.

2015-12-01  Jonathan Davis  <jond@apple.com>

        Removed escpaes to correctly pass query string arguments.

        * .htaccess:

2015-12-01  Jonathan Davis  <jond@apple.com>

        Corrected rewrite rules to restore convenience paths.

        * .htaccess:

2015-12-01  Jonathan Davis  <jond@apple.com>

        Fixed static reference PHP syntax for compatibility with the server environment.

        * wp-content/plugins/table-of-contents.php:

2015-12-01  Jonathan Davis  <jond@apple.com>

        Fixed PHP syntax for compatibility with the server environment.

        * wp-content/plugins/social-meta.php:
        * wp-content/themes/webkit/functions.php:
        * wp-content/themes/webkit/widgets/twitter.php:

2015-12-01  Jonathan Davis  <jond@apple.com>

        Updated webkit.org to use the new theme and WordPress deployment.

        * .htaccess:
        * blog/.htaccess:
        * index.php: Added.

2015-12-01  Jonathan Davis  <jond@apple.com>

        Fixed data return format for tweets when updating cache.

        * wp-content/themes/webkit/widgets/twitter.php:

2015-12-01  Jonathan Davis  <jond@apple.com>

        Theme update to tidy styles and add a theme screenshot.

        * wp-content/themes/webkit/screenshot.png: Added.
        * wp-content/themes/webkit/style.css:
        (.featured-tile):
        (.tile .background-image):

2015-11-30  Jonathan Davis  <jond@apple.com>

        Set max-height to prevent narrow images from upscaling.

        * wp-content/themes/webkit/style.css:
        (article figure > img):
        (figure.widescreen):
        (figure.widescreen figcaption):
        (figure.widescreen img): Deleted.

2015-11-30  Jonathan Davis  <jond@apple.com>

        Added a new theme and plugins for a redesigned webkit.org.

        Reviewed by Timothy Hatcher.

        * apple-touch-icon-precomposed.png: Added.
        * code-style.md: Added.
        * commit-review.md: Added.
        * favicon.png: Added.
        * security-policy.md: Added.
        * tabicon.svg: Added.
        * wp-content: Added.
        * wp-content/index.php: Added.
        * wp-content/maintenance.php: Added.
        * wp-content/plugins: Added.
        * wp-content/plugins/analytics.php: Added.
        * wp-content/plugins/hyperlight: Added.
        * wp-content/plugins/hyperlight/hyperlight: Added.
        * wp-content/plugins/hyperlight/hyperlight.php: Added.
        * wp-content/plugins/hyperlight/hyperlight/hyperlight.php: Added.
        * wp-content/plugins/hyperlight/hyperlight/languages: Added.
        * wp-content/plugins/hyperlight/hyperlight/languages/apache.php: Added.
        * wp-content/plugins/hyperlight/hyperlight/languages/blocklist.php: Added.
        * wp-content/plugins/hyperlight/hyperlight/languages/code.php: Added.
        * wp-content/plugins/hyperlight/hyperlight/languages/cpp.php: Added.
        * wp-content/plugins/hyperlight/hyperlight/languages/csharp.php: Added.
        * wp-content/plugins/hyperlight/hyperlight/languages/css.php: Added.
        * wp-content/plugins/hyperlight/hyperlight/languages/diff.php: Added.
        * wp-content/plugins/hyperlight/hyperlight/languages/filetypes: Added.
        * wp-content/plugins/hyperlight/hyperlight/languages/html.php: Added.
        * wp-content/plugins/hyperlight/hyperlight/languages/ini.php: Added.
        * wp-content/plugins/hyperlight/hyperlight/languages/iphp.php: Added.
        * wp-content/plugins/hyperlight/hyperlight/languages/javascript.php: Added.
        * wp-content/plugins/hyperlight/hyperlight/languages/php.php: Added.
        * wp-content/plugins/hyperlight/hyperlight/languages/python.php: Added.
        * wp-content/plugins/hyperlight/hyperlight/languages/syntax.php: Added.
        * wp-content/plugins/hyperlight/hyperlight/languages/vb.php: Added.
        * wp-content/plugins/hyperlight/hyperlight/languages/xml.php: Added.
        * wp-content/plugins/hyperlight/hyperlight/preg_helper.php: Added.
        * wp-content/plugins/index.php: Added.
        * wp-content/plugins/social-meta.php: Added.
        * wp-content/plugins/table-of-contents.php: Added.
        * wp-content/plugins/visual-preview.php: Added.
        * wp-content/themes: Added.
        * wp-content/themes/index.php: Added.
        * wp-content/themes/webkit: Added.
        * wp-content/themes/webkit/404.php: Added.
        * wp-content/themes/webkit/444.php: Added.
        * wp-content/themes/webkit/footer.php: Added.
        * wp-content/themes/webkit/front-header.php: Added.
        * wp-content/themes/webkit/front-page.php: Added.
        * wp-content/themes/webkit/functions.php: Added.
        * wp-content/themes/webkit/header.php: Added.
        * wp-content/themes/webkit/images: Added.
        * wp-content/themes/webkit/images/download.svg: Added.
        * wp-content/themes/webkit/images/icons.svg: Added.
        * wp-content/themes/webkit/images/inspector.svg: Added.
        * wp-content/themes/webkit/images/menu-down.svg: Added.
        * wp-content/themes/webkit/images/squirrelfish-lives.svg: Added.
        * wp-content/themes/webkit/images/twitter.svg: Added.
        * wp-content/themes/webkit/images/webkit.svg: Added.
        * wp-content/themes/webkit/includes.php: Added.
        * wp-content/themes/webkit/index.php: Added.
        * wp-content/themes/webkit/loop.php: Added.
        * wp-content/themes/webkit/nightly.php: Added.
        * wp-content/themes/webkit/page.php: Added.
        * wp-content/themes/webkit/scripts: Added.
        * wp-content/themes/webkit/scripts/global.js: Added.
        * wp-content/themes/webkit/single.php: Added.
        * wp-content/themes/webkit/sitemap.php: Added.
        * wp-content/themes/webkit/status.php: Added.
        * wp-content/themes/webkit/style.css: Added.
        * wp-content/themes/webkit/team.php: Added.
        * wp-content/themes/webkit/widgets: Added.
        * wp-content/themes/webkit/widgets/icon.php: Added.
        * wp-content/themes/webkit/widgets/page.php: Added.
        * wp-content/themes/webkit/widgets/post.php: Added.
        * wp-content/themes/webkit/widgets/twitter.php: Added.

2015-11-18  Jonathan Davis  <jond@apple.com>

        Adding a maintenance file for the old WordPress blog.

        Reviewed by Timothy Hatcher.

        * blog/wp-content/maintenance.php: Added.

2015-10-26  Ryosuke Niwa  <rniwa@webkit.org>

        Add images needed for shadow DOM blog post
        https://bugs.webkit.org/show_bug.cgi?id=150549

        Reviewed by Timothy Hatcher.

        Added images.

        * blog-files/introducing-shadow-dom: Added.
        * blog-files/introducing-shadow-dom/commit-queue-contact.png: Added.
        * blog-files/introducing-shadow-dom/progress-bar.png: Added.

2015-10-05  Nikita Vasilyev  <nvasilyev@apple.com>

        Modify the image to fit the width of the blog.

        * blog-files/web-inspector-keyboard-shortcuts/debugger-shortcuts.png:

2015-10-05  Nikita Vasilyev  <nvasilyev@apple.com>

        Add more assets for Web Inspector Keyboard Shortcuts blog post.

        * blog-files/web-inspector-keyboard-shortcuts/icon-disable.png: Added.
        * blog-files/web-inspector-keyboard-shortcuts/icon-play.png: Added.
        * blog-files/web-inspector-keyboard-shortcuts/icon-step-in.png: Added.
        * blog-files/web-inspector-keyboard-shortcuts/icon-step-out.png: Added.
        * blog-files/web-inspector-keyboard-shortcuts/icon-step-over.png: Added.
        * blog-files/web-inspector-keyboard-shortcuts/search.png: Added.

2015-10-05  Nikita Vasilyev  <nvasilyev@apple.com>

        Add assets for Web Inspector Keyboard Shortcuts blog post.

        * blog-files/web-inspector-keyboard-shortcuts/clear-console.png: Added.
        * blog-files/web-inspector-keyboard-shortcuts/console-filters.m4v: Added.
        * blog-files/web-inspector-keyboard-shortcuts/debugger-shortcuts.png: Added.
        * blog-files/web-inspector-keyboard-shortcuts/hide-element.m4v: Added.
        * blog-files/web-inspector-keyboard-shortcuts/select-next-and-previous-tabs.m4v: Added.
        * blog-files/web-inspector-keyboard-shortcuts/toggle-split-console.m4v: Added.
        * blog-files/web-inspector-keyboard-shortcuts/tooltips.gif: Added.

2015-09-15  Wenson Hsieh  <wenson_hsieh@apple.com>

        Add anchor tags for scroll snapping examples.

        * demos/scroll-snap/index.html: Added anchor tags.

2015-09-14  Wenson Hsieh  <wenson_hsieh@apple.com>

        Add scroll snap blog post resources.

        * blog-files/scroll-snap/overflow-normal.mp4: Added.
        * blog-files/scroll-snap/snap-2d-rotated.mp4: Added.
        * blog-files/scroll-snap/snap-2d.mp4: Added.
        * blog-files/scroll-snap/snap-coordinates-centered.mp4: Added.
        * blog-files/scroll-snap/snap-coordinates.mp4: Added.
        * blog-files/scroll-snap/snap-repeat-100.mp4: Added.

2015-09-14  Wenson Hsieh  <wenson_hsieh@apple.com>

        Add scroll snap demo directory and files.

        * demos/scroll-snap/images/1.png: Added.
        * demos/scroll-snap/images/10.png: Added.
        * demos/scroll-snap/images/11.png: Added.
        * demos/scroll-snap/images/12.png: Added.
        * demos/scroll-snap/images/13.png: Added.
        * demos/scroll-snap/images/14.png: Added.
        * demos/scroll-snap/images/15.png: Added.
        * demos/scroll-snap/images/16.png: Added.
        * demos/scroll-snap/images/2.png: Added.
        * demos/scroll-snap/images/3.png: Added.
        * demos/scroll-snap/images/4.png: Added.
        * demos/scroll-snap/images/5.png: Added.
        * demos/scroll-snap/images/6.png: Added.
        * demos/scroll-snap/images/7.png: Added.
        * demos/scroll-snap/images/8.png: Added.
        * demos/scroll-snap/images/9.png: Added.
        * demos/scroll-snap/images/bluecross.svg: Added.
        * demos/scroll-snap/images/corner.svg: Added.
        * demos/scroll-snap/index.html: Added.

2015-09-03  Matt Baker  <mattbaker@apple.com>

        Added and updated assets for Introducing the Rendering Frames Timeline blog post.

        * blog-files/rendering-frames-timeline/inspector-rendering-frames-demo.mov: Added.
        * blog-files/rendering-frames-timeline/inspector-rendering-frames-filtering.png:
        * blog-files/rendering-frames-timeline/inspector-rendering-frames.png:
        * blog-files/rendering-frames-timeline/inspector-task-filters.png:

2015-09-03  Matt Baker  <mattbaker@apple.com>

        Add assets for Introducing the Rendering Frames Timeline blog post.

        * blog-files/rendering-frames-timeline/inspector-15ms-filter-after-2x.png: Added.
        * blog-files/rendering-frames-timeline/inspector-15ms-filter-after.png: Added.
        * blog-files/rendering-frames-timeline/inspector-15ms-filter-before-2x.png: Added.
        * blog-files/rendering-frames-timeline/inspector-15ms-filter-before.png: Added.
        * blog-files/rendering-frames-timeline/inspector-frames-graph-2x.png: Added.
        * blog-files/rendering-frames-timeline/inspector-frames-graph.png: Added.
        * blog-files/rendering-frames-timeline/inspector-rendering-frames-2x.png: Added.
        * blog-files/rendering-frames-timeline/inspector-rendering-frames-filtering-2x.png: Added.
        * blog-files/rendering-frames-timeline/inspector-rendering-frames-filtering.png: Added.
        * blog-files/rendering-frames-timeline/inspector-rendering-frames.png: Added.
        * blog-files/rendering-frames-timeline/inspector-task-filters-2x.png: Added.
        * blog-files/rendering-frames-timeline/inspector-task-filters.png: Added.

2015-08-28  Jonathan Davis  <jond@apple.com>

        Add assets for Styles Sidebar Refinements in Web Inspector blog post.

        * blog-files/styles-sidebar-refinements-in-web-inspector: Added.
        * blog-files/styles-sidebar-refinements-in-web-inspector/ComputedToRules-1x.png: Added.
        * blog-files/styles-sidebar-refinements-in-web-inspector/ComputedToRules-2x.png: Added.
        * blog-files/styles-sidebar-refinements-in-web-inspector/Filter-1x.png: Added.
        * blog-files/styles-sidebar-refinements-in-web-inspector/Filter-2x.png: Added.
        * blog-files/styles-sidebar-refinements-in-web-inspector/FilterSelector-1x.png: Added.
        * blog-files/styles-sidebar-refinements-in-web-inspector/FilterSelector-2x.png: Added.
        * blog-files/styles-sidebar-refinements-in-web-inspector/SelectorHovering-1x.png: Added.
        * blog-files/styles-sidebar-refinements-in-web-inspector/SelectorHovering-2x.png: Added.
        * blog-files/styles-sidebar-refinements-in-web-inspector/Tabbing.mp4: Added.
        * blog-files/styles-sidebar-refinements-in-web-inspector/WarningIcon-1x.png: Added.
        * blog-files/styles-sidebar-refinements-in-web-inspector/WarningIcon-2x.png: Added.

2015-08-26  Brent Fulgham  <bfulgham@apple.com>

        Update Windows tool install instructions.

        * building/tools.html:

2015-08-24  Saam barati  <sbarati@apple.com>

        Add mp4 version of types-changing video.

        * blog-files/type-profiler-and-code-coverage-profiler/types-changing.mp4: Added.

2015-08-23  Saam barati  <sbarati@apple.com>

        Change compiler-pipeline image for type profiler and code coverage profiler blog post.

        * blog-files/type-profiler-and-code-coverage-profiler/compiler-pipeline-1x.png: Added.
        * blog-files/type-profiler-and-code-coverage-profiler/compiler-pipeline-2x.png: Added.
        * blog-files/type-profiler-and-code-coverage-profiler/compiler-pipeline.png: Removed.

2015-08-22  Saam barati  <sbarati@apple.com>

        Change image for type profiler and code coverage profiler blog post.

        * blog-files/type-profiler-and-code-coverage-profiler/code-coverage-1x.png:
        * blog-files/type-profiler-and-code-coverage-profiler/code-coverage-2x.png:

2015-08-22  Saam barati  <sbarati@apple.com>

        Change video for type profiler and code coverage profiler blog post.

        * blog-files/type-profiler-and-code-coverage-profiler/types-changing.mov:

2015-08-22  Saam barati  <sbarati@apple.com>

        Add 1x/2x resources for type profiler and code coverage profiler blog post.

        * blog-files/type-profiler-and-code-coverage-profiler/code-coverage-1x.png: Added.
        * blog-files/type-profiler-and-code-coverage-profiler/code-coverage-2x.png: Added.
        * blog-files/type-profiler-and-code-coverage-profiler/code-coverage.png: Removed.
        * blog-files/type-profiler-and-code-coverage-profiler/subtle-bug-1x.png: Added.
        * blog-files/type-profiler-and-code-coverage-profiler/subtle-bug-2x.png: Added.
        * blog-files/type-profiler-and-code-coverage-profiler/subtle-bug.png: Removed.
        * blog-files/type-profiler-and-code-coverage-profiler/type-profiler-api-view-1x.png: Added.
        * blog-files/type-profiler-and-code-coverage-profiler/type-profiler-api-view-2x.png: Added.
        * blog-files/type-profiler-and-code-coverage-profiler/type-profiler-api-view.png: Removed.
        * blog-files/type-profiler-and-code-coverage-profiler/types-everywhere-1x.png: Added.
        * blog-files/type-profiler-and-code-coverage-profiler/types-everywhere-2x.png: Added.
        * blog-files/type-profiler-and-code-coverage-profiler/types-everywhere.png: Removed.

2015-08-21  Saam barati  <sbarati@apple.com>

        Edit a resource for type profiler and code coverage profiler blog post.

        * blog-files/type-profiler-and-code-coverage-profiler/types-everywhere.png:

2015-08-21  Saam barati  <sbarati@apple.com>

        Add resources for type profiler and code coverage profiler blog post.

        * blog-files/type-profiler-and-code-coverage-profiler: Added.
        * blog-files/type-profiler-and-code-coverage-profiler/code-coverage-video.mp4: Added.
        * blog-files/type-profiler-and-code-coverage-profiler/code-coverage.png: Added.
        * blog-files/type-profiler-and-code-coverage-profiler/compiler-pipeline.png: Added.
        * blog-files/type-profiler-and-code-coverage-profiler/subtle-bug.png: Added.
        * blog-files/type-profiler-and-code-coverage-profiler/type-profiler-api-view.png: Added.
        * blog-files/type-profiler-and-code-coverage-profiler/types-changing.mov: Added.
        * blog-files/type-profiler-and-code-coverage-profiler/types-everywhere.png: Added.

2015-08-06  Brent Fulgham  <bfulgham@apple.com>

        Correct a typo in the explanatory text.

        * demos/backdrop-filter/index.html:

2015-08-06  Brent Fulgham  <bfulgham@apple.com>

        Add an example of backdrop-filter.

        * demos/backdrop-filter: Added.
        * demos/backdrop-filter/dynamic_poster.jpg: Added.
        * demos/backdrop-filter/dynamic_source.m4v: Added.
        * demos/backdrop-filter/index.html: Added.
        * demos/backdrop-filter/inverted_color.jpg: Added.
        * demos/backdrop-filter/multiple.jpg: Added.
        * demos/backdrop-filter/simple_blur.jpg: Added.

2015-08-06  Brent Fulgham  <bfulgham@apple.com>

        Add a poster image for the video.

        * blog-files/backdrop-filters/dynamic_poster.jpg: Added.

2015-08-06  Brent Fulgham  <bfulgham@apple.com>

        Add more media control examples.

        * blog-files/backdrop-filters/dynamic_backdrop.m4v: Added.
        * blog-files/backdrop-filters/Media_Controls_Complete_2x.jpg: Added.
        * blog-files/backdrop-filters/Media_Controls_Complete_2x.jpg: Added.

2015-08-06  Brent Fulgham  <bfulgham@apple.com>

        Add two more files for a future blog post.

        * blog-files/backdrop-filters/Media_Controls_1x.jpg: Added.
        * blog-files/backdrop-filters/Media_Controls_2x.jpg: Added.

2015-08-05  Benjamin Poulain  <benjamin@webkit.org>

        Fix the twitter links on the status page

        * status.html:

2015-08-03  Benjamin Poulain  <benjamin@webkit.org>

        Prepare screenshots for a potential blog post

        * blog-files/css-selectors-level-4/dynamic-specificity-1x.png: Added.
        * blog-files/css-selectors-level-4/dynamic-specificity-2x.png: Added.

2015-07-28  Geoffrey Garen  <ggaren@apple.com>

        SunSpider is no longer maintained
        https://bugs.webkit.org/show_bug.cgi?id=147370

        Reviewed by Michael Saboff.

        Add an indicator to show that SunSpider is no longer maintained.

        * perf/sunspider/sunspider.css:
        (#logo):
        (.topbox):
        (.bottombox):
        * perf/sunspider/sunspider.html:

2015-07-24  Myles C. Maxfield  <mmaxfield@apple.com>

        Add image for a blog post

        * blog-files/el-capitan-system-font.png: Added.

2015-07-23  Timothy Hatcher  <timothy@apple.com>

        Change some images for a blog post and add 2x images.

        * blog-files/inspector-elements-tab-2x.png: Added.
        * blog-files/inspector-elements-tab.png: Updated.
        * blog-files/inspector-network-tab-2x.png: Added.
        * blog-files/inspector-network-tab.png: Updated.
        * blog-files/inspector-tab-bar-2x.png: Added.
        * blog-files/inspector-tab-bar.png: Updated.

2015-07-23  Timothy Hatcher  <timothy@apple.com>

        Change some images for a blog post.

        * blog-files/inspector-elements-tab.png:
        * blog-files/inspector-network-tab.png:

2015-07-23  Timothy Hatcher  <timothy@apple.com>

        Add and change some images for a blog post.

        * blog-files/inspector-elements-network-tabs.png: Removed.
        * blog-files/inspector-elements-tab.png: Added.
        * blog-files/inspector-network-tab.png: Added.
        * blog-files/inspector-tab-bar.png:

2015-07-23  Brent Fulgham  <bfulgham@apple.com>

        Correct rest of the images to match.

        * blog-files/backdrop-filters/backdrop_correct_1x.jpg:
        * blog-files/backdrop-filters/backdrop_correct_2x.jpg:
        * blog-files/backdrop-filters/backdrop_invert_1x.jpg:
        * blog-files/backdrop-filters/backdrop_invert_2x.jpg:
        * blog-files/backdrop-filters/backdrop_mixed_1x.jpg:

2015-07-23  Brent Fulgham  <bfulgham@apple.com>

        Adjust image sizes to avoid page scaling.

        * blog-files/backdrop-filters/Screen_OSX_Yosemite_Finder-iCloud-WaterBg_1x.jpg:
        * blog-files/backdrop-filters/Screen_OSX_Yosemite_Finder-iCloud-WaterBg_2x.jpg:
        * blog-files/backdrop-filters/Screen_V_iOS8_ControlCenter_BlueGradient_1x.jpg:
        * blog-files/backdrop-filters/Screen_V_iOS8_ControlCenter_BlueGradient_2x.jpg:
        * blog-files/backdrop-filters/backdrop_mixed_2x.jpg:

2015-07-22  Brent Fulgham  <bfulgham@apple.com>

        Add some images needed for an upcoming blog post.

        * blog-files/backdrop-filters: Added.
        * blog-files/backdrop-filters/Screen_OSX_Yosemite_Finder-iCloud-WaterBg_1x.jpg: Added.
        * blog-files/backdrop-filters/Screen_OSX_Yosemite_Finder-iCloud-WaterBg_2x.jpg: Added.
        * blog-files/backdrop-filters/Screen_V_iOS8_ControlCenter_BlueGradient_1x.jpg: Added.
        * blog-files/backdrop-filters/Screen_V_iOS8_ControlCenter_BlueGradient_2x.jpg: Added.
        * blog-files/backdrop-filters/backdrop_correct_1x.jpg: Added.
        * blog-files/backdrop-filters/backdrop_correct_2x.jpg: Added.
        * blog-files/backdrop-filters/backdrop_invert_1x.jpg: Added.
        * blog-files/backdrop-filters/backdrop_invert_2x.jpg: Added.
        * blog-files/backdrop-filters/backdrop_mixed_1x.jpg: Added.
        * blog-files/backdrop-filters/backdrop_mixed_2x.jpg: Added.

2015-07-11  Timothy Hatcher  <timothy@apple.com>

        Add some images for a blog post.

        * blog-files/inspector-elements-network-tabs.png: Added.
        * blog-files/inspector-tab-bar.png: Added.
        * blog-files/inspector-tab-icons.svg: Added.

2015-06-30  Jonathan Davis  <jond@apple.com>

        Added WebKit feature status page to navigation.

        Reviewed by Timothy Hatcher.

        * nav.inc:

2015-06-24  Joseph Pecoraro  <pecoraro@apple.com>

        Add some images for a blog post.

        * blog-files/console-improvements/array-api.png: Added.
        * blog-files/console-improvements/collections.png: Added.
        * blog-files/console-improvements/console-messages.png: Added.
        * blog-files/console-improvements/interactivity.m4v: Added.
        * blog-files/console-improvements/iterators.png: Added.
        * blog-files/console-improvements/localStorage-api.png: Added.
        * blog-files/console-improvements/object-preview.png: Added.
        * blog-files/console-improvements/object-tree.png: Added.
        * blog-files/console-improvements/promises.png: Added.
        * blog-files/console-improvements/tooltip-1.png: Added.
        * blog-files/console-improvements/tooltip-2.png: Added.

2015-06-19  Csaba Osztrogonác  <ossy@webkit.org>

        Remove unnecessary svn:executable flags
        https://bugs.webkit.org/show_bug.cgi?id=146107

        Reviewed by Alexey Proskuryakov.

        * blog-files/inspector/css_as_authored.png: Removed property svn:executable.
        * blog-files/inspector/css_autocomplete.png: Removed property svn:executable.
        * blog-files/inspector/css_rule_diff.png: Removed property svn:executable.
        * blog-files/inspector/css_unknown_properties.png: Removed property svn:executable.
        * blog-files/inspector/warning_10x10.png: Removed property svn:executable.
        * demos/regions/pizza-regions-manifesto-regionstyling.html: Removed property svn:executable.
        * demos/regions/pizza-regions-manifesto.html: Removed property svn:executable.
        * demos/regions/yellow-pizza.jpg: Removed property svn:executable.

2015-05-20  Jon Davis  <jond@apple.com>

        Upgrading WordPress to 4.2.2 release.

        Rubber-stamped by Timothy Hatcher.

        * Websites/webkit.org/blog/:
        * Websites/webkit.org/blcd Tog/wp-admin/:
        * Websites/webkit.org/blog/wp-admin/css/:
        * Websites/webkit.org/blog/wp-admin/css/colors/:
        * Websites/webkit.org/blog/wp-admin/images/:
        * Websites/webkit.org/blog/wp-admin/includes/:
        * Websites/webkit.org/blog/wp-admin/js/:
        * Websites/webkit.org/blog/wp-admin/maint/:
        * Websites/webkit.org/blog/wp-admin/network/:
        * Websites/webkit.org/blog/wp-admin/user/:
        * Websites/webkit.org/blog/wp-includes/:
        * Websites/webkit.org/blog/wp-includes/ID3/:
        * Websites/webkit.org/blog/wp-includes/SimplePie/:
        * Websites/webkit.org/blog/wp-includes/Text/:
        * Websites/webkit.org/blog/wp-includes/certificates/:
        * Websites/webkit.org/blog/wp-includes/css/:
        * Websites/webkit.org/blog/wp-includes/fonts/:
        * Websites/webkit.org/blog/wp-includes/images/:
        * Websites/webkit.org/blog/wp-includes/js/:
        * Websites/webkit.org/blog/wp-includes/pomo/:
        * Websites/webkit.org/blog/wp-includes/theme-compat/:

2015-04-28  Yusuke Suzuki  <utatane.tea@gmail.com>

        Fix the link noted 'contribute to features' in status.html
        https://bugs.webkit.org/show_bug.cgi?id=144331

        Reviewed by Csaba Osztrogonác.

        Fix the href of the link to http://www.webkit.org/coding/contributing.html.

        * status.html:

2015-04-28  Ryuan Choi  <ryuan.choi@navercorp.com>

        Add naver to team.html
        https://bugs.webkit.org/show_bug.cgi?id=144298

        Reviewed by Gyuyoung Kim.

        * team.html:

2015-04-27  Benjamin Poulain  <bpoulain@apple.com>

        Status page: fix the email links

        * status.html:

2015-04-26  Benjamin Poulain  <benjamin@webkit.org>

        Improve the status page
        https://bugs.webkit.org/show_bug.cgi?id=144248

        Reviewed by Darin Adler.

        * status.html:
        Lots of minor changes:
        -Add a page title.
        -Do not use sync XHR. That was nice for testing but that's eveil
         and it breaks Firefox.
        -Start fetching the json files as soon as possible during page load,
         that server takes forever to respond.
        -Remove some useless CSS.
        -Get rid of mustache. That template thing was awesome but it took
         up to 600ms to fetch the file (plus it is not exactly efficient).
        -Put both the specifications and the features in the list.
         They are referencing each other with links. That seems to work pretty well.
        -Use the keywords for filtering.

2015-04-26  Benjamin Poulain  <benjamin@webkit.org>, Chris Bateman  <chrisb808@gmail.com>

        Start a basic status page on webkit.org
        https://bugs.webkit.org/show_bug.cgi?id=143940

        Reviewed by Darin Adler.

        * status.html: Added.
        Nothing fancy, for now just show the "features" list of the two features.json

2015-04-19  Dan Bernstein  <mitz@apple.com>

        Fixed a typo.

        * coding/RefPtr.html:

2015-04-19  Darin Adler  <darin@apple.com>

        Update RefPtr documentation and deprecation
        https://bugs.webkit.org/show_bug.cgi?id=143936

        Reviewed by Andreas Kling.

        * coding/RefPtr.html: Updated.

2015-03-10  Joseph Pecoraro  <pecoraro@apple.com>

        Fix warning about loading insecure content from secure webkit.org/blog
        https://bugs.webkit.org/show_bug.cgi?id=142545

        Reviewed by Mark Rowe.

        * blog/wp-content/themes/webkit/footer.php:
        Use an "https" URL for the subresource, instead of "http".

2015-02-20  Alexey Proskuryakov  <ap@apple.com>

        Remove svn:keywords property.

        As far as I can tell, the property had no effect on any of these files, but also,
        when it has effect it's likely harmful.

        * demos/srcset/index.html: Removed property svn:keywords.
        * specs/index.html: Removed property svn:keywords.

2015-02-13  Csaba Osztrogonác  <ossy@webkit.org>

        Unreviewed, remove empty directories.

        * blog/wp-includes/js/codepress: Removed.

2015-02-03  Byungseon Shin  <sun.shin@webkit.org>

        Add LG Electronics to team.html
        https://bugs.webkit.org/show_bug.cgi?id=141227

        Reviewed by Andreas Kling.

        * team.html:

2015-01-30  Chris Dumez  <cdumez@apple.com>

        Add "Singleton pattern" section to the WebKit coding style
        https://bugs.webkit.org/show_bug.cgi?id=141040

        Reviewed by Ryosuke Niwa.

        Add "Singleton pattern" section to the WebKit coding style to document
        what was discussed on webkit-dev:
        https://lists.webkit.org/pipermail/webkit-dev/2015-January/027199.html

        * coding/coding-style.html:

2015-01-27  Daniel Bates  <dabates@apple.com>

        Update Xcode requirement and add instructions to build, run, and debug WebKit for iOS Simulator

        Reviewed by David Kilzer.

        * building/build.html: Added instructions to build WebKit for iOS Simulator.
        * building/debug.html: Added some instructions to debug the UIProcess and WebProcess
        in the iOS Simulator using command line tools. We should look to add Xcode instructions
        and simplify these steps once we teach debug-safari about the iOS Simulator.
        * building/run.html: Added remark to run Safari in the iOS Simulator.
        * building/tools.html: Require Xcode 6.1.1 (for the iOS 8.1 SDK) to build for iOS Simulator.
        * css/main.css: Define the .ios-instructions class with the same style as other .*-instructions classes.

2014-09-27  Dan Bernstein  <mitz@apple.com>

        WebKit top of tree sources won't build in 10.9 w/ Xcode 6.0.1
        https://bugs.webkit.org/show_bug.cgi?id=137053

        Reviewed by Mark Rowe.

        * building/build.html: Removed instructions how to work around this bug, now that it’s fixed.

2014-09-26  Alexey Proskuryakov  <ap@apple.com>

        WebKit top of tree sources won't build in 10.9 w/ Xcode 6.0.1
        https://bugs.webkit.org/show_bug.cgi?id=137053

        Patch by David Gatwood. Reviewed, tweaked and landed by Alexey Proskuryakov.

        Explain that to build from Xcode, one needs to build from command line once first.

        Removed a Windows section that explained how to launch cygwin shell, which was
        silly given that we then link to a long document explaining further steps.

        * building/build.html:

2014-09-24  Langó László  <llango.u-szeged@partner.samsung.com>

        Update the list of u-szeged contributors.

        Rubber-stamped by Csaba Osztrogonác <ossy@webkit.org>.

        * team.html:

2014-09-18  Dean Jackson  <dino@apple.com>

        Expand the srcset demo to have 3x and 4x images.

        Unreviewed.

        * demos/srcset/image-1x.png:
        * demos/srcset/image-2x.png:
        * demos/srcset/image-3x.png: Added.
        * demos/srcset/image-4x.png: Added.
        * demos/srcset/index.html:

2014-08-27  Conrad Shultz  <conrad_shultz@apple.com>

        webkit.org is inconsistent in uses of "OS X" vs. "Mac OS X"
        https://bugs.webkit.org/show_bug.cgi?id=136315

        Reviewed by Mark Rowe.

        * building/checkout.html:
        * building/debug-mac-uiprocess.html:
        * building/debug.html:
        * building/run.html:
        * building/tools.html:
        * contact.html:
        * index.html:
        * projects/javascript/index.html:
        * projects/svg/index.html:
        * quality/bugwriting.html:
        * quality/crashlogs.html:
        * quality/leakhunting.html:
        * quality/lifecycle.html:
        * quality/testing.html:

2014-08-27  László Langó  <llango.u-szeged@partner.samsung.com>

        http://webkit.org/coding/coding-style.html should mention check-webkit-style.
        https://bugs.webkit.org/show_bug.cgi?id=31993

        Reviewed by Darin Adler.

        Based on patch by Peter Szanka <h868064@stud.u-szeged.hu>

        * coding/contributing.html:
        Extend the description of code style guidelines with check-webkit-style in the contributing.html.

2014-08-18  Bem Jones-Bey  <bjonesbe@adobe.com>

        Remove people that have left Adobe from Security Contact list
        https://bugs.webkit.org/show_bug.cgi?id=135256

        Reviewed by Alexey Proskuryakov.

        * security/security-group-members.html:

2014-08-06  peavo@outlook.com  <peavo@outlook.com>

        [Win] Build error when OFFICIAL_BUILD != 1.
        https://bugs.webkit.org/show_bug.cgi?id=135613

        Reviewed by Alex Christensen.

        Added python installation as a required step before building on Windows.

        * building/tools.html:

2014-07-24  Bem Jones-Bey  <bjonesbe@adobe.com>

        Committers should mail webkit-committers not webkit-reviewers for reactivation
        https://bugs.webkit.org/show_bug.cgi?id=135203

        Reviewed by Ryosuke Niwa.

        Only reviewers can send mail to webkit-reviewers. Amend the policy so that committers should
        send mail to webkit-committers instead of webkit-reviewers.

        * coding/commit-review-policy.html:

2014-07-15  Alex Christensen  <achristensen@webkit.org>

        Make css jit benchmark work on IE11.
        https://bugs.webkit.org/show_bug.cgi?id=134956

        Reviewed by Benjamin Poulain.

        * blog-files/css-jit-introduction/html5-single-page-microbenchmark.html:
        Remove an iframe which caused IE11 to try to open content as a URL.

2014-07-08  Bem Jones-Bey  <bjonesbe@adobe.com>

        Update policy for Inactive Committer and Reviewer status
        https://bugs.webkit.org/show_bug.cgi?id=134403

        Reviewed by Nico Weber.

        * coding/commit-review-policy.html:

2014-06-26  Vivek Galatage  <vivek.vg@samsung.com>

        Remove Qt instructions from http://www.webkit.org/building/tools.html
        https://bugs.webkit.org/show_bug.cgi?id=134384

        Reviewed by Tim Horton.

        * building/tools.html:
        * css/main.css:
        (.mac-instructions, .unix-instructions, .windows-instructions, .gtk-instructions, .efl-instructions):
        (.mac-instructions, .unix-instructions, .windows-instructions, .gtk-instructions, .qt-instructions, .efl-instructions): Deleted.

2014-06-25  Brent Fulgham  <bfulgham@apple.com>

        [Win] Whoops! DirectX SDK is still needed.

        * building/tools.html: Put DirectX instruction back.

2014-06-24  Brent Fulgham  <bfulgham@apple.com>

        [Win] Remove some out-of-date stuff from our instructions.
        https://bugs.webkit.org/show_bug.cgi?id=134282

        Reviewed by Tim Horton.

        * building/build.html: Remove reference to "Platform SDK" which we don't manuall
        install anymore (it's part of Visual Studio 2013).
        * building/tools.html: We no longer need QuickTime SDK, QuickTime Player, or
        the DirectX SDK.

2014-06-23  Ryosuke Niwa  <rniwa@webkit.org>

        Drop the cross organizational support requirement from reviewer nomination policy
        https://bugs.webkit.org/show_bug.cgi?id=134240

        Reviewed by Gyuyoung Kim.

        Removed.

        * coding/commit-review-policy.html:

2014-05-13  Filip Pizlo  <fpizlo@apple.com>

        Updated the files to have the right width.

        * blog-files/ftl-jit/dfg_pipeline.png:
        * blog-files/ftl-jit/four_tier_performance.png:
        * blog-files/ftl-jit/ftl_asm_bench_performance.png:
        * blog-files/ftl-jit/ftl_pipeline.png:
        * blog-files/ftl-jit/ftl_timeline.png:
        * blog-files/ftl-jit/polymorphic_inlining_performance.png:
        * blog-files/ftl-jit/polyvariance.png:
        * blog-files/ftl-jit/polyvariant_devirtualization_performance.png:
        * blog-files/ftl-jit/three_tier_performance.png:

2014-05-13  Filip Pizlo  <fpizlo@apple.com>

        Add some illustrations about how JSC works.

        * blog-files/ftl-jit: Added.
        * blog-files/ftl-jit/dfg_pipeline.png: Added.
        * blog-files/ftl-jit/four_tier_performance.png: Added.
        * blog-files/ftl-jit/ftl_asm_bench_performance.png: Added.
        * blog-files/ftl-jit/ftl_pipeline.png: Added.
        * blog-files/ftl-jit/ftl_timeline.png: Added.
        * blog-files/ftl-jit/object_model.png: Added.
        * blog-files/ftl-jit/polymorphic_inlining_performance.png: Added.
        * blog-files/ftl-jit/polyvariance.png: Added.
        * blog-files/ftl-jit/polyvariant_devirtualization_performance.png: Added.
        * blog-files/ftl-jit/three_tier_performance.png: Added.
        * blog-files/ftl-jit/three_tiers.png: Added.

2014-05-12  Benjamin Poulain  <benjamin@webkit.org>

        Add potential illustrations for a potential future blog post about the viewport meta tag

        * blog-files/simple-viewport-configuration: Added.
        * blog-files/simple-viewport-configuration/860_viewport.html: Added.
        * blog-files/simple-viewport-configuration/blog_with_viewport.png: Added.
        * blog-files/simple-viewport-configuration/blog_without_viewport.png: Added.
        * blog-files/simple-viewport-configuration/default_viewport.html: Added.
        * blog-files/simple-viewport-configuration/horizontal_design.html: Added.
        * blog-files/simple-viewport-configuration/inspector.png: Added.
        * blog-files/simple-viewport-configuration/report_size.js: Added.

2014-04-29  Alex Christensen  <achristensen@webkit.org>

        [WinCairo] Switch video from GStreamer to Media Foundation.
        https://bugs.webkit.org/show_bug.cgi?id=132358

        Reviewed by Brent Fulgham.

        * building/tools.html:
        Removed requirement of installing GStreamer.

2014-04-18  Bem Jones-Bey  <bjonesbe@adobe.com>

        Add mention of Safari Debug menu and finding out the WebProcess that corresponds to a tab
        https://bugs.webkit.org/show_bug.cgi?id=131791

        Reviewed by Sam Weinig.

        * building/debug.html:

2014-03-28  James Craig  <jcraig@apple.com>

        Web Inspector: AXI: support for live regions
        https://bugs.webkit.org/show_bug.cgi?id=130725

        Reviewed by Timothy Hatcher.

        Demo update to show off the new Inspector support for live regions.

        * blog-files/aria1.0/combobox_with_live_region_status.html:

2014-03-27  James Craig  <jcraig@apple.com>

        Web Inspector: AXI: expose selectedChildNodeIds of list boxes, tree controls, etc., and reconcile UI with childNodeIds
        https://bugs.webkit.org/show_bug.cgi?id=130827

        Reviewed by Timothy Hatcher.

        Updated demo files with attr refresh to show off selected children changing.
        Long term fix will be http://webkit.org/b/130883

        * blog-files/aria1.0/combobox_with_live_region_status.html:

2014-03-25  James Craig  <jcraig@apple.com>

        Blog-files: combobox demo needs aria-expanded support
        https://bugs.webkit.org/show_bug.cgi?id=130766

        Reviewed by Chris Fleizach.

        * blog-files/aria1.0/combobox_with_live_region_status.html: Added missing aria-expanded.

2014-03-25  Benjamin Poulain  <bpoulain@apple.com>

        Add illustrations for a potential blog post

        First version, let see how that works out.

        * blog-files/css-jit-introduction: Added.
        * blog-files/css-jit-introduction/clicktostart.js: Added.
        * blog-files/css-jit-introduction/css-jit-illustration.html: Added.
        * blog-files/css-jit-introduction/html5-single-page-microbenchmark.html: Added.
        * blog-files/css-jit-introduction/old-selectorchecker-illustration.html: Added.
        * blog-files/css-jit-introduction/timing-illustration-eight-run.svg: Added.
        * blog-files/css-jit-introduction/timing-illustration-five-run.svg: Added.
        * blog-files/css-jit-introduction/timing-illustration-one-run.svg: Added.

2014-03-20  James Craig  <jcraig@apple.com>

        Sample code for potential ARIA blog post.
        https://bugs.webkit.org/show_bug.cgi?id=130548

        Rubber-stamped by Chris Fleizach.

        * blog-files/aria1.0: Added.
        * blog-files/aria1.0/africa_large.svg: Added.
        * blog-files/aria1.0/combobox_with_live_region_status.html: Added.
        * blog-files/aria1.0/roaming_tabindex: Added.
        * blog-files/aria1.0/roaming_tabindex/css: Added.
        * blog-files/aria1.0/roaming_tabindex/css/img: Added.
        * blog-files/aria1.0/roaming_tabindex/css/img/buttons.png: Added.
        * blog-files/aria1.0/roaming_tabindex/css/img/icons.png: Added.
        * blog-files/aria1.0/roaming_tabindex/css/screen.css: Added.
        * blog-files/aria1.0/roaming_tabindex/final.html: Added.
        * blog-files/aria1.0/roaming_tabindex/js: Added.
        * blog-files/aria1.0/roaming_tabindex/js/aria.js: Added.
        * blog-files/aria1.0/roaming_tabindex/js/init.js: Added.
        * blog-files/aria1.0/roaming_tabindex/js/prototype.js: Added.

2014-03-14  Maciej Stachowiak  <mjs@apple.com>

        Replace "Apple Computer, Inc." with "Apple Inc." in copyright headers
        https://bugs.webkit.org/show_bug.cgi?id=130276
        <rdar://problem/16266927>

        Reviewed by Simon Fraser.

        * blog/wp-content/textfield_screenshot.jpg:
        * misc/WebKitDetect.html:
        * misc/WebKitDetect.js:
        * perf/sunspider-0.9.1/sunspider-0.9.1/driver.html:
        * perf/sunspider-0.9.1/sunspider-0.9.1/results.html:
        * perf/sunspider-0.9.1/sunspider-0.9.1/sunspider-test-contents.js:
        * perf/sunspider-0.9.1/sunspider-0.9/driver.html:
        * perf/sunspider-0.9.1/sunspider-0.9/results.html:
        * perf/sunspider-0.9.1/sunspider-0.9/sunspider-test-contents.js:
        * perf/sunspider-0.9.1/sunspider-analyze-results.js:
        * perf/sunspider-0.9.1/sunspider-compare-results.js:
        * perf/sunspider-0.9/3d-cube.html:
        * perf/sunspider-0.9/3d-morph.html:
        * perf/sunspider-0.9/3d-raytrace.html:
        * perf/sunspider-0.9/access-binary-trees.html:
        * perf/sunspider-0.9/access-fannkuch.html:
        * perf/sunspider-0.9/access-nbody.html:
        * perf/sunspider-0.9/access-nsieve.html:
        * perf/sunspider-0.9/bitops-3bit-bits-in-byte.html:
        * perf/sunspider-0.9/bitops-bits-in-byte.html:
        * perf/sunspider-0.9/bitops-bitwise-and.html:
        * perf/sunspider-0.9/bitops-nsieve-bits.html:
        * perf/sunspider-0.9/controlflow-recursive.html:
        * perf/sunspider-0.9/crypto-aes.html:
        * perf/sunspider-0.9/crypto-md5.html:
        * perf/sunspider-0.9/crypto-sha1.html:
        * perf/sunspider-0.9/date-format-tofte.html:
        * perf/sunspider-0.9/date-format-xparb.html:
        * perf/sunspider-0.9/math-cordic.html:
        * perf/sunspider-0.9/math-partial-sums.html:
        * perf/sunspider-0.9/math-spectral-norm.html:
        * perf/sunspider-0.9/regexp-dna.html:
        * perf/sunspider-0.9/string-base64.html:
        * perf/sunspider-0.9/string-fasta.html:
        * perf/sunspider-0.9/string-tagcloud.html:
        * perf/sunspider-0.9/string-unpack-code.html:
        * perf/sunspider-0.9/string-validate-input.html:
        * perf/sunspider-0.9/sunspider-analyze-results.js:
        * perf/sunspider-0.9/sunspider-compare-results.js:
        * perf/sunspider-0.9/sunspider-driver.html:
        * perf/sunspider-0.9/sunspider-record-result.js:
        * perf/sunspider-0.9/sunspider-results.html:
        * perf/sunspider-1.0.1/sunspider-1.0.1/driver.html:
        * perf/sunspider-1.0.1/sunspider-1.0.1/results.html:
        * perf/sunspider-1.0.1/sunspider-1.0.1/sunspider-test-contents.js:
        * perf/sunspider-1.0.1/sunspider-analyze-results.js:
        * perf/sunspider-1.0.1/sunspider-compare-results.js:
        * perf/sunspider-1.0.1/sunspider.html:
        * perf/sunspider-1.0.2/sunspider-1.0.2/driver.html:
        * perf/sunspider-1.0.2/sunspider-1.0.2/results.html:
        * perf/sunspider-1.0.2/sunspider-1.0.2/sunspider-test-contents.js:
        * perf/sunspider-1.0.2/sunspider-analyze-results.js:
        * perf/sunspider-1.0.2/sunspider-compare-results.js:
        * perf/sunspider-1.0.2/sunspider.html:
        * perf/sunspider-1.0/sunspider-1.0/driver.html:
        * perf/sunspider-1.0/sunspider-1.0/results.html:
        * perf/sunspider-1.0/sunspider-1.0/sunspider-test-contents.js:
        * perf/sunspider-1.0/sunspider-analyze-results.js:
        * perf/sunspider-1.0/sunspider-compare-results.js:
        * perf/sunspider-1.0/sunspider.html:
        * perf/sunspider/sunspider.html:
        * perf/sunspider/versions.html:
        * quality/reporting.html:

2014-03-03  Ryosuke Niwa  <rniwa@webkit.org>

        Use DYEBench v0.9 by default.

        Rubber-stamped by Benjamin Poulain.

        * perf/DoYouEvenBench/index.html:

2014-02-27  Darin Adler  <darin@apple.com>

        Some small modernizing tweaks to the coding style guide
        https://bugs.webkit.org/show_bug.cgi?id=129427

        Reviewed by Alexey Proskuryakov.

        My intent here was originally to do the nullptr style guide update, but that was already done.
        I did some other improvements. There's still quite a bit to do -- the guide is out of date in
        a number of subtle ways.

        * coding/coding-style.html: Change "left side operator" example to be a more modern example
        without non-WebKit-style abbreviations and such. Use auto& instead of const auto& in for loop
        example, since that's normally preferred. Changed section title to say "zero" instead of "0".
        Use words instead of abbreviations in code examples. Show that a modern C++ for loop is preferred
        over index iteration in vector iteration example and also showed use of unsigned rather than
        size_t since that is almost always what we want. Eliminated the use of PassOwnPtr in the "return
        a newly created object" example. Use references instead of pointers in one example.

2014-02-26  Julien Brianceau  <jbriance@cisco.com>

        Add Cisco to team.html
        https://bugs.webkit.org/show_bug.cgi?id=129405

        Reviewed by Andreas Kling.

        * team.html:

2014-02-26  Bem Jones-Bey  <bjonesbe@adobe.com>

        Update style guide to use nullptr instead of 0 for C++ null pointers.
        https://bugs.webkit.org/show_bug.cgi?id=129413

        Reviewed by Ryosuke Niwa.

        * coding/coding-style.html:

2014-02-10  Bem Jones-Bey  <bjonesbe@adobe.com>

        Change tools.html to say Xcode 5 is required to build
        https://bugs.webkit.org/show_bug.cgi?id=128545

        Reviewed by Andreas Kling.

        The Mac port doesn't build with Xcode 4.6 anymore, so update to tell
        people to get Xcode 5. It looks like Xcode 5 doesn't have the command
        line tools in the downloads pane anymore, so direct folks to use
        xcode-select to install the command line tools as well.

        * building/tools.html:

2014-01-17  Ryosuke Niwa  <rniwa@webkit.org>

        Host DoYouEvenBench on webkit.org
        https://bugs.webkit.org/show_bug.cgi?id=127185

        Reviewed by Benjamin Poulain.

        The previous patch didn't quite work due to cross-origin restrictions.
        Simply add a hyperlink to a trac page.

        * perf/DoYouEvenBench/index.html:

2014-01-17  Ryosuke Niwa  <rniwa@webkit.org>

        Host DoYouEvenBench on webkit.org
        https://bugs.webkit.org/show_bug.cgi?id=127185

        Reviewed by Benjamin Poulain.

        Added webkit.org/perf/DoYouEvenBench.

        * perf/DoYouEvenBench: Added.
        * perf/DoYouEvenBench/index.html: Copied from PerformanceTests/DoYouEvenBench/Full.html.

2014-01-03  Alex Christensen  <achristensen@webkit.org>

        Added GStreamer to list of required tools for compiling webkit.
        https://bugs.webkit.org/show_bug.cgi?id=126319

        Reviewed by Philippe Normand.

        * building/tools.html:
        Mentioned that QuickTime and QuickTime SDK are only required for AppleWin.
        Added GStreamer installers to list of required tools for WinCairo.

2013-12-25  Ryosuke Niwa  <rniwa@webkit.org>

        Add a description about webkit-patch setup-git-clone to checkout.html
        https://bugs.webkit.org/show_bug.cgi?id=126217

        Reviewed by Philippe Normand.

        Added.

        * building/checkout.html:

2013-12-13  Roger Fong  <roger_fong@apple.com>

        Update build instructions for Windows following upgrade to VS2013.

        * building/tools.html:

2013-11-30  Mark Rowe  <mrowe@apple.com>

        <https://webkit.org/b/125027> Update the analytics account used by webkit.org

        Switch to a Google Analytics id that's accessible to someone that's involved with the WebKit project.

        Reviewed by Sam Weinig.

        * footer.inc: Remove the old analytics code.
        * header.inc: Add the new stuff.

2013-10-29  Beth Dakin  <bdakin@apple.com>

        Just updating the sample code for this potential blog post.

        * blog-files/regions/pizza-is-amazing.png: Replaced.
        * blog-files/regions/unstyled-article.png: Replaced.
        * demos/regions/pizza-regions-manifesto-regionstyling.html:
        * demos/regions/pizza-regions-manifesto.html:

2013-10-18  Tibor Meszaros  <tmeszaros@inf.u-szeged.hu>

        Mixed content error when accessing webkit.org/team.html over https
        https://bugs.webkit.org/show_bug.cgi?id=123020

        Reviewed by Alexey Proskuryakov.

        When the webkit.org/team.html page is accessed over https most browsers report
        Mixed Content error, which is caused by the fact that the contributos.json file
        is accessed over a plain http connection and not https.

        * team.html:

2013-10-18  Tibor Meszaros  <tmeszaros@inf.u-szeged.hu>

        Cleanup webkit.org/team.html
        https://bugs.webkit.org/show_bug.cgi?id=123022

        Reviewed by Alexey Proskuryakov.

        Removed the annoteWithWikiData function, because data it tries to fetch does not exists.

        * team.html:

2013-10-16  Geoffrey Garen  <ggaren@apple.com>

        Publish SunSpider 1.0.2
        https://bugs.webkit.org/show_bug.cgi?id=122923

        Reviewed by Darin Adler.

        * perf/sunspider/sunspider.html:
        * perf/sunspider/versions.html:

2013-10-08  Geoffrey Garen  <ggaren@apple.com>

        Refined power management in SunSpider 1.0.2
        https://bugs.webkit.org/show_bug.cgi?id=122525

        Reviewed by Gavin Barraclough.

        Sync'd sunspider-1.0.2 to PerformanceTests/SunSpider/hosted/sunspider-1.0.2.

        * perf/sunspider-1.0.2/sunspider-1.0.2/driver.html:
        * perf/sunspider-1.0.2/sunspider-1.0.2/sunspider-test-contents.js:
        * perf/sunspider-1.0.2/sunspider.css:
        (#frameparent):
        (#countdown):

2013-10-02  Geoffrey Garen  <ggaren@apple.com>

        Sync'd sunspider-1.0.2 to PerformanceTests/SunSpider/hosted/sunspider-1.0.2.

        * perf/sunspider-1.0.2/sunspider-1.0.2/driver.html:
        * perf/sunspider-1.0.2/sunspider-1.0.2/sunspider-test-contents.js:

2013-09-26  Geoffrey Garen  <ggaren@apple.com>

        Fixed a version number string in SunSpider 1.0.2
        https://bugs.webkit.org/show_bug.cgi?id=122004

        Reviewed by Gavin Barraclough.

        * perf/sunspider-1.0.2/sunspider-1.0.2/results.html: 1.0.2!

2013-09-26  Geoffrey Garen  <ggaren@apple.com>

        Tentative SunSpider 1.0.2
        https://bugs.webkit.org/show_bug.cgi?id=122002

        Reviewed by Gavin Barraclough.

        See comments in PerformanceTests/SunSpider.

        * perf/sunspider-1.0.2: Added.

2013-09-20  Mark Rowe  <mrowe@apple.com>

        <https://webkit.org/b/90090> build-webkit should verify that your tools are up-to-date

        Update references on webkit.org to mention Xcode 4.6 as the minimum version.

        Reviewed by David Kilzer.

        * building/debug-mac-uiprocess.html:
        * building/tools.html:

2013-09-19  Dan Bernstein  <mitz@apple.com>

        Add a style guideline regarding spacing in range-based for loops
        https://bugs.webkit.org/show_bug.cgi?id=121620

        Reviewed by Anders Carlsson.

        * coding/coding-style.html: Added the guideline that spaces should be placed
        around the colon in a range-based for loop.

2013-09-10  Beth Dakin  <bdakin@apple.com>

        Adding another screenshot for a potential blog post.

        * blog-files/regions/unstyled-article.png: Added.

2013-09-09  Roger Fong  <roger_fong@apple.com>

        Update build instructions for Apple Windows port to include cygwin php install steps.

        * building/tools.html:

2013-09-04  Beth Dakin  <bdakin@apple.com>

        Fixing a typo in demo files and screenshot.

        * blog-files/regions/pizza-is-amazing.png: Replaced.
        * demos/regions/pizza-regions-manifesto-regionstyling.html:
        * demos/regions/pizza-regions-manifesto.html:

2013-09-04  Beth Dakin  <bdakin@apple.com>

        Upload demo and images for a potential blog post.

        * blog-files/regions: Added.
        * blog-files/regions/pizza-is-amazing.png: Added.
        * demos/regions: Added.
        * demos/regions/pizza-regions-manifesto-regionstyling.html: Added.
        * demos/regions/pizza-regions-manifesto.html: Added.
        * demos/regions/yellow-pizza.jpg: Added.

2013-09-03  Benjamin Poulain  <benjamin@webkit.org>

        Fix the recommended testing platform on the website

        Rubberstamped by Enrica Casucci.

        * quality/testing.html:

2013-08-08  Benjamin Poulain  <bpoulain@apple.com>

        Fix webkit.org content overflowing their content box

        Rubberstamped by Simon Fraser.

        More fixes to have webkit.org show properly on iPad and iPhone.

        * blog/wp-content/themes/webkit/header.php:
        Add the correct viewport width for the blog.

        * building/debug.html:
        * building/launch-debugger-vs2010-small.png: Added.
        * building/set-debugging-properties-vs2010-small.png: Added.
        Fix the images to make them fit in the page.

        * coding/adding-features.html:
        Using <pre> for the example of email just make it looks like our code examples.
        Change the source to use <blockquote> so that the text can reflow to the content box.
        * css/main.css:
        (.code, pre, tt, code):
        Scroll the content when it overflows the box for code and pre.

2013-08-08  Benjamin Poulain  <benjamin@webkit.org>

        Give a smaller viewport to webkit.org on devices

        Rubberstamped by Simon Fraser.

        The CSS of WebKit.org layout the content on 615px + a right margin of
        215px + a left margin of 20px. The total layout width is 850px.

        The standard viewport size on mobile devices is 980px. This leaves a gap
        on the right side of the content when opening the size on iPhone/iPad.

        This patch changes the layout width to be 860 to display more content on devices
        while keeping a little margin.

        * header.inc:

2013-08-08  Cosmin Truta  <ctruta@blackberry.com>

        SunSpider: Move the 3d-morph fix from version 1.0 to version 1.0.1
        https://bugs.webkit.org/show_bug.cgi?id=117993

        Reviewed by George Staikos.

        * perf/sunspider-1.0.1/json2.js: Added.
        * perf/sunspider-1.0.1/sunspider-1.0.1/driver.html: Added.
        * perf/sunspider-1.0.1/sunspider-1.0.1/results.html: Added.
        * perf/sunspider-1.0.1/sunspider-1.0.1/sunspider-test-contents.js: Added.
        * perf/sunspider-1.0.1/sunspider-1.0.1/sunspider-test-prefix.js: Added.
        * perf/sunspider-1.0.1/sunspider-analyze-results.js: Added.
        * perf/sunspider-1.0.1/sunspider-compare-results.js: Added.
        * perf/sunspider-1.0.1/sunspider.css: Added.
        * perf/sunspider-1.0.1/sunspider.html: Added.
        * perf/sunspider/sunspider.html: Updated to version 1.0.1.
        * perf/sunspider/versions.html: Updated to version 1.0.1.

2013-08-07  Benjamin Poulain  <benjamin@webkit.org>

        Update the images for the blog size-matters

        * blog-files/size-matters/JavaScriptCore-relative-binary-growth.png: Added.
        * blog-files/size-matters/WebCore-relative-binary-growth.png: Added.
        * blog-files/size-matters/WebKit-relative-binary-growth.png: Added.

2013-08-05  Dean Jackson  <dino@apple.com>

        Move previous commit into /demos.

        * demos/srcset/image-1x.png: Renamed from Websites/webkit.org/blog-files/srcset/image-1x.png.
        * demos/srcset/image-2x.png: Renamed from Websites/webkit.org/blog-files/srcset/image-2x.png.
        * demos/srcset/image-src.png: Renamed from Websites/webkit.org/blog-files/srcset/image-src.png.
        * demos/srcset/index.html: Renamed from Websites/webkit.org/blog-files/srcset/index.html.

2013-08-05  Dean Jackson  <dino@apple.com>

        Upload example for a blog post.

        * blog-files/srcset/image-1x.png: Added.
        * blog-files/srcset/image-2x.png: Added.
        * blog-files/srcset/image-src.png: Added.
        * blog-files/srcset/index.html: Added.

2013-07-31  Benjamin Poulain  <benjamin@webkit.org>

        Upload images for a potential blog post

        * blog-files/size-matters: Added.
        * blog-files/size-matters/JavaScript-growth.png: Added.
        * blog-files/size-matters/WebCore-growth-baseline.png: Added.
        * blog-files/size-matters/WebCore-growth.png: Added.
        * blog-files/size-matters/WebKit-growth.png: Added.

2013-07-14  Kwang Yul Seo  <skyul@company100.net>

        Add Company100 to team.html
        https://bugs.webkit.org/show_bug.cgi?id=118633

        Reviewed by Andreas Kling.

        * team.html:

2013-07-11  Bruno de Oliveira Abinader  <bruno.d@partner.samsung.com>

        Add 'partner.samsung.com' to domain affiliations
        https://bugs.webkit.org/show_bug.cgi?id=118580

        Reviewed by Antonio Gomes.

        * team.html:

2013-07-01  Benjamin Poulain  <benjamin@webkit.org>

        Add screenshot of the inspector color picker for the blog

        * blog-files/last-week-in-webkit: Added.
        * blog-files/last-week-in-webkit/Inspector_color_picker.png: Added.

2013-06-27  Roger Fong  <roger_fong@apple.com>

        Update required tools for Windows instructions.

        * building/tools.html:

2013-06-18  Denis Nomiyama  <d.nomiyama@samsung.com>

        The page title of technical-articles.html is incorrect.
        https://bugs.webkit.org/show_bug.cgi?id=117727

        Reviewed by Ryosuke Niwa.

        Changed the page title of technical-articles.html to "WebKit Technical Articles".

        * coding/technical-articles.html:

2013-06-14  Timothy Hatcher  <timothy@apple.com>

        Shrink larger images to fit the width of the blog.

        * blog-files/new-inspector/hero-labeled.png:
        * blog-files/new-inspector/hero.png:

2013-06-12  Roger Fong  <roger_fong@apple.com>

        Update webkit.org build instructions for Apple Windows port.
        https://bugs.webkit.org/show_bug.cgi?id=117563.

        Reviewed by Brent Fulgham.

        * building/build.html:
        * building/debug.html:
        * building/launch-debugger-vs2005.png: Removed.
        * building/launch-debugger-vs2010.png: Copied from webkit.org/building/launch-debugger-vs2005.png.
        * building/set-as-startup-project-vs2005.png: Removed.
        * building/set-as-startup-project-vs2010.png: Copied from webkit.org/building/set-as-startup-project-vs2005.png.
        * building/set-debugging-properties-vs2005.png: Removed.
        * building/set-debugging-properties-vs2010.png: Copied from webkit.org/building/set-debugging-properties-vs2005.png.
        * building/tools.html:

2013-06-12  Timothy Hatcher  <timothy@apple.com>

        Add new Web Inspector images for a blog post.

        * blog-files/new-inspector/activity-viewer.png: Added.
        * blog-files/new-inspector/codemirror.png: Added.
        * blog-files/new-inspector/console.png: Added.
        * blog-files/new-inspector/hero-labeled.png: Added.
        * blog-files/new-inspector/hero.png: Added.
        * blog-files/new-inspector/layer-borders.png: Added.
        * blog-files/new-inspector/layers.png: Added.
        * blog-files/new-inspector/navigation-bar.png: Added.
        * blog-files/new-inspector/open-sign.png: Added.
        * blog-files/new-inspector/reasons.png: Added.
        * blog-files/new-inspector/save.png: Added.
        * blog-files/new-inspector/source-map.png: Added.
        * blog-files/new-inspector/styles.png: Added.
        * blog-files/new-inspector/toolbar-context-menu.png: Added.
        * blog-files/new-inspector/toolbar-docked.png: Added.
        * blog-files/new-inspector/toolbar.png: Added.

2013-05-25  Bem Jones-Bey  <bjonesbe@adobe.com>

        Broken link to committers list on contributing web page
        https://bugs.webkit.org/show_bug.cgi?id=116722

        Reviewed by Andreas Kling.

        * coding/contributing.html:
        Changed broken link to point to the team page instead.

2013-05-24  Bem Jones-Bey  <bjonesbe@adobe.com>

        Make team.html have each contributor's area of expertise
        https://bugs.webkit.org/show_bug.cgi?id=116737

        Reviewed by Benjamin Poulain.

        * team.html:
        Update to use the new expertise field in contributors.json.

2013-04-30  Filip Pizlo  <fpizlo@apple.com>

        Release SunSpider 1.0

        Rubber stamped by Maciej Stachowiak.

        * perf/sunspider-1.0: Added.
        * perf/sunspider-1.0/json2.js: Added.
        (.):
        * perf/sunspider-1.0/sunspider-1.0: Added.
        * perf/sunspider-1.0/sunspider-1.0/driver.html: Added.
        * perf/sunspider-1.0/sunspider-1.0/results.html: Added.
        * perf/sunspider-1.0/sunspider-1.0/sunspider-test-contents.js: Added.
        * perf/sunspider-1.0/sunspider-1.0/sunspider-test-prefix.js: Added.
        * perf/sunspider-1.0/sunspider-analyze-results.js: Added.
        (computeItemTotals):
        (computeTotals):
        (computeMeans):
        (standardDeviation):
        (computeStdDevs):
        (computeStdErrors):
        (tDist):
        (formatResult):
        (computeLabelWidth):
        (computeMeanWidth):
        (resultLine):
        (printOutput):
        * perf/sunspider-1.0/sunspider-compare-results.js: Added.
        (.computeItemTotals):
        (.computeTotals):
        (.computeMeans):
        (.standardDeviation):
        (.computeStdDevs):
        (.computeStdErrors):
        (.tDist):
        (.formatMean):
        (.computeLabelWidth):
        (.computeMeanWidth):
        (.pad):
        (.resultLine):
        (.printOutput):
        (sunspiderCompareResults):
        * perf/sunspider-1.0/sunspider.css: Added.
        (body):
        (h2):
        (dt):
        (dd):
        (:link):
        (:visited):
        (#testframe):
        (#logo):
        * perf/sunspider-1.0/sunspider.html: Added.
        * perf/sunspider/sunspider.html:
        * perf/sunspider/versions.html: Added.

2013-04-16  Vivek Galatage  <vivek.vg@samsung.com>

        Update team.html to use contributors.json instead of committers.py
        https://bugs.webkit.org/show_bug.cgi?id=114720

        Reviewed by Ryosuke Niwa.

        Updating the team.html to use contributors.json. Also removing the unused field 'area'
        from the contributors information.

        * team.html:

2013-04-16  Ryosuke Niwa  <rniwa@webkit.org>

        The list of contributors in committers.py should be a separate JSON
        https://bugs.webkit.org/show_bug.cgi?id=114673

        Reviewed by Anders Carlsson.

        Updated the website to refer to contributors.json instead of committers.py.

        * coding/commit-review-policy.html:

2013-04-07  Benjamin Poulain  <bpoulain@apple.com>

        Simplify the page "Getting the Code" on WebKit.org
        https://bugs.webkit.org/show_bug.cgi?id=113980

        Reviewed by Sam Weinig.

        * building/checkout.html:
        Instead of interleaving instructions for Mac and Windows, just
        copy the things that make sense and have two clear sections.

        Also mention Linux, it is the exact same instructions as Mac OS X.

        Make svn checkout the alternative to a download of the tarball. It is
        almost impossible to do a svn checkout on slow networks nowadays.

2013-04-04  Benjamin Poulain  <bpoulain@apple.com>

        Update WebKit.org's contact page
        https://bugs.webkit.org/show_bug.cgi?id=113968

        Reviewed by Geoffrey Garen.

        * contact.html:
        -Add a direct link to our archives on Gmane.
        -References the ports mailing-lists. This may reduces the emails
         erroneously sent to webkit-dev.
        -Add a link to our "reporting bug page".
        -Get rid of the link to CIA. The website is dead.

2013-02-18  Simon Hausmann  <simon.hausmann@digia.com>

        Add Digia to the domain affiliations
        https://bugs.webkit.org/show_bug.cgi?id=110116

        Reviewed by Kenneth Rohde Christiansen.

        * team.html:

2013-02-11  Bruno de Oliveira Abinader  <bruno.abinader@basyskom.com>

        Add basysKom to domainAffiliations in team.html
        https://bugs.webkit.org/show_bug.cgi?id=109306

        Reviewed by Laszlo Gombos.

        Register basysKom as contributing company in
        http://www.webkit.org/team.html.

        * team.html:

2013-02-11  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>

        Add intel.com to team.html
        https://bugs.webkit.org/show_bug.cgi?id=109424

        Reviewed by Kenneth Rohde Christiansen.

        * team.html:

2013-02-10  Dirk Schulze  <dschulze@adobe.com>

        Add adobe.com to team.html
        https://bugs.webkit.org/show_bug.cgi?id=109396

        Reviewed by Laszlo Gombos.

        * team.html:

2013-02-10  Laszlo Gombos  <l.gombos@samsung.com>

        Add sisa.samsung.com to team.html
        https://bugs.webkit.org/show_bug.cgi?id=109394

        Reviewed by Dirk Schulze.

        * team.html:

2012-12-20  Ryosuke Niwa  <rniwa@webkit.org>

        Add a sample change log entry to contributing.html
        https://bugs.webkit.org/show_bug.cgi?id=105506

        Reviewed by Alexey Proskuryakov.

        Added a sample change log to the page directly people skimming through the page will still
        see it. Also mention that prepare-ChangeLogs is automatically ran by webkit-patch upload.

        * coding/contributing.html:

2012-12-18  Nico Weber  <thakis@chromium.org>

        Fix broken loop in style guide
        https://bugs.webkit.org/show_bug.cgi?id=105346

        Reviewed by Ryosuke Niwa.

        Found by Sean Silva <silvas@purdue.edu>

        * coding/coding-style.html:

2012-12-11  Ryosuke Niwa  <rniwa@webkit.org>

        Add instructions on how to build WebKit on Xcode 4 to build.html
        https://bugs.webkit.org/show_bug.cgi?id=104739

        Reviewed by Daniel Bates.

        Set the build directories to WebKitBuild.

        * building/build.html:

2012-11-24  Daniel Bates  <dbates@webkit.org>

        Substitute "use" for "user" in sentence about naming convention for
        enum members so that it reads well.

        * coding/coding-style.html:

2012-11-20  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Add Samsung to security vendor member list
        https://bugs.webkit.org/show_bug.cgi?id=102863

        Reviewed by Sam Weinig.

        * security/security-group-members.html: Add Samsung members.

2012-10-31  Adam Barth  <abarth@webkit.org>

        technical-articles.html should link to my talk on how WebKit works
        https://bugs.webkit.org/show_bug.cgi?id=100867

        Reviewed by Tony Chang.

        * coding/technical-articles.html:

2012-10-29  Eric Seidel  <eric@webkit.org>

        Technical Articles should link to an old talk I gave
        https://bugs.webkit.org/show_bug.cgi?id=100624

        Reviewed by Adam Barth.

        * coding/technical-articles.html:

2012-09-13  Ryosuke Niwa  <rniwa@webkit.org>

        Another typo fix. Apparently, I "fixed" the wrong line in the previous commit.

        * coding/coding-style.html:

2012-09-13  Ryosuke Niwa  <rniwa@webkit.org>

        Fix a typo per Darin's comment.

        * coding/coding-style.html:

2012-09-13  Ryosuke Niwa  <rniwa@webkit.org>

        Add a style guide rule for signed and unsigned int
        https://bugs.webkit.org/show_bug.cgi?id=96682

        Reviewed by Geoffrey Garen.

        Add a rule per http://lists.webkit.org/pipermail/webkit-dev/2012-September/022199.html.

        * coding/coding-style.html:

2012-08-30  Benjamin Poulain  <bpoulain@apple.com>

        Replace JSC::UString by WTF::String
        https://bugs.webkit.org/show_bug.cgi?id=95271

        Reviewed by Geoffrey Garen.

        Update the coding style to avoid mentioning a class that no longer exist.

        * coding/coding-style.html:

2012-08-09  Ryosuke Niwa  <rniwa@webkit.org>

        Address one more review comment.

        * building/checkout.html:

2012-08-09  Ryosuke Niwa  <rniwa@webkit.org>

        Recommend the use of https and mention git on building/checkout.html
        https://bugs.webkit.org/show_bug.cgi?id=93657

        Reviewed by Mark Rowe.

        This page was quite out-dated. Stop mentioning about how to install subversion on OS X 10.4
        because the paragraph right above it refers to buliding/tools.html for that.

        Recommend the use of HTTPS connection for the Subversion checkout and also mention how to
        checkout using a Git client.

        * building/checkout.html:

2012-07-27  Adam Barth  <abarth@webkit.org>

        Writing a blog post for new reviewers doesn't add value to the blog
        https://bugs.webkit.org/show_bug.cgi?id=92305

        Reviewed by Eric Seidel.

        Now that we have Peter posting weekly updates to the blog, having an
        announcement on the blog for each reviewer is more noise than signal.

        * coding/commit-review-policy.html:

2012-06-19  Ryosuke Niwa  <rniwa@webkit.org>

        Update webkit.org to refer to layoutTestController instead of testRunner
        https://bugs.webkit.org/show_bug.cgi?id=89445

        Reviewed by Kent Tamura.

        * quality/testwriting.html:

2012-05-21  Peter Kasting  <pkasting@google.com>

        Style guide change: Uses of "std::" should be explicitly qualified.
        https://bugs.webkit.org/show_bug.cgi?id=87043

        Reviewed by Ryosuke Niwa.

        * coding/coding-style.html:

2012-05-11  Darin Adler  <darin@apple.com>

       Try to make spacing of fine print items in lower left nicer looking.

        * css/main.css:
        (#notice, #trademark, #terms): Changed top margin to 10px.
        (#notice): Put 30px margin here.

2012-05-11  Darin Adler  <darin@apple.com>

        CSS tweak needed for the trademark terms of use.

        * css/main.css:
        (#notice, #trademark, #terms): Added #trademark.

2012-05-11  Darin Adler  <darin@apple.com>

        Add a link to WebKit trademark terms of use, other small website changes
        https://bugs.webkit.org/show_bug.cgi?id=86112

        Reviewed by Dan Bernstein.

        * contact.html: Use RIGHT SINGLE QUOTATION MARK instead of APOSTROPHE as appropriate.
        Fixed awkward use of the phrase "per itself" and the use of "intent" where "intend"
        was intended.

        * nav.inc: Added mention of the WebKit trademark and a link to the trademark terms
        of use on the macosforge.org terms of use page.

2012-05-07  Dan Bernstein  <mitz@apple.com>

        webkit.org instructions for debugging WebProcess are unnecessarily complex
        https://bugs.webkit.org/show_bug.cgi?id=85756

        Reviewed by Darin Adler.

        * building/debug.html: Added instructions for setting up and using the WebKit workspace for
        debugging the Web process, as well as instructions for debugging the Web process from the
        command line using debug-safari and debug-minibrowser.
        * building/tools.html: Updated links and tweaked the language.

2012-04-23  Daniel Bates  <dbates@webkit.org>

        Add notice about running xcode-select before using Xcode 4.3.2 command line tools

        Rubber-stamped by Eric Seidel.

        Before you can use the Xcode 4.3.2 command line tools, you must either run
        sudo xcode-select -switch /Applications/Xcode.app or set the environment variable
        DEVELOPER_DIR to point to the Xcode developer tools directory.

        * building/tools.html:

2012-04-23  Daniel Bates  <dbates@webkit.org>

        Explicitly mention Xcode version 4.3.2 in Mac debug instructions

        Rubber-stamped by Eric Seidel.

        The build location instructions at the top of page building/{debug-mac-uiprocess.html, debug.html}
        are specific to Xcode 4.3.2.

        * building/debug-mac-uiprocess.html: Substitute "Xcode 4.3.2" for "Xcode 4".
        * building/debug.html: Ditto.

2012-04-19  Daniel Bates  <dbates@webkit.org>

        Update Build Location notice on Mac debug instructions to reflect changes in Xcode 4.3.2
        https://bugs.webkit.org/show_bug.cgi?id=84364

        Reviewed by Eric Seidel.

        As of Xcode 4.3.2, the build location "Locations Specified by Targets" has been renamed to
        "Legacy".

        * building/debug-mac-uiprocess.html:
        * building/debug.html:

2012-03-13  Rebecca Hauck  <rhauck@adobe.com>

        Working With Code > Installing Developer Tools needs to be updated with OS X Lion & App Store details
        https://bugs.webkit.org/show_bug.cgi?id=80429

        Reviewed by Dan Bernstein.

        * building/tools.html:

2012-03-10  Daniel Bates  <dbates@webkit.org>

        Switch from HTTP to HTTPS for Xcode developer.apple.com hyperlinks

        The Debugging and Analyzing Your Code page cannot be viewed at <http://developer.apple.com/library/mac/#documentation/ToolsLanguages/Conceptual/Xcode4UserGuide/Debugging/Debugging.html#//apple_ref/doc/uid/TP40010215-CH3-SW1> (1) as this URL redirects to the Mac OS X Developer Library <https://developer.apple.com/library/mac/navigation/>.
        Substituting https for http in (1) returns the expected page.

        * building/debug-mac-uiprocess.html:
        * building/debug.html:

2012-03-01  Seo Sanghyeon  <sh4.seo@samsung.com>

        Add a link to the EFL wiki page
        https://bugs.webkit.org/show_bug.cgi?id=79439

        Reviewed by Adam Barth.

        * building/tools.html:
        * css/main.css: Cross-browser border-radius.

2012-02-24  Tom Zakrajsek  <tomz@codeaurora.org>

        team.html (on webkit.org) doesn't recognize codeaurora.org
        https://bugs.webkit.org/show_bug.cgi?id=79529

        Reviewed by Ryosuke Niwa.

        * team.html:

2012-02-16  Kent Tamura  <tkent@chromium.org>

        Improve usability of coding-style.html
        https://bugs.webkit.org/show_bug.cgi?id=78470

        Reviewed by Eric Seidel.

        * coding/coding-style.html:
        - Do not add a title attribute to each of LI elements
        - Do not add a click handler to each of them
        - Add a SPAN element in order to show [id-name] and provide smaller clickable area.

2012-01-23  Seo Sanghyeon  <sh4.seo@samsung.com>

        website: Reword WEBKITOUTPUTDIR documentation on Building WebKit page
        https://bugs.webkit.org/show_bug.cgi?id=76544

        Reviewed by Darin Adler.

        WEBKITOUTPUTDIR is not only for Windows.

        * building/build.html:

2012-01-20  Kent Tamura  <tkent@chromium.org>

        Each style rule should have its own ID.
        https://bugs.webkit.org/show_bug.cgi?id=76428

        Reviewed by David Levin.

        * coding/coding-style.html: Add an id attribute to each of li elements,
        and add code to set title="#id-name" and to make li elements clickable.

2012-01-19  Daniel Bates  <dbates@webkit.org>

        Remove "Safari 5.1 shipped" text from debugging instructions; move misplaced </ol>

        Rubber-stamped by Sam Weinig.

        * building/debug.html:

2012-01-19  Daniel Bates  <dbates@webkit.org>

        Update Debugging on Mac OS X instructions for Safari 5.1/WebKit 2
        https://bugs.webkit.org/show_bug.cgi?id=67102

        Reviewed by Eric Seidel.

        Add instructions for debugging UIProcess and WebProcess using Xcode 4.

        * building/active-scheme-xcode4.png: Added.
        * building/build-settings-tab-xcode4.png: Added.
        * building/build-window.png: Removed.
        * building/custom-executable-xcode4.png: Added.
        * building/custom-executable.png: Removed.
        * building/debug-mac-uiprocess.html: Added.
        * building/debug.html:
        * building/debug.png: Removed.
        * building/info-tab.png: Removed.
        * building/run-xcode4.png: Added.

2012-01-11  Antti Koivisto  <antti@apple.com>

        Remove S60 reference from webkit.org
        https://bugs.webkit.org/show_bug.cgi?id=76044

        Reviewed by Simon Hausmann.

        There is no S60.

        * index.html:

2012-01-10  Hajime Morrita  <morrita@chromium.org>

        [Website] i-Bench is no longer available.
        https://bugs.webkit.org/show_bug.cgi?id=76027

        Reviewed by Ryosuke Niwa.

        Updated the availability information of i-Bench.

        * projects/performance/index.html:

2011-12-07  Daniel Bates  <dbates@webkit.org>

        ASSERT_UNREACHED() should be ASSERT_NOT_REACHED() on assertion-guidelines.html
        https://bugs.webkit.org/show_bug.cgi?id=74006

        Reviewed by Antonio Gomes.

        As far I can tell, we've never had an ASSERT_UNREACHED(). We do have an
        ASSERT_NOT_REACHED().

        * coding/assertion-guidelines.html:

2011-11-30  Ryosuke Niwa  <rniwa@webkit.org>

        commit-review-policy.html should make clear committers shouldn't land patches without authors' consent
        https://bugs.webkit.org/show_bug.cgi?id=73098

        Reviewed by Antti Koivisto.

        Revise the sentence about committers being allowed to land patches by others to explicitly state that
        they can only land patches by others if asked by authors themselves.

        * coding/commit-review-policy.html:

2011-11-14  Mark Rowe  <mrowe@apple.com>

        Upgrade WordPress's Akismet plug-in to the latest version.

        * blog/wp-content/plugins/akismet:

2011-11-14  Mark Rowe  <mrowe@apple.com>

        Update one file that was missed.

        * blog/wp-settings.php:

2011-11-14  Mark Rowe  <mrowe@apple.com>

        Upgrade WordPress to v3.2.1.

        * blog:

2011-10-28  Dean Jackson  <dino@apple.com>

        Remove this horribly outdated file. It was showing up in
        Google searches and shouldn't be used as official
        documentation.

        Rubber-stamped by Simon Fraser.

        * specs/MediaQueriesExtensions.html: Removed.

2011-10-21  Ryosuke Niwa  <rniwa@webkit.org>

        Style guide should mention the preference of index over iterator
        https://bugs.webkit.org/show_bug.cgi?id=70285

        Reviewed by Darin Adler.

        Per discussion on https://lists.webkit.org/pipermail/webkit-dev/2011-October/018274.html,
        we prefer index over iterators.

        * coding/coding-style.html:

2011-10-10  Ryosuke Niwa  <rniwa@webkit.org>

        Fix a typo pointed by Sam (Weinig).

        * coding/coding-style.html:

2011-10-10  Ryosuke Niwa  <rniwa@webkit.org>

        Style guide should mandate use of pass-by-reference for out arguments
        https://bugs.webkit.org/show_bug.cgi?id=69766

        Reviewed by Darin Adler.

        This matches the convention used throughout WebCore.

        * coding/coding-style.html:

2011-10-06  Amruth Raj  <amruthraj@motorola.com>

        Add Motorola Mobility to team.html
        https://bugs.webkit.org/show_bug.cgi?id=69597

        Reviewed by Ryosuke Niwa.

        * team.html:

2011-09-20  Ryosuke Niwa  <rniwa@webkit.org>

        Generate WebKit team's page out of committers.py
        https://bugs.webkit.org/show_bug.cgi?id=68045

        Fix per Daniel's review comment since I had misunderstood the code.

        * team.html:

2011-09-20  Ryosuke Niwa  <rniwa@webkit.org>

        Generate WebKit team's page out of committers.py
        https://bugs.webkit.org/show_bug.cgi?id=68045

        Reviewed by Daniel Bates.

        Add the initial implementation of team.html. This page automatically pulls data from committers.py
        There are no areas of expertise but that'll be added once the bug 68061 is fixed.

        * team.html: Added.

2011-09-01  Jon Lee  <jonlee@apple.com>

        Adding control rendering at various sizes.

        * projects/forms/survey.html:

2011-08-29  Jon Lee  <jonlee@apple.com>

        Updating forms survey with non-standard wrap for textarea and more data-list driven text fields.

        * projects/forms/survey.html:

2011-08-17  Jon Lee  <jonlee@apple.com>

        Updating the forms survey to include various element sizes.

        * projects/forms/survey.html:

2011-08-16  Daniel Bates  <dbates@webkit.org>

        Add myself to the list of individual members in the WebKit Security Group.

        Rubber-stamped by Eric Seidel.

        * security/security-group-members.html:

2011-08-09  Anders Carlsson  <andersca@apple.com>

        Broken link to LICENSE on contributing code page
        https://bugs.webkit.org/show_bug.cgi?id=65947

        Reviewed by Ryosuke Niwa.

        * coding/contributing.html:

2011-08-04  Dan Bernstein  <mitz@apple.com>

        Fixed a typo.

        * coding/contributing.html:

2011-08-04  Nico Weber  <thakis@chromium.org>

        Update the contributors page to recommend webkit-patch instead of many manual steps
        https://bugs.webkit.org/show_bug.cgi?id=65714

        Reviewed by Adam Barth.

        asvitkine followed the contributing instructions for his first patch, and got
        the ChangeLog entry wrong: https://bugs.webkit.org/show_bug.cgi?id=65707
        webkit-patch prevents errors like this and more.

        * coding/contributing.html:

2011-07-21  Jon Lee  <jonlee@apple.com>

        Create a new survey page that showcases form and interactive elements for quick reference and comparison.
        <rdar://problem/9782965>

        Rubber-stamped by Maciej Stachowiak.

        * projects/forms/image-usemap.png: Added.
        * projects/forms/image1.png: Added.
        * projects/forms/image10.png: Added.
        * projects/forms/image16.png: Added.
        * projects/forms/index.html: Update links
        * projects/forms/survey.html: Added.

2011-07-20  Leo Yang  <leo.yang@torchmobile.com.cn>

        SVG feature status is not up-to-date
        https://bugs.webkit.org/show_bug.cgi?id=64856

        Reviewed by Dirk Schulze.

        Update SVG feature status after r91331.

        * projects/svg/status.xml:

2011-06-29  Leandro Pereira  <leandro@profusion.mobi>

        Reviewed by Darin Adler.

        Add note about cases where enums are preferred over bools on function parameters.
        https://bugs.webkit.org/show_bug.cgi?id=63564

        This matches the outcome of this webkit-dev thread:
        https://lists.webkit.org/pipermail/webkit-dev/2010-December/015192.html

        * coding/coding-style.html:

2011-05-31  Chris Evans  <cevans@chromium.org>

        Reviewed by Drew Yao.

        Add "Collaboration" to WebKit Security Group Privileges and Responsibilities section.

        * security/index.html: Add "Collaboration" section with text discussed on webkit-security.

2011-05-20  Alexey Proskuryakov  <ap@apple.com>

        Reviewed by Dan Bernstein.

        Building instructions should not talk about Tiger
        https://bugs.webkit.org/show_bug.cgi?id=61210

        * building/tools.html: Removed steps that are only necessary on Tiger, and changed required
        Xcode version to the latest Leopard one.

2011-05-16  Huzaifa Sidhpurwala <huzaifas@redhat.com>

       Reviewed by Adam Barth.

       Add Huzaifa Sidhpurwala to the WebKit Security Group site.
       https://bugs.webkit.org/show_bug.cgi?id=60686

       * security/security-group-members.html:

2011-05-11  Cris Neckar  <cdn@chromium.org>

        Reviewed by David Levin.

        Adding Cris Neckar to the Webkit Security Group site.
        https://bugs.webkit.org/show_bug.cgi?id=60668

        * security/security-group-members.html:

2011-05-11  Ademar de Souza Reis Jr.  <ademar.reis@openbossa.org>

        Reviewed by Mark Rowe.

        Update Qt/Nokia Security contacts
        https://bugs.webkit.org/show_bug.cgi?id=60650

        Ademar (me) replaced Simon as the release manager and primary security
        contact for QtWebKit. See:
        http://lists.webkit.org/mailman/private.cgi/webkit-security/2011-February/000584.html

        * security/security-group-members.html:

2011-05-09  Eric Seidel  <eric@webkit.org>

        Reviewed by Adam Barth.

        Add guidelines for feature addition to webkit.org (per disccusion at contributor meeting)
        https://bugs.webkit.org/show_bug.cgi?id=59672

        * coding/adding-features.html: Added.
        * nav.inc:

2011-04-29  Pavel Feldman  <pfeldman@chromium.org>

        Not reviewed: adding image files for the blog post.

        * blog-files/inspector/remote-debugging-attached.png: Added.
        * blog-files/inspector/remote-debugging-discovery.png: Added.

2011-04-27  Ojan Vafai  <ojan@chromium.org>

        Reviewed by Dan Bernstein.

        change style guide to pre-increment in for-loops
        https://bugs.webkit.org/show_bug.cgi?id=59619

        This matches what a number of reviewers have been asking
        for in code reviews.

        * coding/coding-style.html:

2011-04-26  Carol Szabo  <carol.szabo@nokia.com>

        Reviewed by Tor Arne Vestbø.

        Added instructions on how to work from behind proxy
        and detailed the instructions refering to rebasing.
        Windows build instructions do not work if you are behind a proxy
        or have a Temp directory that you do not own directly.
        https://bugs.webkit.org/show_bug.cgi?id=57246

        * building/tools.html:

2011-04-09  Dimitri Glazkov  <dglazkov@chromium.org>

        Reviewed by James Robinson.

        Add a diagram, explaning how  an event's relatedTarget interact with shadow DOM boundaries.
        https://bugs.webkit.org/show_bug.cgi?id=58190

        * misc/related-target-and-shadow-dom.svg: Added.

2011-04-06  David Levin  <levin@chromium.org>

        Reviewed by Ojan Vafai.

        Augment style guidelines about meaningless parameters from text the unwritten rules email.
        https://bugs.webkit.org/show_bug.cgi?id=55275

        * coding/coding-style.html:

2011-04-05  Yury Semikhatsky  <yurys@chromium.org>

        Unreviewed. Add Web Inspector stack trace, pause on exception and window.onerror
        screenshots.

        * blog-files/inspector/stack-traces-img/1.png: Added.
        * blog-files/inspector/stack-traces-img/2.png: Added.
        * blog-files/inspector/stack-traces-img/3.png: Added.
        * blog-files/inspector/stack-traces-img/4.png: Added.
        * blog-files/inspector/stack-traces-img/5.png: Added.
        * blog-files/inspector/stack-traces-img/6.png: Added.
        * blog-files/inspector/stack-traces-img/button.png: Added.

2011-02-26  David Levin  <levin@chromium.org>

        Reviewed by Darin Adler.

        Add style guidelines about comments from the unwritten rules email.
        https://bugs.webkit.org/show_bug.cgi?id=55272

        * coding/coding-style.html: Added the guidelines.

2011-02-09  Alexander Pavlov  <apavlov@chromium.org>

        Unreviewed. Add Web Inspector stylesheet resource diff screenshot.

        * blog-files/inspector/css_rule_diff.png: Added.

2011-02-07  Alexander Pavlov  <apavlov@chromium.org>

        Unreviewed. Add Web Inspector warning 10x10 PNG, move files from r77801 into the inspector/ directory.

        * blog-files/inspector/css_as_authored.png: Renamed from Websites/webkit.org/blog-files/inspector-css-as-authored.png.
        * blog-files/inspector/css_autocomplete.png: Renamed from Websites/webkit.org/blog-files/inspector-css-autocomplete.png.
        * blog-files/inspector/css_unknown_properties.png: Renamed from Websites/webkit.org/blog-files/inspector-unknown-css-properties.png.
        * blog-files/inspector/warning_10x10.png: Added.

2011-02-07  Alexander Pavlov  <apavlov@chromium.org>

        Unreviewed. Add Web Inspector style editing screenshots.

        * blog-files/inspector-css-as-authored.png: Added.
        * blog-files/inspector-css-autocomplete.png: Added.
        * blog-files/inspector-unknown-css-properties.png: Added.

2011-01-21  David Levin  <levin@chromium.org>

        Reviewed by Darin Adler.

        Proposal: Require cross-organizational seconds for reviewer nominations
        https://bugs.webkit.org/show_bug.cgi?id=47597

        This changes the committer/reviewer policy to require an additional
        reviewer supporting a reviewer nomination to work for a different
        company and different project affiliation from the nominee.

        This means reviewer nominations would require four supporting reviewers,
        one of which knows the reviewer through the community (irc, email, bugs)
        ensuring that the nominee has the open-source collaboration skills
        we so highly value here in WebKit.

        * coding/commit-review-policy.html:

2011-01-01  Adam Barth  <abarth@webkit.org>

        Reviewed by Eric Seidel.

        Move JavaScriptCore to Source
        https://bugs.webkit.org/show_bug.cgi?id=51604

        * coding/assertion-guidelines.html:
          - Update documentation to point to the new location of
            JavaScriptCore.

2010-12-17  Dan Bernstein  <mitz@apple.com>

        Reviewed by Simon Fraser.

        Rename WebKitTools to Tools
        https://bugs.webkit.org/show_bug.cgi?id=49861

        * asking_questions.html:
        * building/tools.html:
        * coding/scripts.html:

2010-11-08  Jessie Berlin  <jberlin@apple.com>

        Reviewed by Adam Roben.

        We should add a build step to comment out or remove the lines unsetting TEMP and TMP in the
        .bashrc file.
        https://bugs.webkit.org/show_bug.cgi?id=49189

        * building/tools.html:
        Add a line recommending bash shell users to comment out or remove those lines, with an
        explanation as to why.

2010-11-04  Orlando Leite  <orlleite@gmail.com>

        Reviewed by Adam Barth.

        Add Java for Mac OS X Developer Package to Installing Developer Tools web page

        * building/tools.html:

2010-10-29  Adam Roben  <aroben@apple.com>

        Instruct developers to install the Feburary 2010 DirectX SDK, not just
        any version

        The February 2010 SDK is the last one with support for Visual Studio
        2005.

        I also removed some unnecessary instructions regarding the DirectX
        SDK.

        Fixes <http://webkit.org/b/48642> webkit.org should recommend a
        specific version of the DirectX SDK

        Reviewed by Steve Falkenburg.

        * building/tools.html:

2010-10-28  Lucas Forschler  <lforschler@apple.com>

        Reviewed by Geoffrey Garen.

        Bug 46927 - Sunspider 0.9 web site should prominently link to Sunspider 0.9.1
        Notes:
            -Created a new sunspider "landing" page which lists current and previous versions of SunSpider.
            -Edited the .htaccess file to redirect the old pages to the new landing page.
            -This should keep our search engine page rankings effective.
        Potentially breaking:
            -This COULD potentially break the SunSpider benchmark.
            -Local testing with relative links seems to function as expected.
            -The .htaccess 301 redirects are UNTESTED.


        * .htaccess:
        * perf/sunspider: Added.
        * perf/sunspider-0.9.1/sunspider.html: Removed.
        * perf/sunspider-0.9.1/versions.html: Removed.
        * perf/sunspider-0.9/sunspider.html: Removed.
        * perf/sunspider/sunspider.css: Added.
        * perf/sunspider/sunspider.html: Added.

2010-10-19  Jenn Braithwaite  <jennb@chromium.org>

        Reviewed by David Levin.

        Add DirectX SDK to Installing Developer Tools web page
        https://bugs.webkit.org/show_bug.cgi?id=47911

        * building/tools.html:

2010-09-30  David Levin  <levin@chromium.org>

        Reviewed by Darin Adler.

        Add guideline for constructors doing implicit type conversion to coding style.
        https://bugs.webkit.org/show_bug.cgi?id=47646

        * coding/coding-style.html:

2010-10-01  Alex Mathews  <possessedpenguinbob@gmail.com>

        Reviewed by Simon Fraser.

        Bug 47013 - Main Web Inspector link on webkit.org links to old wiki page
        https://bugs.webkit.org/show_bug.cgi?id=47013

        * nav.inc: Removed the space from the web inspector wiki link.

2010-09-22  Balazs Kelemen  <kbalazs@webkit.org>

        Unreviewed HTML syntax fix for my recent change in the coding-style.

        * coding/coding-style.html: Change "&gt" and "&lt" to "&gt;" and "&lt;".

2010-09-22  Balazs Kelemen  <kb@inf.u-szeged.hu>

        Reviewed by Darin Adler.

        check-webkit-style and the coding style guidelines page are inconsistent
        https://bugs.webkit.org/show_bug.cgi?id=46099

        * coding/coding-style.html:
        Making clear that includes of system headers must come after includes of other headers.

2010-09-16  Tony Gentilcore  <tonyg@chromium.org>

        Reviewed by Adam Barth.

        Adding a timeline screenshot for blocking and defer scripts
        https://bugs.webkit.org/show_bug.cgi?id=45933

        * blog-files/timeline-blocking-script.png: Added.
        * blog-files/timeline-defer-script.png: Added.

2010-09-14  Jessie Berlin  <jberlin@apple.com>

        Reviewed by Adam Roben.

        Exceptions are getting ignored on 64-bit Windows in the Web Process.
        https://bugs.webkit.org/show_bug.cgi?id=45779

        * building/tools.html:
        Add instructions about how to optionally get hotfix 976038.

2010-09-06  Robin Qiu  <robin.qiu@torchmobile.com.cn>

        Reviewed by Adam Barth.

        https://bugs.webkit.org/show_bug.cgi?id=43982
        This js file seems to be a popular script for detecting mobile WebKit but
        it has a flaw that makes it fail on Android and BlackBerry.

        The issue is that it looks for "Mobile/" but Android and BlackBerry
        use "Mobile" with no numbering after it.
        Changed RegExp pattern " Mobile/" to " Mobile\\b".

        * misc/WebKitDetect.js:
        (WebKitDetect.isMobile):

2010-08-27  Darin Adler  <darin@apple.com>

        * coding/RefPtr.html: Minor revision, improve clarity and mention some
        recent developments.

2010-08-26  Daniel Bates  <dbates@rim.com>

        Reviewed by Dumitru Daniliuc.

        Fix misspelled words on WebKit.org contact.html,
        demos/index.html, and quality/leakhunting.html
        https://bugs.webkit.org/show_bug.cgi?id=44747

        Fix some misspelled words on the WebKit.org site.

        * contact.html: Change "bugreports" [sic] to "bug reports".
        * demos/index.html: Change "testcase" [sic] to "test case".
        * quality/leakhunting.html: Change "formating" [sic] to "formatting".

2010-08-23  David Kilzer  <ddkilzer@apple.com>

        Clean up some HTML typos in crashlogs.html

        Rubber-stamped by Maciej Stachowiak.

        * quality/crashlogs.html: Fixed "</code>>" typos added in
        r56300.  Changed "<tt>" tag with style attribute to "<code>"
        that was missed in r56300.

2010-08-17  Beth Dakin  <bdakin@apple.com>

        Rubber-stamped by Adele.

        Adding a MathML Demo and screenshot.

        * blog-files/riemann-screenshot.png: Added.
        * demos/mathml: Added.
        * demos/mathml/MathMLDemo.xhtml: Added.

2010-08-17  Adam Roben  <aroben@apple.com>

        Instruct developers to (optionally) install Debugging Tools for
        Windows

        These tools are used by some of our scripts, so are useful for
        developers to have installed.

        Fixes <http://webkit.org/b/44128> webkit.org building instructions
        should recommend installing Debugging Tools for Windows

        Reviewed by Sam Weinig.

        * building/tools.html:

2010-07-30  Renata Hodovan  <reni@inf.u-szeged.hu>

        Reviewed by Nikolas Zimmermann.

        Update SVG implementation status.

        * projects/svg/status.xml:

2010-07-21  Dimitri Glazkov  <dglazkov@chromium.org>

        Reviewed by Darin Adler.

        Add a diagram explaining how a DOM element is attached to the site.
        https://bugs.webkit.org/show_bug.cgi?id=42763

        * coding/dom-element-attach.html: Added.
        * coding/images/dom-element-attach-large.png: Added.
        * coding/images/dom-element-attach-small.png: Added.
        * coding/images/dom-element-attach.graffle: Added.
        * coding/technical-articles.html: Added a link to the page with the diragram.

2010-06-16  Jeremy Moskovich  <jeremy@chromium.org>

        Reviewed by Darin Adler.

        Improve assertion macro documentation.

        https://bugs.webkit.org/show_bug.cgi?id=40565

        * coding/assertion-guidelines.html:

2010-06-16  Jeremy Moskovich  <jeremy@chromium.org>

        Reviewed by Geoffrey Garen.

        Add an index of technical articles to the WebKit site.  This makes the
        links to the RefPtr and Assertion documentation discoverable and
        provides an easy way to find some useful blog posts.

        https://bugs.webkit.org/show_bug.cgi?id=40561

        * coding/technical-articles.html: Added.
        * nav.inc: Add link to technical articles.

2010-06-15  Adam Roben  <aroben@apple.com>

        Remove some unnecessary steps for setting up the debugger on Windows

        Apparently update-webkit does this for you now.

        Rubber-stamped by Steve Falkenburg.

        * building/debug.html: Removed the first two Windows steps, which are
        now unnecessary, and updated the third to reflect reality.

2010-06-14  Adam Roben  <aroben@apple.com>

        Improve instructions for debugging on Windows

        Fixes <http://webkit.org/b/40585>.

        Reviewed by Steve Falkenburg.

        * building/debug.html: Improved the Windows instructions. We now
        instruct users to set things up so that hitting F5 from WebKit.sln
        will launch Safari with the WEBKITNIGHTLY environment variable
        pointing to the location of the built WebKit.dll.

        * building/console_vs2005.jpg: Removed.
        * building/debug_vs2005.jpg: Removed.

        * building/launch-debugger-vs2005.png: Added.
        * building/set-as-startup-project-vs2005.png: Added.
        * building/set-debugging-properties-vs2005.png: Added.

2010-06-07  Jeremy Moskovich  <jeremy@chromium.org>

        Reviewed by Darin Adler.

        Add documentation on the various assertion macros in WebKit.

        https://bugs.webkit.org/show_bug.cgi?id=39950

        * coding/assertion-guidelines.html: Added.

2010-05-29  Sterling Swigart  <sswigart@google.com>

        Reviewed by David Levin.

        Adding tests to canvas.html performance test
        https://bugs.webkit.org/show_bug.cgi?id=39883

        * demos/canvas-perf/canvas.html:
        Added tests for:
            strokeText
            fillText
            strokeLine

2010-05-25  Jeremy Orlow  <jorlow@chromium.org>

        Reviewed by Darin Adler.

        Update the style guide re: static member variables and structs
        https://bugs.webkit.org/show_bug.cgi?id=39663

        Per Darin Adler's proposal on webkit-dev.

        All static member variables should be prefixed with s_.
        m_ should not be used for public data members in structs.
        Only structs should have public data members.

        * coding/coding-style.html:

2010-05-24  David Levin  <levin@chromium.org>

        Reviewed by Maciej Stachowiak.

        Improve canvas perf test accuracy.
        https://bugs.webkit.org/show_bug.cgi?id=39635

        * demos/canvas-perf/canvas.html:
          1. Change the various tests to get the image data for the result
             to help ensure that the operation has completed by the time,
             and subtract out the time needed to do this.
          2. Made the test more flexible about number of repetitions and
             image size.
          3. Make the tests run separately and have a pause between them
             to allow for garbage collection so that results are more
             consistent.
          4. Added a standard logging function and shouldBe asserts to
             verify that the correct scaling operations were happening.

2010-05-20  Daniel Bates  <dbates@rim.com>

        Rubber-stamped by Simon Fraser.

        Spelling correction; change "acces" [sic] to "access".

        * quality/lifecycle.html:

2010-05-14  Eric Seidel  <eric@webkit.org>

        Reviewed by Maciej Stachowiak.

        Update tools.html to mention that Tiger users require a newer Python
        https://bugs.webkit.org/show_bug.cgi?id=38822

        Also updated the instructions that only Tiger users need
        to install a subversion client.  Newer OSes already have
        subversion included in the install.

        * building/tools.html:

2010-05-08  Dirk Schulze  <krit@webkit.org>

        Reviewed by Nikolas Zimmermann.

        SVGFont's VKern implementation missing
        https://bugs.webkit.org/show_bug.cgi?id=38663

        * projects/svg/status.xml:

2010-05-05  Shinichiro Hamaji  <hamaji@chromium.org>

        Reviewed by Adam Barth.

        Commit and Review policy should encourage unofficial reviews
        https://bugs.webkit.org/show_bug.cgi?id=38517

        * coding/commit-review-policy.html:

2010-05-04  Dumitru Daniliuc  <dumi@chromium.org>

        Reviewed by Darin Adler.

        Fix the sticky-notes demo.
        https://bugs.webkit.org/show_bug.cgi?id=38550

        1. Exceptions thrown by openDatabase() should be treated as
        failures.
        2. Do not allow users to create new notes when openDatabase()
        failed.

        * demos/sticky-notes/index.html:

2010-05-02  Dirk Schulze  <krit@webkit.org>

        Reviewed by Nikolas Zimmermann.

        SVG hkern implementation incomplete
        https://bugs.webkit.org/show_bug.cgi?id=38407

        We support hkern now. Mention this in the SVG status page.

        * projects/svg/status.xml:

2010-04-29  Dean Jackson  <dino@apple.com>

        Unreviewed. Make a note that we are no longer proposing
        the evaluateMediaQuery method. Instead, we are following
        the standard matchMedium method from CSS 3 View.

        * specs/MediaQueriesExtensions.html:

2010-04-18  Adam Barth  <abarth@webkit.org>

        Unreviewed.  Update a label of the diagram to better match the
        description in the text of the blog post.

        * blog-files/loader-diagram.svg:

2010-04-17  Adam Barth  <abarth@webkit.org>

        Unreviewed.  Added loader diagram for upcoming blog post.

        * blog-files/loader-diagram.svg: Added.

2010-04-11  Joseph Pecoraro  <joepeck@webkit.org>

        Reviewed by Eric Seidel.

        Minor Updates and Cleanup to the Contributing Page
        https://bugs.webkit.org/show_bug.cgi?id=37415

        * coding/contributing.html:

2010-04-07  Maciej Stachowiak  <mjs@apple.com>

        (Not reviewed.)

        Random demo to look cool on twitter.

        * misc/gradient-input.html: Added.

2010-04-04  Pavel Feldman  <pfeldman@chromium.org>

        (Not reviewed).

        Adding images for inspector blog post. Previewed by Timothy Hatcher.

        * blog-files/inspector/audits_launcher.png: Added.
        * blog-files/inspector/audits_panel.png: Added.
        * blog-files/inspector/console_panel.png: Added.
        * blog-files/inspector/context_menu.png: Added.
        * blog-files/inspector/css_highlighted_line.png: Added.
        * blog-files/inspector/css_line_number_snippet.png: Added.
        * blog-files/inspector/css_line_numbers.png: Added.
        * blog-files/inspector/deactivate_breakpoints.png: Added.
        * blog-files/inspector/evaluate_on_hover.png: Added.
        * blog-files/inspector/evaluate_on_hover_2.png: Added.
        * blog-files/inspector/inherited_styles.png: Added.
        * blog-files/inspector/large_dom.png: Added.
        * blog-files/inspector/large_resources.png: Added.
        * blog-files/inspector/pseudo_elements.png: Added.
        * blog-files/inspector/redirect_headers.png: Added.
        * blog-files/inspector/redirect_headers_full.png: Added.
        * blog-files/inspector/redirects.png: Added.
        * blog-files/inspector/redirects_full.png: Added.
        * blog-files/inspector/timeline_overview.png: Added.
        * blog-files/inspector/timeline_panel.png: Added.
        * blog-files/inspector/timeline_record_details.png: Added.

2010-03-25  Joseph Pecoraro  <joepeck@webkit.org>

        Reviewed by David Levin.

        Asking Questions Page Grammar Fixes
        https://bugs.webkit.org/show_bug.cgi?id=36608

        * asking_questions.html:

2010-03-25  Joseph Pecoraro  <joepeck@webkit.org>

        Reviewed by Timothy Hatcher.

        New Asking Questions Page is not Valid HTML5
        https://bugs.webkit.org/show_bug.cgi?id=36605

        * asking_questions.html: fixed issues raised by the validator.

2010-03-25  Julien Chaffraix  <jchaffraix@webkit.org>

        Reviewed by David Levin.

        Add a page on how to ask questions
        https://bugs.webkit.org/show_bug.cgi?id=35223

        * asking_questions.html: Added.
        Add a page on how to ask questions based on Ariya Hidayat's mail: how
        to get help effectively
        (http://article.gmane.org/gmane.os.opendarwin.webkit.user/145/match=get+help+effectively)

        * contact.html: Tweaked the wording to make it more clear what the
        mailing list are used for. Also changed the formatting to better
        underline the different mailing lists.

2010-03-24  Sam Weinig  <sam@webkit.org>

        Rubber-stamped by Anders Carlsson..

        Update Security Group Members list.

        * security/security-group-members.html:

2010-03-22  Maciej Stachowiak  <mjs@apple.com>

        (Not reviewed.)

        Add another example.

        * demos/accessible-ascii-art/butterfly-figure.html: Added.

2010-03-22  Maciej Stachowiak  <mjs@apple.com>

        (Not reviewed.)

        Add example of accessible ASCII art for HTML WG.

        * demos/accessible-ascii-art: Added.
        * demos/accessible-ascii-art/butterfly.html: Added.

2010-03-20  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Mark Rowe.

        WebKit blog should be valid HTML5
        https://bugs.webkit.org/show_bug.cgi?id=36410

        * blog/wp-content/themes/webkit/comments-popup.php:
        * blog/wp-content/themes/webkit/footer.php:
        * blog/wp-content/themes/webkit/header.php:

2010-03-20  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Mark Rowe.

        Fix a bunch of HTML5 validation errors on various pages.
        https://bugs.webkit.org/show_bug.cgi?id=36409

        * building/build.html:
        * building/checkout.html:
        * building/debug.html:
        * building/run.html:
        * building/tools.html:
        * coding/coding-style.html:
        * coding/contributing.html:
        * coding/major-objects.html:
        * css/main.css:
        (.asciiart):
        * demos/index.html:
        * header.inc:
        * projects/compat/index.html:
        * projects/css/index.html:
        * projects/documentation/index.html:
        * projects/goals.html:
        * projects/index.html:
        * projects/mathml/index.html:
        * quality/bugpriorities.html:
        * quality/bugwriting.html:
        * quality/crashlogs.html:
        * quality/lifecycle.html:
        * quality/testing.html:
        * quality/testwriting.html:

2010-03-19  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Mark Rowe.

        webkit.org should use the HTML5 doctype
        https://bugs.webkit.org/show_bug.cgi?id=36407

        * header.inc:
        * misc/drosera/index.html:
        * perf/slickspeed/system/index.php:
        * perf/slickspeed/system/template.php:
        * specs/index.html:

2010-03-19  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Mark Rowe.

        http://webkit.org/ has an HTML5 validation error
        https://bugs.webkit.org/show_bug.cgi?id=36406

        * nav.inc:

2010-03-15  Maciej Stachowiak  <mjs@apple.com>

        Tweak canvas perf demo.

        * demos/canvas-perf/canvas.html:

2010-03-14  Maciej Stachowiak  <mjs@apple.com>

        Added canvas perf demo for whatwg.

        * demos/canvas-perf: Added.
        * demos/canvas-perf/canvas.html: Added.
        * demos/canvas-perf/kraken.jpg: Added.

2010-03-09  Adam Roben  <aroben@apple.com>

        Add a link to the Contributors Meeting registration form in the
        sidebar

        Rubber-stamped in advance by Adele Peterson.

        * nav.inc: Added a link underneath "Trac".

2010-02-26  Sam Weinig  <sam@webkit.org>

        Rubber-stamped by Adele Peterson.

        Update Security Group Members list.

        * security/security-group-members.html:

2010-02-23  Jessie Berlin  <jberlin@webkit.org>

        Reviewed by Eric Seidel and Adam Roben.

        Debugging WebKit on Windows should mention WebKit.sln as an alternative to running debug-safari.
        https://bugs.webkit.org/show_bug.cgi?id=35098

        * building/debug.html:
        Add instructions on how to build and run WebKit from within Visual Studio.

2010-02-20  Maciej Stachowiak  <mjs@apple.com>

        Rubber stamped by Adam Barth.

        Add sunspider-0.9.1 to the site in preparation for announcing it.
        https://bugs.webkit.org/show_bug.cgi?id=35206

        * perf/sunspider-0.9.1: Added.
        * perf/sunspider-0.9.1/json2.js: Added.
        * perf/sunspider-0.9.1/sunspider-0.9: Added.
        * perf/sunspider-0.9.1/sunspider-0.9.1: Added.
        * perf/sunspider-0.9.1/sunspider-0.9.1/driver.html: Added.
        * perf/sunspider-0.9.1/sunspider-0.9.1/results.html: Added.
        * perf/sunspider-0.9.1/sunspider-0.9.1/sunspider-test-contents.js: Added.
        * perf/sunspider-0.9.1/sunspider-0.9.1/sunspider-test-prefix.js: Added.
        * perf/sunspider-0.9.1/sunspider-0.9/driver.html: Added.
        * perf/sunspider-0.9.1/sunspider-0.9/results.html: Added.
        * perf/sunspider-0.9.1/sunspider-0.9/sunspider-test-contents.js: Added.
        * perf/sunspider-0.9.1/sunspider-0.9/sunspider-test-prefix.js: Added.
        * perf/sunspider-0.9.1/sunspider-analyze-results.js: Added.
        * perf/sunspider-0.9.1/sunspider-compare-results.js: Added.
        * perf/sunspider-0.9.1/sunspider.css: Added.
        * perf/sunspider-0.9.1/sunspider.html: Added.
        * perf/sunspider-0.9.1/versions.html: Added.

2010-02-17  Maciej Stachowiak  <mjs@apple.com>

        Not reviewed - demo.

        Made some examples of using <details> for table descriptions.

        * demos/hover-summary: Added.
        * demos/hover-summary/details.css: Added.
        * demos/hover-summary/details.js: Added.
        (summaryClickListener):
        ():
        (window.onload):
        * demos/hover-summary/example1.html: Added.
        * demos/hover-summary/example2.html: Added.
        * demos/hover-summary/horizontal-triangle.png: Added.
        * demos/hover-summary/vertical-triangle.png: Added.

2010-02-02  Jens Alfke  <snej@chromium.org>

        Reviewed by David Levin.

        Clarified coding guidelines on wiki to allow indentation of
        _nested_ namespaces.
        https://bugs.webkit.org/show_bug.cgi?id=32137

        * coding/coding-style.html:

2010-01-24  Chris Jerdonek  <cjerdonek@webkit.org>

        Reviewed by David Kilzer.

        Added to contributing code page a pointer to the preferred
        license text. Also added information about copyright lines.

        https://bugs.webkit.org/show_bug.cgi?id=34017

        * coding/contributing.html:
        * css/main.css:
          - Added CSS class for books.

2010-01-21  Chris Jerdonek  <cjerdonek@webkit.org>

        Reviewed by David Levin.

        Added screenshots and clearer instructions on how to submit
        a patch for review.

        https://bugs.webkit.org/show_bug.cgi?id=32542

        Also added that a bug report should be selected or created
        prior to submitting a patch.

        * coding/contributing.html:
        * coding/images: Added.
        * coding/images/contribute_add_attachment.png: Added.
        * coding/images/contribute_mark_review.png: Added.

2010-01-11  Maciej Stachowiak  <mjs@apple.com>

        Not reviewed; updated for truth (and readability).

        Fixed some wrong listings and reorganized this page.

        * security/security-group-members.html:

2010-01-06  Dirk Schulze  <krit@webkit.org>

        Reviewed by Nikolas Zimmermann.

        SVG feImage support
        https://bugs.webkit.org/show_bug.cgi?id=31905

        Update SVG status page. We support feDisplacementMap and feImage now.

        * projects/svg/status.xml:

2009-12-20  Chris Jerdonek  <chris.jerdonek@gmail.com>

        Reviewed by Darin Adler.

        Removed outdated contact information from bug life cycle page.

        https://bugs.webkit.org/show_bug.cgi?id=32494

        * quality/lifecycle.html:

2009-12-13  Dan Bernstein  <mitz@apple.com>

        Reviewed by Sam Weinig.

        Add a style guideline concerning floating point literals
        https://bugs.webkit.org/show_bug.cgi?id=32497

        * coding/coding-style.html:

2009-12-09  Marwan Al Jubeh  <marwan.aljubeh@gmail.com>

        Reviewed by Adam Roben.

        Fixes: https://bugs.webkit.org/show_bug.cgi?id=31228
        Set the WebKitOutputDir, WebKitLibrariesDir and Cygwin environment variables automatically
        in Windows as part of running update_webkit.

        * building/build.html:
         - removed the reference to forgetting to set environment variables as a common source of errors
           on Windows. This is because this patch would make it unnecessary for the user to set these
           variables manually.

2009-12-09  Chris Jerdonek  <chris.jerdonek@gmail.com>

        Reviewed by Darin Adler.

        Added the "using std::foo" rule to the coding style guidelines.

        https://bugs.webkit.org/show_bug.cgi?id=32301

        Added to the coding style guidelines the "using std::foo" rule
        checked by the check-webkit-style script.  Also clarified the
        "using" statement guidelines that apply to implementation files.

        * coding/coding-style.html:

2009-12-05  Chris Jerdonek  <chris.jerdonek@gmail.com>

        Reviewed by Darin Adler.

        Refactored web site documentation so that advice to add
        WebKitTools/Scripts to your shell path does not appear
        on multiple pages.

        https://bugs.webkit.org/show_bug.cgi?id=32112

        * building/build.html:
        * building/checkout.html:
        * building/run.html:
        * coding/coding-style.html:
        * coding/contributing.html:
        * coding/scripts.html: Added.
        * quality/testing.html:

2009-12-04  Marc-Antoine Ruel  <maruel@chromium.org>

        Reviewed by Eric Seidel.

        Add reference to the GTK and QT build wiki pages

        https://bugs.webkit.org/show_bug.cgi?id=32088

        * building/tools.html:
        * css/main.css:

2009-12-01  Chris Jerdonek  <chris.jerdonek@gmail.com>

        Reviewed by Darin Adler.

        Added clarifications to the web site regarding coding style and
        code cleanup--

        https://bugs.webkit.org/show_bug.cgi?id=31618

        Changes include the following:

        - Expanded the style guidelines regarding "using" statements.
        - Made the style guidelines page validate as HTML.
        - Added that legacy WebKit components should not be cleaned up.
        - Added that it is more acceptable to update style when already
          touching code.

        * coding/coding-style.html:
        * coding/contributing.html:
        * projects/cleanup/index.html:

2009-11-18  Eric Seidel  <eric@webkit.org>

        Reviewed by David Levin.

        Make 80 patches a formal requirement for reviewership
        https://bugs.webkit.org/show_bug.cgi?id=31313
        Per discussion on the webkit-reviewers list:
        http://lists.webkit.org/mailman/private.cgi/webkit-reviewers/2009-November/000795.html

        * coding/commit-review-policy.html:

2009-11-18  Daniel Bates  <dbates@webkit.org>

        Reviewed by Eric Seidel.

        https://bugs.webkit.org/show_bug.cgi?id=31610

        Adds property "min-width" to #title so that the width of the title
        element on each page is at least 790px. In particular, this makes
        the page <http://webkit.org/security/security-group-members.html>
        consistent, in appearance, to the rest of the site.

        * css/main.css:

2009-11-16  Sam Weinig  <sam@webkit.org>

        Reviewed by Anders Carlsson.

        Update Security Group Members list.

        * security/security-group-members.html:

2009-11-16  Sam Weinig  <sam@webkit.org>

        Reviewed by Adele Peterson.

        Update Security Group Members list.

        * security/security-group-members.html:

2009-11-13  Chris Jerdonek  <chris.jerdonek@gmail.com>

        Reviewed by Darin Adler.

        Added to the WebKit Coding Style Guidelines not to use
        "using namespace" statements in header files.

        * coding/coding-style.html:

2009-11-10  Oliver Hunt  <oliver@apple.com>

        Reviewed by Maciej Stachowiak.

        Fix WebGL demos to work with renamed WebGL primitives

        * blog-files/webgl/Earth.html:
        * blog-files/webgl/ManyPlanetsDeep.html:
        * blog-files/webgl/SpinningBox.html:
        * blog-files/webgl/SpiritBox.html:
        * blog-files/webgl/TeapotPerPixel.html:
        * blog-files/webgl/TeapotPerVertex.html:
        * blog-files/webgl/WebGL+CSS.html:
        * blog-files/webgl/resources/CanvasMatrix.js:
        (CanvasMatrix4.prototype.getAsWebGLFloatArray):
        * blog-files/webgl/resources/utils3d.js:
        (makeBox):
        (makeSphere):
        (doLoadObj):

2009-11-06  Dirk Schulze  <krit@webkit.org>

        Rubber stamped by Eric Seidel.

        Update SVG status page. We support feMorphology now.
        Set lightning filters to unimplemented.

        * projects/svg/status.xml:

2009-11-06  Jeff Schiller  <codedread@gmail.com>

        Reviewed by Darin Adler.

        SVG Status page update
        https://bugs.webkit.org/show_bug.cgi?id=31179

        * projects/svg/status.xml:

2009-11-03  Darin Adler  <darin@apple.com>

        Set the MIME type for all PNG files in this directory.

        * blog-files/3d-transforms/mighty-cubes.png: Added property svn:mime-type.
        * blog-files/3d-transforms/poster-circle.png: Added property svn:mime-type.
        * blog-files/InspectorDatabaseBrowser.png: Modified property svn:mime-type.
        * blog-files/acid3-100.png: Modified property svn:mime-type.
        * blog-files/acid3-full-rendering-pass.png: Modified property svn:mime-type.
        * blog-files/acid3-rendering-reference.png: Modified property svn:mime-type.
        * blog-files/acid3-screenshot.png: Modified property svn:mime-type.
        * blog-files/acid3-timing-screenshot.png: Modified property svn:mime-type.
        * blog-files/acid3-timing.png: Modified property svn:mime-type.
        * blog-files/bounce.png: Added property svn:mime-type.
        * blog-files/gebcnwebkitonly.png: Modified property svn:mime-type.
        * blog-files/inspector-closure-scope.png: Added property svn:mime-type.
        * blog-files/inspector-console-autocomplete.png: Added property svn:mime-type.
        * blog-files/inspector-databases-panel-query-view.png: Added property svn:mime-type.
        * blog-files/inspector-databases-panel.png: Added property svn:mime-type.
        * blog-files/inspector-disabling-properties.png: Added property svn:mime-type.
        * blog-files/inspector-elements-panel.png: Added property svn:mime-type.
        * blog-files/inspector-event-scope.png: Added property svn:mime-type.
        * blog-files/inspector-profiles-panel.png: Added property svn:mime-type.
        * blog-files/inspector-resources-panel.png: Added property svn:mime-type.
        * blog-files/inspector-scripts-panel.png: Added property svn:mime-type.
        * blog-files/inspector-searching-elements.png: Added property svn:mime-type.
        * blog-files/inspector-searching-profiles.png: Added property svn:mime-type.
        * blog-files/inspector-status-bar-with-errors.png: Added property svn:mime-type.
        * blog-files/inspector-toolbar.png: Added property svn:mime-type.
        * blog-files/inspector-with-scope.png: Added property svn:mime-type.
        * blog-files/inspector/breakpoints.png: Added property svn:mime-type.
        * blog-files/inspector/colors.png: Added property svn:mime-type.
        * blog-files/inspector/cookies.png: Added property svn:mime-type.
        * blog-files/inspector/css_selectors.png: Added property svn:mime-type.
        * blog-files/inspector/css_syntax_highlight.png: Added property svn:mime-type.
        * blog-files/inspector/dom_storage.png: Added property svn:mime-type.
        * blog-files/inspector/edit_attributes.png: Added property svn:mime-type.
        * blog-files/inspector/enable.png: Added property svn:mime-type.
        * blog-files/inspector/event_listeners.png: Added property svn:mime-type.
        * blog-files/inspector/form_data.png: Added property svn:mime-type.
        * blog-files/inspector/inline_highlight.png: Added property svn:mime-type.
        * blog-files/inspector/inorder.png: Added property svn:mime-type.
        * blog-files/inspector/inspect_inspector.png: Added property svn:mime-type.
        * blog-files/inspector/inspect_inspector_small.png: Added property svn:mime-type.
        * blog-files/inspector/load_lines.png: Added property svn:mime-type.
        * blog-files/inspector/nodelist.png: Added property svn:mime-type.
        * blog-files/inspector/scope_bar.png: Added property svn:mime-type.
        * blog-files/inspector/watched_expression.png: Added property svn:mime-type.
        * blog-files/kate-circle.png: Modified property svn:mime-type.
        * blog-files/kate-gradient-rounded.png: Modified property svn:mime-type.
        * blog-files/kate-gradient.png: Modified property svn:mime-type.
        * blog-files/kate-reflected.png: Modified property svn:mime-type.
        * blog-files/kate-vignette-mask.png: Modified property svn:mime-type.
        * blog-files/kate.png: Modified property svn:mime-type.
        * blog-files/leaves/images/apple-touch-icon.png: Added property svn:mime-type.
        * blog-files/leaves/images/realLeaf1.png: Added property svn:mime-type.
        * blog-files/leaves/images/realLeaf2.png: Added property svn:mime-type.
        * blog-files/leaves/images/realLeaf3.png: Added property svn:mime-type.
        * blog-files/leaves/images/realLeaf4.png: Added property svn:mime-type.
        * blog-files/leaves/images/textBackground.png: Added property svn:mime-type.
        * blog-files/maskspeedracer.png: Modified property svn:mime-type.
        * blog-files/pulse.png: Added property svn:mime-type.
        * blog-files/scrollbarpicture.png: Modified property svn:mime-type.
        * blog-files/sfx-perf.png: Modified property svn:mime-type.
        * blog-files/squirrelfish-webkit-graph.png: Modified property svn:mime-type.
        * blog-files/squirrelfish.png: Modified property svn:mime-type.
        * blog-files/vignette-mask.png: Modified property svn:mime-type.
        * blog-files/webgl/resources/mars500x250.png: Modified property svn:mime-type.
        * blog-files/wsj-nopreload.png: Modified property svn:mime-type.
        * blog-files/wsj-preload.png: Modified property svn:mime-type.
        * blog-files/wsj-vs.png: Modified property svn:mime-type.
        * blog/wp-admin/images/align-center.png: Added property svn:mime-type.
        * blog/wp-admin/images/align-left.png: Added property svn:mime-type.
        * blog/wp-admin/images/align-none.png: Added property svn:mime-type.
        * blog/wp-admin/images/align-right.png: Added property svn:mime-type.
        * blog/wp-admin/images/archive-link.png: Added property svn:mime-type.
        * blog/wp-admin/images/blue-grad.png: Added property svn:mime-type.
        * blog/wp-admin/images/button-grad-active-vs.png: Added property svn:mime-type.
        * blog/wp-admin/images/button-grad-active.png: Added property svn:mime-type.
        * blog/wp-admin/images/button-grad-vs.png: Added property svn:mime-type.
        * blog/wp-admin/images/button-grad.png: Added property svn:mime-type.
        * blog/wp-admin/images/comment-grey-bubble.png: Added property svn:mime-type.
        * blog/wp-admin/images/fade-butt.png: Modified property svn:mime-type.
        * blog/wp-admin/images/fav-top.png: Added property svn:mime-type.
        * blog/wp-admin/images/fav-vs.png: Added property svn:mime-type.
        * blog/wp-admin/images/fav.png: Added property svn:mime-type.
        * blog/wp-admin/images/generic.png: Added property svn:mime-type.
        * blog/wp-admin/images/gray-grad.png: Added property svn:mime-type.
        * blog/wp-admin/images/icons32-vs.png: Added property svn:mime-type.
        * blog/wp-admin/images/icons32.png: Added property svn:mime-type.
        * blog/wp-admin/images/list-vs.png: Added property svn:mime-type.
        * blog/wp-admin/images/list.png: Added property svn:mime-type.
        * blog/wp-admin/images/logo-ghost.png: Added property svn:mime-type.
        * blog/wp-admin/images/marker.png: Added property svn:mime-type.
        * blog/wp-admin/images/mask.png: Added property svn:mime-type.
        * blog/wp-admin/images/menu-vs.png: Added property svn:mime-type.
        * blog/wp-admin/images/menu.png: Added property svn:mime-type.
        * blog/wp-admin/images/no.png: Added property svn:mime-type.
        * blog/wp-admin/images/se.png: Added property svn:mime-type.
        * blog/wp-admin/images/wheel.png: Added property svn:mime-type.
        * blog/wp-admin/images/white-grad-active.png: Added property svn:mime-type.
        * blog/wp-admin/images/white-grad.png: Added property svn:mime-type.
        * blog/wp-admin/images/wordpress-logo.png: Modified property svn:mime-type.
        * blog/wp-admin/images/yes.png: Added property svn:mime-type.
        * blog/wp-content/Picture9.png: Modified property svn:mime-type.
        * blog/wp-content/chucknorris.png: Modified property svn:mime-type.
        * blog/wp-content/databaseexample.png: Modified property svn:mime-type.
        * blog/wp-content/drosera.png: Modified property svn:mime-type.
        * blog/wp-content/hitlist.png: Modified property svn:mime-type.
        * blog/wp-content/rotate.png: Modified property svn:mime-type.
        * blog/wp-content/svgtext.png: Modified property svn:mime-type.
        * blog/wp-content/svgtextmini.png: Modified property svn:mime-type.
        * blog/wp-content/svgtextmini_01.png: Modified property svn:mime-type.
        * blog/wp-content/themes/classic/screenshot.png: Modified property svn:mime-type.
        * blog/wp-content/themes/default/screenshot.png: Modified property svn:mime-type.
        * blog/wp-content/uploads/2007/06/newinspector.png: Modified property svn:mime-type.
        * blog/wp-content/webInspector.png: Modified property svn:mime-type.
        * blog/wp-includes/images/crystal/archive.png: Added property svn:mime-type.
        * blog/wp-includes/images/crystal/audio.png: Added property svn:mime-type.
        * blog/wp-includes/images/crystal/code.png: Added property svn:mime-type.
        * blog/wp-includes/images/crystal/default.png: Added property svn:mime-type.
        * blog/wp-includes/images/crystal/document.png: Added property svn:mime-type.
        * blog/wp-includes/images/crystal/interactive.png: Added property svn:mime-type.
        * blog/wp-includes/images/crystal/spreadsheet.png: Added property svn:mime-type.
        * blog/wp-includes/images/crystal/text.png: Added property svn:mime-type.
        * blog/wp-includes/images/crystal/video.png: Added property svn:mime-type.
        * blog/wp-includes/images/rss.png: Modified property svn:mime-type.
        * blog/wp-includes/images/upload.png: Added property svn:mime-type.
        * blog/wp-includes/images/wlw/wp-comments.png: Added property svn:mime-type.
        * blog/wp-includes/images/wlw/wp-icon.png: Added property svn:mime-type.
        * blog/wp-includes/images/wlw/wp-watermark.png: Added property svn:mime-type.
        * blog/wp-includes/js/codepress/images/line-numbers.png: Added property svn:mime-type.
        * blog/wp-includes/js/thickbox/macFFBgHack.png: Added property svn:mime-type.
        * blog/wp-includes/js/thickbox/tb-close.png: Added property svn:mime-type.
        * blog/wp-includes/js/tinymce/plugins/wpeditimage/img/delete.png: Added property svn:mime-type.
        * blog/wp-includes/js/tinymce/plugins/wpeditimage/img/image.png: Added property svn:mime-type.
        * blog/wp-includes/js/tinymce/plugins/wpgallery/img/delete.png: Added property svn:mime-type.
        * blog/wp-includes/js/tinymce/plugins/wpgallery/img/edit.png: Added property svn:mime-type.
        * blog/wp-includes/js/tinymce/plugins/wpgallery/img/gallery.png: Added property svn:mime-type.
        * blog/wp-includes/js/tinymce/themes/advanced/img/gotmoxie.png: Added property svn:mime-type.
        * blog/wp-includes/js/tinymce/themes/advanced/img/sflogo.png: Added property svn:mime-type.
        * blog/wp-includes/js/tinymce/themes/advanced/skins/default/img/buttons.png: Added property svn:mime-type.
        * blog/wp-includes/js/tinymce/themes/advanced/skins/o2k7/img/button_bg.png: Added property svn:mime-type.
        * blog/wp-includes/js/tinymce/themes/advanced/skins/o2k7/img/button_bg_black.png: Added property svn:mime-type.
        * blog/wp-includes/js/tinymce/themes/advanced/skins/o2k7/img/button_bg_silver.png: Added property svn:mime-type.
        * blog/wp-includes/js/tinymce/themes/advanced/skins/wp_theme/img/butt2.png: Added property svn:mime-type.
        * blog/wp-includes/js/tinymce/themes/advanced/skins/wp_theme/img/button_bg.png: Added property svn:mime-type.
        * demos/calendar/Images/AirPort4.png: Modified property svn:mime-type.
        * demos/calendar/Images/AirPortError.png: Modified property svn:mime-type.
        * demos/calendar/Images/disclosureTriangleSmallDown.png: Modified property svn:mime-type.
        * demos/calendar/Images/disclosureTriangleSmallRight.png: Modified property svn:mime-type.
        * demos/calendar/Images/statusbarBackground.png: Modified property svn:mime-type.
        * demos/calendar/Images/statusbarResizerVertical.png: Modified property svn:mime-type.
        * demos/editingToolbar/FancyToolbarImages/button.png: Modified property svn:mime-type.
        * demos/editingToolbar/FancyToolbarImages/buttonLeft.png: Modified property svn:mime-type.
        * demos/editingToolbar/FancyToolbarImages/buttonMiddle.png: Modified property svn:mime-type.
        * demos/editingToolbar/FancyToolbarImages/buttonPressed.png: Modified property svn:mime-type.
        * demos/editingToolbar/FancyToolbarImages/buttonPressedLeft.png: Modified property svn:mime-type.
        * demos/editingToolbar/FancyToolbarImages/buttonPressedMiddle.png: Modified property svn:mime-type.
        * demos/editingToolbar/FancyToolbarImages/buttonPressedRight.png: Modified property svn:mime-type.
        * demos/editingToolbar/FancyToolbarImages/buttonRight.png: Modified property svn:mime-type.
        * demos/editingToolbar/FancyToolbarImages/camera.png: Modified property svn:mime-type.
        * demos/editingToolbar/FancyToolbarImages/link.png: Modified property svn:mime-type.
        * demos/editingToolbar/FancyToolbarImages/textAlign.png: Modified property svn:mime-type.
        * demos/editingToolbar/FancyToolbarImages/toolbarOutline.png: Modified property svn:mime-type.
        * demos/editingToolbar/FancyToolbarImages/toolbarOutlineBottom.png: Modified property svn:mime-type.
        * demos/editingToolbar/FancyToolbarImages/toolbarOutlineBottomLeft.png: Modified property svn:mime-type.
        * demos/editingToolbar/FancyToolbarImages/toolbarOutlineBottomRight.png: Modified property svn:mime-type.
        * demos/editingToolbar/FancyToolbarImages/toolbarOutlineLeft.png: Modified property svn:mime-type.
        * demos/editingToolbar/FancyToolbarImages/toolbarOutlineRight.png: Modified property svn:mime-type.
        * demos/editingToolbar/FancyToolbarImages/toolbarOutlineTop.png: Modified property svn:mime-type.
        * demos/editingToolbar/FancyToolbarImages/toolbarOutlineTopLeft.png: Modified property svn:mime-type.
        * demos/editingToolbar/FancyToolbarImages/toolbarOutlineTopRight.png: Modified property svn:mime-type.
        * demos/editingToolbar/images/safari.png: Modified property svn:mime-type.
        * demos/sticky-notes/deleteButton.png: Added property svn:mime-type.
        * demos/sticky-notes/deleteButtonPressed.png: Added property svn:mime-type.
        * demos/transitions-and-transforms/Horsehead.png: Modified property svn:mime-type.
        * demos/transitions-and-transforms/Spaces.png: Modified property svn:mime-type.
        * demos/transitions-and-transforms/Stacks.png: Modified property svn:mime-type.
        * images/DroseraPic.png: Modified property svn:mime-type.
        * misc/drosera/drosera.png: Modified property svn:mime-type.
        * perf/slickspeed/logo.png: Modified property svn:mime-type.

2009-11-03  Joseph Pecoraro  <joepeck@webkit.org>

        Reviewed by Timothy Hatcher.

        Adding images for an upcoming blog post.

        * blog-files/inspector/breakpoints.png: Added.
        * blog-files/inspector/colors.png: Added.
        * blog-files/inspector/cookies.png: Added.
        * blog-files/inspector/css_selectors.png: Added.
        * blog-files/inspector/css_syntax_highlight.png: Added.
        * blog-files/inspector/dom_storage.png: Added.
        * blog-files/inspector/edit_attributes.png: Added.
        * blog-files/inspector/enable.png: Added.
        * blog-files/inspector/event_listeners.png: Added.
        * blog-files/inspector/form_data.png: Added.
        * blog-files/inspector/inline_highlight.png: Added.
        * blog-files/inspector/inorder.png: Added.
        * blog-files/inspector/inspect_inspector.png: Added.
        * blog-files/inspector/inspect_inspector_small.png: Added.
        * blog-files/inspector/load_lines.png: Added.
        * blog-files/inspector/nodelist.png: Added.
        * blog-files/inspector/scope_bar.png: Added.
        * blog-files/inspector/watched_expression.png: Added.

2009-10-26  Dan Bernstein  <mitz@apple.com>

        Reviewed by Adele Peterson.

        Updated BSD License

        * coding/bsd-license.html: Updated to the latest version.

2009-10-22  Mark Rowe  <mrowe@apple.com>

        Update to WordPress 2.8.5.

        * blog:

2009-10-19  Andrew Scherkus  <scherkus@chromium.org>

        Reviewed by Eric Seidel.

        Replace boolean operator indentation example with an if statement.

        https://bugs.webkit.org/show_bug.cgi?id=30538

        * coding/coding-style.html: Replace boolean indenting example to use "if"

2009-10-16  Darin Adler  <darin@apple.com>

        * coding/RefPtr.html: Minor revision, updating a link and tweaking
        wording a bit in few places.

2009-10-14  Evan Martin  <evan@chromium.org>

        Reviewed by Darin Adler.

        Document what state the build tree is expected to be in after a patch.

        * coding/contributing.html:

2009-10-11  Cameron McCormack  <cam@mcc.id.au>

        Reviewed by Eric Seidel.

        Change <a name> to id="" to fix styling problems
        https://bugs.webkit.org/show_bug.cgi?id=30283

        This prevents the headings from being styled like links.

        * coding/contributing.html:

2009-10-08  Alex Milowski  <alex@milowski.com>

        Reviewed by Darin Adler.

        Added a basic description of the layout and rendering project and added links to the blog entries on rendering.

        * projects/layout/index.html:

2009-10-07  Sam Weinig  <sam@webkit.org>

        Reviewed by Dan Bernstein.

        Fix for https://bugs.webkit.org/show_bug.cgi?id=30196
        Change style guidelines for indentation in header files

        * coding/coding-style.html: Don't indent in a namespace in a header file.

2009-10-07  Steve Falkenburg  <sfalken@apple.com>

        Reviewed by Mark Rowe.

        Add new Windows build prerequisite: Visual Studio 2005 Service Pack 1 ATL Security Update

        * building/tools.html:

2009-10-06  Jeremy Orlow  <jorlow@chromium.org>

        Reviewed by Adam Barth.

        Diagram needs to be linked from the home page
        https://bugs.webkit.org/show_bug.cgi?id=30142

        http://webkit.org/coding/major-objects.html was never linked from the home
        page.

        * nav.inc:

2009-09-28  Alex Milowski  <alex@milowski.com>

        <http://webkit.org/b/29098> Update to MathML project webpage

        Reviewed by David Kilzer.

        Updated MathML project page and added link to Wiki page.

        * projects/mathml/index.html:

2009-09-21  Brady Eidson  <beidson@apple.com>

        Reviewed by Darin Adler.

        Add coding style guidelines for 'using namespace.'
        https://bugs.webkit.org/show_bug.cgi?id=29499

        * coding/coding-style.html:

2009-09-21  Brady Eidson  <beidson@apple.com>

        Rubberstamped by Sam Weinig.

        Add some example files for an upcoming blog post.

        * blog-files/load-unload-example.html: Added.
        * blog-files/pageshow-pagehide-example.html: Added.

2009-09-17  Eric Seidel  <eric@webkit.org>

        Reviewed by Darin Adler.

        Update contributing.html to mention recently added tools.
        https://bugs.webkit.org/show_bug.cgi?id=29318

        Update our contributing instructions to mention
        the new tools (check-webkit-style and commit-queue)
        recently added to make contributions easier.

        * coding/contributing.html:
         - Mention check-webkit-style as an optional helper tool.
         - Mention checking the 'patch' checkbox.
         - Mention the commit-queue as an optional helper tool.
         - Remove "or in email" since patch reviews are all done via bugzilla.
         - Encourage contributers to be responsible for getting their patch landed.  Provide a list of committers.
         - Mention commit-queue as an optional help in getting your patch landed.
         - Give an overview of the commit-queue process and link to the Commit Queue docs.

2009-09-09  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        Reviewed by Mark Rowe.

        Add instructions to bug reporting guidlines on how and when
        to apply port-specific keywords.

        * quality/bugwriting.html:

2009-09-08  Sam Weinig  <sam@webkit.org>

        Reviewed by Adele Peterson.

        Update Security Group Members list.

        * security/security-group-members.html:

2009-09-06  Cameron McCormack  <cam@mcc.id.au>

        Reviewed by Eric Seidel.

        Drop <definition-src> support
        https://bugs.webkit.org/show_bug.cgi?id=28991

        When SVG 1.1 Second Edition is a Recommendation we can remove the
        entry altogether.

        * projects/svg/status.xml: Update page to state that <definition-src>
        is not supported.

2009-08-26  Mark Rowe  <mrowe@apple.com>

        Upgrade WordPress to the latest version.

        * blog/wp-includes/version.php:
        * blog/wp-login.php:

2009-08-20  Adam Barth  <abarth@webkit.org>

        Reviewed by Eric Seidel.

        major-objects.html should show direct Frame <-> Document pointers
        https://bugs.webkit.org/show_bug.cgi?id=28479

        * coding/major-objects.html: Added pointers to diagram.

2009-08-18  Anton Muhin  <antonm@chromium.org>

        Reviewed by Adam Barth.

        Mention handy --bug flag of prepare-ChangeLog script.
        https://bugs.webkit.org/show_bug.cgi?id=28425

        * coding/contributing.html: Add a reference for --bug flag

2009-08-12  Joe Mason  <joe.mason@torchmobile.com>

        Reviewed by Adam Barth.

        Better explanation of "Null after navigation" in object diagram
        https://bugs.webkit.org/show_bug.cgi?id=28232

        * coding/major-objects.html:

2009-08-11  Adam Barth  <abarth@webkit.org>

        Unreviewed.

        Remove a few characters from the ASCII art to make it fit better in the
        template.

        * coding/major-objects.html:

2009-08-11  Adam Barth  <abarth@webkit.org>

        Reviewed by Oliver Hunt.

        Document relation between major objects in WebCore
        https://bugs.webkit.org/show_bug.cgi?id=28210

        Added a diagram showing the relation between major objects.

        * coding/major-objects.html: Added.

2009-08-07  Joseph Pecoraro  <joepeck02@gmail.com>

        Reviewed by Oliver Hunt.

        Fix webkit-jobs link

        * contact.html:

2009-08-03  Mark Rowe  <mrowe@apple.com>

        Update two WordPress plug-ins that we use.

        * blog/wp-content/plugins/akismet/akismet.php:
        * blog/wp-content/plugins/akismet/readme.txt:
        * blog/wp-content/plugins/commentcontrol.php:

2009-08-03  Mark Rowe  <mrowe@apple.com>

        Add some missing files and delete some obsolete files.

        * blog:

2009-08-03  Mark Rowe  <mrowe@apple.com>

        Update WordPress to the latest version.

        * blog:

2009-07-22  Holger Hans Peter Freyther  <zecke@selfish.org>

        Reviewed by Adam Treat.

        Mention the new webkit-help and webkit-jobs mailinglist. Change
        the description of webkit-dev to be more strict.

        * contact.html:

2009-07-22  Kenneth Rohde Christiansen  <kenneth@webkit.org>

        Reviewed by Adam Treat.

        Coding style - Clarify some cases with spacing
        https://bugs.webkit.org/show_bug.cgi?id=27499

        Add explicit rule about no space before comma or semicolon.

        * coding/coding-style.html:

2009-07-17  Simon Fraser  <simon.fraser@apple.com>

        Fix the font to match the rest of the blog site.

        * blog-files/3d-transforms/image-flip.html:

2009-07-17  Simon Fraser  <simon.fraser@apple.com>

        Move the image flip effect into an iframe to avoid the long
        blog page tripping a bug on Leopard.

        * blog-files/3d-transforms/image-flip.html: Added.

2009-07-16  Simon Fraser  <simon.fraser@apple.com>

        New demo files for an up-coming blog post.

        * blog-files/3d-transforms/mighty-cubes.png: Added.
        * blog-files/3d-transforms/morphing-cubes.html: Added.
        * blog-files/3d-transforms/perspective-by-example.html: Added.
        * blog-files/3d-transforms/poster-circle.html: Added.
        * blog-files/3d-transforms/poster-circle.png: Added.
        * blog-files/3d-transforms/transform-style.html: Added.

2009-07-15  Joseph Pecoraro  <joepeck02@gmail.com>

        Reviewed by Sam Weinig.

        Side bar linking to "DOM Interfaces" returns 404
        https://bugs.webkit.org/show_bug.cgi?id=24000

        * nav.inc:

2009-07-09  Oliver Hunt  <oliver@apple.com>

        Reviewed by Geoff Garen.

        JavaScript section of http://webkit.org is excessively out of date.

        This removes old todo entries (like adding an API, which we've had since Leopard),
        and adds an additional todo for a webkit-less Objective-C API.

        * projects/javascript/index.html:

2009-07-03  Adam Barth  <abarth@webkit.org>

        Reviewed by Sam Weinig.

        Adam and Collin's affiliation is incorrect
        https://bugs.webkit.org/show_bug.cgi?id=26954

        This change corrects their affiliation.

        * security/security-group-members.html:

2009-06-24  Brady Eidson  <beidson@apple.com>

        Reviewed by Mark Rowe

        * demos/index.html: Fix more typos etc.

2009-06-17  Sam Weinig  <sam@webkit.org>

        Reviewed by Mark Rowe.

        * security/index.html: Fix some typos.

2009-06-17  Sam Weinig  <sam@webkit.org>

        Reviewed by Mark Rowe.

        Move security policy to security/index.html so that
        webkit.org/security/ works.

        * nav.inc:
        * security/index.html: Copied from security/security-policy.html.
        * security/security-policy.html: Removed.

2009-06-13  Sam Weinig  <sam@webkit.org>

        Reviewed by Timothy Hatcher.

        Add WebKit Security Policy and member list of the WebKit Security Group.

        * nav.inc:
        * security: Added.
        * security/security-group-members.html: Added.
        * security/security-policy.html: Added.

2009-06-12  Brady Eidson  <beidson@apple.com>

        Reviewed by Oliver Hunt

        Add a page indexing the various demo applications we have posted.

        * demos/index.html: Added.
        * nav.inc: Add a link to the demos page on the side bar
        * css/main.css:  Add a style for date stamps based on the blog.

        * demos/calendar/index.html: Added to redirect to Calendar.html.  I'm not moving Calendar.html to
          index.html as the Calendar.html url has already been published and we should keep it working.

        Move the drosera test code to /misc, as it is no longer a meaningful demo:
        * demos/drosera: Removed.
        * demos/drosera/demo.js: Removed.
        * demos/drosera/drosera.png: Removed.
        * demos/drosera/index.html: Removed.
        * misc/drosera: Copied from demos/drosera.

        Move the sticky notes example into /demos:
        * demos/sticky-notes: Added.
        * demos/sticky-notes/StickyNotes.manifest: Copied from misc/DatabaseExample.manifest.
        * demos/sticky-notes/deleteButton.png: Copied from misc/deleteButton.png.
        * demos/sticky-notes/deleteButtonPressed.png: Copied from misc/deleteButtonPressed.png.
        * demos/sticky-notes/index.html: Copied from misc/DatabaseExample.html.
        * misc/DatabaseExample.html: Changed to redirect to demos/sticky-notes/index.html.  I'm not removing
          it altogether as the misc/DatabaseExample.html url has already been published and we should keep it working.
        * misc/DatabaseExample.manifest: Removed.
        * misc/deleteButton.png: Removed.
        * misc/deleteButtonPressed.png: Removed.

2009-06-10  Brent Fulgham  <bfulgham@webkit.org>

        Reviewed by Eric Seidel.

        Fixes https://bugs.webkit.org/show_bug.cgi?id=26309.
        Update a few items in the testing language to:
        (1) Reflect results are now generated with Leopard (not Tiger)
        (2) Explain how to generate pixel-level layout tests.

        * quality/testing.html:
        * quality/testwriting.html:

2009-06-05  Kenneth Rohde Christiansen  <kenneth.christiansen@openbossa.com>

        Bug 26188: Clarify some of the cases in the coding style guide

        <https://bugs.webkit.org/show_bug.cgi?id=26188>

        Reviewed and tweaked by David Kilzer.

        Changed the coding style document to clarify some cases of ambiguity.

        * coding/coding-style.html:

2009-05-27  Maciej Stachowiak  <mjs@apple.com>

        Not reviewed, demo content.

        - Add doctype to Calendar demo.

        * demos/calendar/Calendar.html:

2009-05-27  Maciej Stachowiak  <mjs@apple.com>

        Not reviewed, demo content.

        - add Calendar demo.

        * demos/calendar: Added.
        * demos/calendar/Boom.aiff: Added.
        * demos/calendar/Calendar.css: Added.
        * demos/calendar/Calendar.html: Added.
        * demos/calendar/Calendar.js: Added.
        * demos/calendar/Calendar.manifest: Added.
        * demos/calendar/CalendarApp.icns: Added.
        * demos/calendar/Images: Added.
        * demos/calendar/Images/AirPort4.png: Added.
        * demos/calendar/Images/AirPortError.png: Added.
        * demos/calendar/Images/disclosureTriangleSmallDown.png: Added.
        * demos/calendar/Images/disclosureTriangleSmallRight.png: Added.
        * demos/calendar/Images/statusbarBackground.png: Added.
        * demos/calendar/Images/statusbarResizerVertical.png: Added.
        * demos/calendar/LocationImage.js: Added.
        * demos/calendar/Utilities.js: Added.
        * demos/calendar/favicon.ico: Added.
        * demos/calendar/mime.types: Added.

2009-05-20  Mark Rowe  <mrowe@apple.com>

        Rubber-stamped by Eric Seidel.

        Prevent search engines from getting creative in their descriptions of webkit.org content.

        * blog/wp-content/themes/webkit/header.php:
        * header.inc:

2009-05-06  Eric Seidel  <eric@webkit.org>

        Reviewed by Maciej Stachowiak.

        Update Contributing instructions after feedback from Julie Parent.
        https://bugs.webkit.org/show_bug.cgi?id=25611

        * coding/contributing.html: Add a few more comments on ChangeLogs

2009-04-17  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Steve Falkenburg

        Fix the link for setting the Platform SDK paths in the Windows instructions.

        * building/build.html:

2009-04-15  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=25186
        There is no XSLT component in bugzilla

        * projects/xslt/index.html: Changed to search by bug title.

2009-02-20  David Kilzer  <ddkilzer@apple.com>

        Bug 23983: Remove illegal HTML tags from Sunspider web pages

        <https://bugs.webkit.org/show_bug.cgi?id=23983>

        Reviewed by Alexey Proskuryakov.

        * perf/sunspider-0.9/3d-cube.html: Removed </link> tag.
        * perf/sunspider-0.9/3d-morph.html: Ditto.
        * perf/sunspider-0.9/3d-raytrace.html: Ditto.
        * perf/sunspider-0.9/access-binary-trees.html: Ditto.
        * perf/sunspider-0.9/access-fannkuch.html: Ditto.
        * perf/sunspider-0.9/access-nbody.html: Ditto.
        * perf/sunspider-0.9/access-nsieve.html: Ditto.
        * perf/sunspider-0.9/bitops-3bit-bits-in-byte.html: Ditto.
        * perf/sunspider-0.9/bitops-bits-in-byte.html: Ditto.
        * perf/sunspider-0.9/bitops-bitwise-and.html: Ditto.
        * perf/sunspider-0.9/bitops-nsieve-bits.html: Ditto.
        * perf/sunspider-0.9/controlflow-recursive.html: Ditto.
        * perf/sunspider-0.9/crypto-aes.html: Ditto.
        * perf/sunspider-0.9/crypto-md5.html: Ditto.
        * perf/sunspider-0.9/crypto-sha1.html: Ditto.
        * perf/sunspider-0.9/date-format-tofte.html: Ditto.
        * perf/sunspider-0.9/date-format-xparb.html: Ditto.
        * perf/sunspider-0.9/math-cordic.html: Ditto.
        * perf/sunspider-0.9/math-partial-sums.html: Ditto.
        * perf/sunspider-0.9/math-spectral-norm.html: Ditto.
        * perf/sunspider-0.9/regexp-dna.html: Ditto.
        * perf/sunspider-0.9/string-base64.html: Ditto.
        * perf/sunspider-0.9/string-fasta.html: Ditto.
        * perf/sunspider-0.9/string-tagcloud.html: Ditto.
        * perf/sunspider-0.9/string-unpack-code.html: Ditto.
        * perf/sunspider-0.9/string-validate-input.html: Ditto.
        * perf/sunspider-0.9/sunspider-driver.html: Ditto.
        * perf/sunspider-0.9/sunspider-results.html: Removed </link> and </input> tags.
        * perf/sunspider-0.9/sunspider.html: Removed </link> tag.

2009-01-19  Adam Roben  <aroben@apple.com>

        Add links to some recommended Visual Studio hotfixes

        Reviewed by Dave Hyatt.

        * building/tools.html:

2009-01-08  Brent Fulgham  <bfulgham@gmail.com>

        Reviewed by Adele Petersen.
        Landed by Pamela Greene.

        Fixes: http://bugs.webkit.org/show_bug.cgi?id=23139
        Remove links to no-longer-existing Drosera project.
        Also, clean up references to wiki in the nav.inc file.

        * nav.inc: Correct paths to wiki, swap Drosera for Web Inspector.

2008-12-30  Brent Fulgham  <bfulgham@gmail.com>

        Reviewed by Darin Adler.
        Landed by Pamela Greene.

        Fixes: https://bugs.webkit.org/show_bug.cgi?id=22908.
        Update website so that newbies are told they must set the
        WebKitOutputDir to get a valid build.

        * building/build.html: Add language (and link) indicating the
        importance of setting the WebKitOutputDir variable, as well
        as a link to instructions on how to do so.

2008-12-19  Dean Jackson  <dino@apple.com>

        Media queries that return <integer> but are really boolean
        are restricted to 0 and 1. This is in line with other
        media features.

        * specs/MediaQueriesExtensions.html:

2008-12-03  Dean Jackson  <dino@apple.com>

        Added links to the WebKit and Mozilla bugs for pointer-events.

        * specs/PointerEventsProperty.html:

2008-11-27  Julien Chaffraix  <jchaffraix@webkit.org>

        Reviewed by Eric Seidel.

        Bug 22468: Coding style: config.h should only be included in implementation files, not in header
        https://bugs.webkit.org/show_bug.cgi?id=22468

        Clarified the rules about config.h inclusion and added 2 new examples to illustrate it. Also
        added an explanation about the implementation files.

        * coding/coding-style.html:

2008-11-25  Dean Jackson  <dino@apple.com>

        Add a new work-in-progress proposal for pointer-events in
        HTML content. Also note that the Media Queries extensions
        are not at all official.

        * specs/MediaQueriesExtensions.html:
        * specs/PointerEventsProperty.html: Added.
        * specs/index.html:

2008-11-25  Jack Wootten  <jackwootton@gmail.com>

        Bug 20125: http://webkit.org/ missing link to key documentation for new developers.

        <https://bugs.webkit.org/show_bug.cgi?id=20125>

        Reviewed by David Kilzer.

        * projects/documentation/index.html: Added link to "Introduction to
        WebKit Objective-C Programming Guide".

2008-11-24  Dean Jackson  <dino@apple.com>

        Document the work-in-progress proposed extensions to
        CSS 3 Media Queries.

        * specs/MediaQueriesExtensions.html: Added.
        * specs/index.html:

2008-11-17  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Sam Weinig and Antti Koivisto.

        Clarified the last coding style rule, which was a baffling in its
        initial form.

        (Now let's see if our code ever starts following this rule!)

        * coding/coding-style.html:

2008-11-17  Brady Eidson  <beidson@apple.com>

        Reviewed by Mark Rowe

        Clarify an edge case for acronym capitalization.

        * coding/coding-style.html:

2008-11-11  Simon Fraser  <simon.fraser@apple.com>

        Update leaves animation sample.

        * blog-files/leaves/index.html:
        * blog-files/leaves/leaves.css:

2008-11-11  Dean Jackson  <dino@apple.com>

        Removed quotes in animation name value.

        * blog-files/pulse.html:

2008-11-11  Dean Jackson  <dino@apple.com>

        Added a smaller version of a screenshot.

        * blog-files/leaves-screenshot-small.jpg: Added.

2008-11-11  Dean Jackson  <dino@apple.com>

        Add a bunch of examples for CSS Animation blog draft.

        * blog-files/bounce.html: Added.
        * blog-files/bounce.png: Added.
        * blog-files/leaves-screenshot.jpg: Added.
        * blog-files/leaves/images/apple-touch-icon.png: Added.
        * blog-files/leaves/images/backgroundLeaves.jpg: Added.
        * blog-files/leaves/images/realLeaf1.png: Added.
        * blog-files/leaves/images/realLeaf2.png: Added.
        * blog-files/leaves/images/realLeaf3.png: Added.
        * blog-files/leaves/images/realLeaf4.png: Added.
        * blog-files/leaves/images/textBackground.png: Added.
        * blog-files/leaves/index.html: Added.
        * blog-files/leaves/leaves.css: Added.
        * blog-files/leaves/leaves.js: Added.
        * blog-files/pulse.html: Added.
        * blog-files/pulse.png: Added.

2008-10-30  Cameron Zwarich  <zwarich@apple.com>

        Rubber-stamped by Mark Rowe.

        Update the link to Mac Subversion binaries.

        * building/tools.html:

2008-10-27  Antti Koivisto  <antti@apple.com>

        Add a file.

        * blog-files/squirrelfish-link-animated.svg: Added.

2008-10-27  Antti Koivisto  <antti@apple.com>

        Add some svg files.

        * blog-files/cubes-7.svg: Added.
        * blog-files/number-morph.svg: Added.

2008-10-07  Darin Adler  <darin@apple.com>

        * coding/RefPtr.html: Second draft.

2008-10-04  Mark Rowe  <mrowe@apple.com>

        Upgrade to WordPress 2.6.2.

        * blog:

2008-09-26  Timothy Hatcher  <timothy@apple.com>

        Add screenshots of searching in the Web Inspector.

        Not reviewed.

        * blog-files/inspector-searching-elements.png: Added.
        * blog-files/inspector-searching-profiles.png: Added.

2008-09-25  Maciej Stachowiak  <mjs@apple.com>

        Not reviewed.

        - add some screenshots.

        * blog-files/acid3-screenshot.png: Added.
        * blog-files/acid3-timing-screenshot.png: Added.

2008-09-25  Darin Adler  <darin@apple.com>

        * contact.html: Take a cut at making the role of webkitsdk-dev
        clearer, specifying that it's Mac OS X specific and hosted at
        Apple, not WebKit.

2008-09-24  Timothy Hatcher  <timothy@apple.com>

        Add new screenshots of the Web Inspector's Scope Variables pane.

        Not reviewed.

        * blog-files/inspector-closure-scope.png: Added.
        * blog-files/inspector-event-scope.png: Added.
        * blog-files/inspector-with-scope.png: Added.

2008-09-24  Timothy Hatcher  <timothy@apple.com>

        Add another screenshot of the Web Inspector.

        Not reviewed.

        * blog-files/inspector-disabling-properties.png: Added.

2008-09-24  Timothy Hatcher  <timothy@apple.com>

        Add new screenshots of the Web Inspector.

        Not reviewed.

        * blog-files/inspector-console-autocomplete.png: Added.
        * blog-files/inspector-databases-panel-query-view.png: Added.
        * blog-files/inspector-databases-panel.png: Added.
        * blog-files/inspector-elements-panel.png: Added.
        * blog-files/inspector-numeric-style-stepping.gif: Added.
        * blog-files/inspector-profiles-panel.png: Added.
        * blog-files/inspector-resources-panel.png: Added.
        * blog-files/inspector-scripts-panel.png: Added.
        * blog-files/inspector-status-bar-with-errors.png: Added.
        * blog-files/inspector-toolbar.png: Added.

2008-09-24  Timothy Hatcher  <timothy@apple.com>

        Not reviewed.

        * demos/drosera/demo.js: Add some console.profile() calls.

2008-09-22  Alexander Orlov  <alexander.orlov@loxal.net>

        Reviewed by Darin Adler.

        * projects/performance/index.html: Remove dead link to the 24fun test.

2008-09-18  Maciej Stachowiak  <mjs@apple.com>

        Not reviewed.

        * blog-files/animation-demo.svg: Added.

2008-09-18  Maciej Stachowiak  <mjs@apple.com>

        Not reviewed.

        * blog-files/sfx-perf.png: Added.

2008-08-25  Mark Rowe  <mrowe@apple.com>

        Reviewed by Dan Bernstein.

        Modernize the bug reporting guidelines and make them a little less Mac-specific.

        * quality/bugwriting.html:

2008-08-18  Mark Rowe  <mrowe@apple.com>

        Upgrade to WordPress 2.6.1.

        * blog:

2008-08-01  Adam Roben  <aroben@apple.com>

        Add a link to the instructions to use Apple's Safari for Windows
        symbol server

        Reviewed by Eric Seidel.

        * building/debug.html:

2008-07-28  Robert Blaut  <webkit@blaut.biz>

        Reviewed by Mark Rowe.

        Fix for bug: Website provides no guidance on debugging
        <https://bugs.webkit.org/show_bug.cgi?id=3643>

        * building/debug.html: added info about Xcode Debugging Guide.

2008-07-26  Mark Rowe  <mrowe@apple.com>

        Rubber-stamped by Oliver Hunt.

        Update the Squirrelfish bytecode documentation.

        * specs/squirrelfish-bytecode.html:

2008-07-26  Robert Blaut  <webkit@blaut.biz>

        Reviewed by Eric Seidel.

        Fix for <https://bugs.webkit.org/show_bug.cgi?id=19712>
        Corrected validation errors in main.css file.

        * css/main.css:

2008-07-26  Robert Blaut  <webkit@blaut.biz>

        Reviewed by Alexey Proskuryakov.

        Fix for bug: <https://bugs.webkit.org/show_bug.cgi?id=18186>
        Added notes about unsupported Visual Studio versions.

        * building/tools.html:

2008-07-26  Robert Blaut  <webkit@blaut.biz>

        Reviewed by Eric Seidel.

        Fix for <https://bugs.webkit.org/show_bug.cgi?id=16719>
        Removed basic requirements for undetected version of WebKit.

        * quality/reporting.html:

2008-07-26  Robert Blaut  <webkit@blaut.biz>

        Reviewed by Adele Petersen.

        Fix for bug 7436: Truncated title on webkit DOM page.
        <https://bugs.webkit.org/show_bug.cgi?id=7436>

        * projects/dom/index.html: Added basic project informations.

2008-07-24  Adam Roben  <aroben@apple.com>

        Remove some redundant text accidentally checked in

        * building/tools.html:

2008-07-24  Adam Roben  <aroben@apple.com>

        Fix a dead link to the Windows Platform SDK and related instructions

        Rubberstamped by Alexey Proskuryakov.

        * building/tools.html: Fixed a dead link.

2008-07-21  Mark Rowe  <mrowe@apple.com>

        Update Akismet plugin to 2.1.6.

        * blog/wp-content/plugins/akismet/akismet.php:

2008-07-21  Mark Rowe  <mrowe@apple.com>

        Update to WordPress 2.6.

        * blog:

2008-07-18  David D. Kilzer  <ddkilzer@webkit.org>

        Fixed indentation of example code for C++ pointers/references!

        * coding/coding-style.html:

2008-07-18  Robert Blaut  <webkit@blaut.biz>

        Reviewed by David Kilzer.

        Fix for <https://bugs.webkit.org/show_bug.cgi?id=12313>
        Added code style guidelines for multi-line boolean expressions

        * coding/coding-style.html:

2008-07-02  Mark Rowe  <mrowe@apple.com>

        Update a URL that was out of date.

        * building/checkout.html:

2008-07-01  Mark Rowe  <mrowe@apple.com>

        Update the path to the configuration file.

        * blog/wp-config.php:

2008-06-27  Dan Bernstein  <mitz@apple.com>

        Reviewed by Timothy Hatcher.

        * css/main.css: Reduced text shadow offsets.

2008-06-25  Maciej Stachowiak  <mjs@apple.com>

        Not reviewed, web site fix.

        Remove blank lines in an attempt to fix feeds.

        * blog/wp-content/themes/webkit/index.php:
        * blog/wp-content/themes/webkit/links.php:

2008-06-22  Aaron Digulla  <digulla@hepe.com>

        Reviewed by Darin Adler.

        Fix https://bugs.webkit.org/show_bug.cgi?id=18993
        Bug 18993: Update of buttons in editing toolbar demo lags behind

        * demos/editingToolbar/FancyToolbar.js:
        * demos/editingToolbar/index.html:

2008-06-16  Maciej Stachowiak  <mjs@apple.com>

        A handy reference image.

        * blog-files/acid3-timing.png: Added.

2008-06-10  Maciej Stachowiak  <mjs@apple.com>

        Not reviewed.

        - tweak newly added markup.

        * blog/wp-content/themes/webkit/header.php:

2008-06-10  Maciej Stachowiak  <mjs@apple.com>

        Rubber stamped by Adele.

        - add short title and multisize icon

        * blog/wp-content/themes/webkit/header.php:
        * images/surfin-safari.icns: Added.

2008-06-04  Dean Jackson   <dino@apple.com>

        Put index pages into specs dirs to make it easier to
        find the documents.

        * specs/index.html: Added.
        * specs/CSSVisualEffects/index.html: Added.

2008-06-03  Maciej Stachowiak  <mjs@apple.com>

        Add a snapshot of the squirrelfish bytecode docs.

        * specs/squirrelfish-bytecode.html: Added.

2008-06-02  Geoffrey Garen  <ggaren@apple.com>

        Transparent background!

        * blog-files/squirrelfish.png:

2008-06-02  Geoffrey Garen  <ggaren@apple.com>

        Crop!

        * blog-files/squirrelfish-webkit-graph.png:

2008-06-02  Geoffrey Garen  <ggaren@apple.com>

        Renamed this file quiet down the peanut gallery.

        * blog-files/squirrelfish-webkit-graph.png: Copied from blog-files/webkit-graph.png.
        * blog-files/webkit-graph.png: Removed.

2008-06-02  Geoffrey Garen  <ggaren@apple.com>

        Added a graph.

        * blog-files/webkit-graph.png: Added.

2008-06-02  Geoffrey Garen  <ggaren@apple.com>

        Moved the squirrelfish mascot to the right place.

        * blog-files/squirrelfish.png: Copied from images/squirrelfish.png.
        * images/squirrelfish.png: Removed.

2008-06-02  Geoffrey Garen  <ggaren@apple.com>

        Uploaded the squirrelfish mascot.

        * images/squirrelfish.png: Added.

2008-05-23  William Siegrist  <wsiegrist@apple.com>

        Reviewed by Mark Rowe

        Rename duplicated "notice" id to "terms".

        * css/main.css:
        * nav.inc:

2008-05-16  Anders Carlsson  <andersca@apple.com>

        Reviewed by Jess.

        Add manifest MIME type.

        * .htaccess:

2008-05-14  Anders Carlsson  <andersca@apple.com>

        Reviewed by Mitz.

        Make our Sticky notes example an offline web app.

        * misc/DatabaseExample.html:
        * misc/DatabaseExample.manifest: Added.

2008-05-12  Maciej Stachowiak  <mjs@apple.com>

        Ooops, I made some mistakes trying to fix the validation errors. This time for sure.

        * demos/transitions-and-transforms/index.html:

2008-05-12  Maciej Stachowiak  <mjs@apple.com>

        Make the demo valid HTML5 (according to validator.nu) and add alt text to the images.

        * demos/transitions-and-transforms/index.html:

2008-05-12  Maciej Stachowiak  <mjs@apple.com>

        Tweaked demo visuals slightly.

        * demos/transitions-and-transforms/leopard.css:

2008-05-12  Maciej Stachowiak  <mjs@apple.com>

        Tweak CSS to look a little better while loading.

        * demos/transitions-and-transforms/leopard.css:

2008-05-12  Maciej Stachowiak  <mjs@apple.com>

        Not reviewed - new demo.

        Added a demo of CSS Transforms and Transitions.

        * demos/transitions-and-transforms: Added.
        * demos/transitions-and-transforms/Finder Coverflow.png: Added.
        * demos/transitions-and-transforms/Horsehead.png: Added.
        * demos/transitions-and-transforms/Mail Stationery.png: Added.
        * demos/transitions-and-transforms/Quick Look.png: Added.
        * demos/transitions-and-transforms/Spaces.png: Added.
        * demos/transitions-and-transforms/Stacks.png: Added.
        * demos/transitions-and-transforms/Time Machine.png: Added.
        * demos/transitions-and-transforms/index.html: Added.
        * demos/transitions-and-transforms/leopard.css: Added.
        * demos/transitions-and-transforms/no-style.html: Added.

2008-05-08  Mark Rowe  <mrowe@apple.com>

        Reviewed by Sam Weinig.

        Add a link to the Mac OS Forge terms of use.

        * nav.inc:

2008-04-25  Mark Rowe  <mrowe@apple.com>

        Upgrade to WordPress 2.5.1.  Another day, another security vulnerability in WordPress.

        * blog:

2008-04-21  Dean Jackson  <dino@apple.com>

        Updated CSS Visual Effects proposals.

        CSS Animations

        * described simplified sandwich model (that animations have no effect
          outside their duration and last specified animation wins)
        * diagram showing the above
        * specified animations to start at style resolution or document load,
          whichever is later.
        * animation start events always have elapsedTime == 0

        CSS Transforms

        * removed text saying that elements cannot be drawn as intersecting.
        * described that preserve-3d trees often need a flattening parent, otherwise
          elements can be hidden behind their ancestor's background.
        * describe that preserve-3d is not always possible, such as when
          overflow is 'hidden'.

        CSS Transitions

        * no change

        * specs/CSSVisualEffects/CSSAnimation.html:
        * specs/CSSVisualEffects/CSSTransforms.html:
        * specs/CSSVisualEffects/CSSTransitions.html:
        * specs/CSSVisualEffects/sandwich.png: Added.

2008-04-08  Dean Jackson  <dino@apple.com>

        Add some updated proposals for CSS specifications, such as
        Transforms and Transitions which are already implemented in TOT.

        * specs/CSSVisualEffects: Added.
        * specs/CSSVisualEffects/CSSAnimation.html: Added.
        * specs/CSSVisualEffects/CSSTransforms.html: Added.
        * specs/CSSVisualEffects/CSSTransitions.html: Added.

2008-03-31  Mark Rowe  <mrowe@apple.com>

        Add some images that were missed in the WordPress 2.5 upgrade.

        * blog/:

2008-03-31  Mark Rowe  <mrowe@apple.com>

        Upgrade to WordPress 2.5

        * blog/:

2008-03-28  Darin Adler  <darin@apple.com>

        * building/build.html: Add another mention of using the Cygwin shell.
        * building/tools.html: Fix a typo on the name Cygwin.

2008-03-26  Maciej Stachowiak  <mjs@apple.com>

        More screenshots for the blog.

        * blog-files/acid3-full-rendering-pass.png: Added.
        * blog-files/acid3-rendering-reference.png: Added.

2008-03-26  Maciej Stachowiak  <mjs@apple.com>

        Screenshot for blog post.

        * blog-files/acid3-100.png: Added.

2008-03-23  Antti Koivisto  <antti@apple.com>

        * blog-files/wsj-vs.png: Added.

2008-03-23  Eric Seidel  <eric@webkit.org>

        Reviewed by Sam.

        Make our SVG status document slightly less inaccurate.

        * projects/svg/status.xml:

2008-03-21  Antti Koivisto  <antti@apple.com>

        Add some images for a blog post.

        * blog-files/wsj-nopreload.png: Added.
        * blog-files/wsj-preload.png: Added.

2008-03-17  Dan Bernstein  <mitz@apple.com>

        Reviewed by Sam Weinig.

        - link "backtrace" to the page that explains how to get one

        * quality/bugwriting.html:

2008-03-15  Matt Lilek  <webkit@mattlilek.com>

        Rubber-stamped by Mitz.

        Update crash log page with instructions for Leopard.

        * quality/crashlogs.html:

2008-03-11  Robert Blaut  <webkit@blaut.biz>

        Reviewed by Darin Adler.

        Fix bug http://bugs.webkit.org/show_bug.cgi?id=17280
        Patch deletes an obsolete hitlist.html page and other references to it

        * nav.inc: removed menu link to hitlist.html
        * projects/compat/hitlist.html: Removed.
        * projects/compat/index.html: removed reference to hitlist.html

2008-03-06  Timothy Hatcher  <timothy@apple.com>

        Rubber-stamped by Adam Roben.

        Add a simple page that has various demo functions for Drosera.

        * demos/drosera: Added.
        * demos/drosera/demo.js: Added.
        * demos/drosera/drosera.png: Added.
        * demos/drosera/index.html: Added.

2008-03-04  Mark Rowe  <mrowe@apple.com>

        Rubber-stamped by Brady Eidson.

        * building/tools.html:  Update link to Windows Platform SDK to its new location.

2008-03-04  Mark Rowe  <mrowe@apple.com>

        Reviewed by Sam Weinig.

        Add a note about preferring if over else if when the previous if is terminated by a return statement.

        * coding/coding-style.html:

2008-02-08  Adam Roben  <aroben@apple.com>

        * perf/slickspeed/config.ini: Fixed version number.

2008-02-08  Adam Roben  <aroben@apple.com>

        Update jQuery to v1.2.3

        Rubberstamped by Mitz.

        * perf/slickspeed/config.ini:
        * perf/slickspeed/frameworks/jquery-1.2.3.js: Renamed from WebKitSite/perf/slickspeed/frameworks/jquery-1.2.1.js.

2008-02-07  David Smith  <catfish.man@gmail.com>

        Rubber stamped by weinig and bdash.
        Update prototype.js to 1.6.0.2 to be a bit less unfair in comparative benchmarking.

        * perf/slickspeed/frameworks/prototype.js:

2008-02-07  David Smith  <catfish.man@gmail.com>

        Rubber stamped by Mark Rowe
        Fix a duplicate selector in the test.

        * perf/slickspeed/selectors.list:

2008-02-07  David Smith  <catfish.man@gmail.com>

        Reviewed by Adam Roben.
        Added :nth-child and :last-child to the list of selectors to test.

        * perf/slickspeed/selectors.list:

2008-02-05  Mark Rowe  <mrowe@apple.com>

        Update WordPress to 2.3.3 which includes security fixes.

        * blog/wp-admin/install-helper.php:
        * blog/wp-includes/gettext.php:
        * blog/wp-includes/pluggable.php:
        * blog/wp-includes/version.php:
        * blog/xmlrpc.php:

2008-02-02  David Smith  <catfish.man@gmail.com>

        Reviewed by Oliver.

        Update the selector benchmark/test now that WebKit supports :only-child and :last-child;
        Unfortunately, the javascript libraries don't appear to implement :*-of-type correctly, so that one remains disabled for now.

        * perf/slickspeed/header.html: Typo fix, and updated the note to clarify that WebKit is no longer the only implementation causing us to leave some selectors disabled.
        * perf/slickspeed/selectors.list: Added the new selectors

2008-02-02  Mark Rowe  <mrowe@apple.com>

        Add WordPress plugin to give more control over blog comment settings.

        * blog/wp-content/plugins/commentcontrol.php: Added.

2008-01-30  Jessica Kahn  <jess@apple.com>

        Reviewed by Tim Hatcher.

        * coding/coding-style.html:
        Adding a note about avoiding explicit nil/NO initialization of Objective-C instance variables.

2008-01-21  David Smith  <catfish.man@gmail.com>

        Reviewed by Darin Adler.

        Added a modified version of the MooTools SlickSpeed Selector Test/Benchmark to show off querySelectorAll. MIT licensed.

        * perf/slickspeed: Added.
        * perf/slickspeed/config.ini: Added.
        * perf/slickspeed/footer.html: Added.
        * perf/slickspeed/frameworks: Added.
        * perf/slickspeed/frameworks/DomQuery.js: Added.
        * perf/slickspeed/frameworks/dummy.js: Added.
        * perf/slickspeed/frameworks/jquery-1.2.1.js: Added.
        * perf/slickspeed/frameworks/prototype.js: Added.
        * perf/slickspeed/header.html: Added.
        * perf/slickspeed/index.php: Added.
        * perf/slickspeed/instructions.txt: Added.
        * perf/slickspeed/logo.png: Added.
        * perf/slickspeed/selectors.list: Added.
        * perf/slickspeed/style.css: Added.
        * perf/slickspeed/system: Added.
        * perf/slickspeed/system/index.php: Added.
        * perf/slickspeed/system/slickspeed.js: Added.
        * perf/slickspeed/system/template.php: Added.
        * perf/slickspeed/template.html: Added.

2008-01-17  Steve Falkenburg  <sfalken@apple.com>

        Added Vista crash logging information.

        Reviewed by Adam.

        * quality/crashlogs.html:

2008-01-07  Eric Seidel  <eric@webkit.org>

        Reviewed by Mark Rowe.

        * projects/svg/status.xml: remove fixed bugs.

2007-12-30  Mark Rowe  <mrowe@apple.com>

        Unreviewed.  Update WordPress to 2.3.2, which includes security fixes.

        * blog/wp-admin/admin.php:
        * blog/wp-admin/includes/file.php:
        * blog/wp-admin/install.php:
        * blog/wp-admin/setup-config.php:
        * blog/wp-app.php:
        * blog/wp-includes/formatting.php:
        * blog/wp-includes/functions.php:
        * blog/wp-includes/pluggable.php:
        * blog/wp-includes/post.php:
        * blog/wp-includes/query.php:
        * blog/wp-includes/taxonomy.php:
        * blog/wp-includes/version.php:
        * blog/wp-includes/wp-db.php:
        * blog/wp-mail.php:
        * blog/wp-settings.php:
        * blog/xmlrpc.php:

2007-12-29  Alp Toker  <alp@atoker.com>

        Fix typo.

        * perf/sunspider-0.9/sunspider.html:

2007-12-29  Alp Toker  <alp@atoker.com>

        Reviewed by Maciej.

        Provide the current URL in the SunSpider results page. Useful for
        copying benchmark results out of browsers without a location bar or
        where the location bar can't handle long URLs.

        * perf/sunspider-0.9/sunspider-results.html:

2007-12-21  David Smith  <catfish.man@gmail.com>

        At bdash's suggestion, display a message if someone attempts to run the 'native' version of the getElementsByClassName benchmark in a browser that doesn't support that.

        * blog-files/gebcnspeedtest.html:

2007-12-21  David Smith  <catfish.man@gmail.com>

        Add the benchmark from the previous commit as well.

        * blog-files/gebcnspeedtest.html: Added.
        * blog-files/prototype-for-gebcn-test.js: Added.

2007-12-21  David Smith  <catfish.man@gmail.com>

        Add a graph of benchmark results for an upcoming blog post.

        * blog-files/gebcnwebkitonly.png: Added.

2007-12-18  Antti Koivisto  <antti@apple.com>

        Reviewed by Darin and Steve.

        Add instructions to install the QuickTime SDK for Windows.

        * building/tools.html:

2007-12-18  Mark Rowe  <mrowe@apple.com>

        Fix typo.

        * perf/sunspider-0.9/sunspider.html:

2007-12-18  Steve Falkenburg  <sfalken@apple.com>

        Correct link to Visual Studio Express 2005.
        Old link points to 2008.

        Reviewed by Mark.

        * building/tools.html:

2007-12-17  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Eric.

        - work around IE layout bugs

        * perf/sunspider-0.9/sunspider.css:

2007-12-17  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Mark.

        - fix compare feature

        * perf/sunspider-0.9/sunspider-results.html:

2007-12-17  Maciej Stachowiak  <mjs@apple.com>

        Rubber stamped by Mark.

        - Add a copy of SunSpider 0.9 to the site

        * perf: Added.
        * perf/sunspider-0.9: Added.
        * perf/sunspider-0.9/3d-cube.html: Added.
        * perf/sunspider-0.9/3d-morph.html: Added.
        * perf/sunspider-0.9/3d-raytrace.html: Added.
        * perf/sunspider-0.9/access-binary-trees.html: Added.
        * perf/sunspider-0.9/access-fannkuch.html: Added.
        * perf/sunspider-0.9/access-nbody.html: Added.
        * perf/sunspider-0.9/access-nsieve.html: Added.
        * perf/sunspider-0.9/bitops-3bit-bits-in-byte.html: Added.
        * perf/sunspider-0.9/bitops-bits-in-byte.html: Added.
        * perf/sunspider-0.9/bitops-bitwise-and.html: Added.
        * perf/sunspider-0.9/bitops-nsieve-bits.html: Added.
        * perf/sunspider-0.9/controlflow-recursive.html: Added.
        * perf/sunspider-0.9/crypto-aes.html: Added.
        * perf/sunspider-0.9/crypto-md5.html: Added.
        * perf/sunspider-0.9/crypto-sha1.html: Added.
        * perf/sunspider-0.9/date-format-tofte.html: Added.
        * perf/sunspider-0.9/date-format-xparb.html: Added.
        * perf/sunspider-0.9/math-cordic.html: Added.
        * perf/sunspider-0.9/math-partial-sums.html: Added.
        * perf/sunspider-0.9/math-spectral-norm.html: Added.
        * perf/sunspider-0.9/regexp-dna.html: Added.
        * perf/sunspider-0.9/string-base64.html: Added.
        * perf/sunspider-0.9/string-fasta.html: Added.
        * perf/sunspider-0.9/string-tagcloud.html: Added.
        * perf/sunspider-0.9/string-unpack-code.html: Added.
        * perf/sunspider-0.9/string-validate-input.html: Added.
        * perf/sunspider-0.9/sunspider-analyze-results.js: Added.
        * perf/sunspider-0.9/sunspider-compare-results.js: Added.
        * perf/sunspider-0.9/sunspider-driver.html: Added.
        * perf/sunspider-0.9/sunspider-record-result.js: Added.
        * perf/sunspider-0.9/sunspider-results.html: Added.
        * perf/sunspider-0.9/sunspider-test-prefix.js: Added.
        * perf/sunspider-0.9/sunspider.css: Added.
        * perf/sunspider-0.9/sunspider.html: Added.

2007-12-16  Brent Fulgham  <bfulgham@gmail.com>

        Reviewed by Maciej Stachowiak.

        http://bugs.webkit.org/show_bug.cgi?id=16446.

        * building/debug.html:  Update to expand the win32 debugging instructions.

2007-12-07  Brady Eidson  <beidson@apple.com>

        Reviewed by Darin's rubberstamp

        When developing the Database feature and dealing with UI Delegate issues, it is important to have
        live examples on the web to help reproduce certain situations.

        This file is a dumping ground for such examples, and starts out with one function - the ability to add
        arbitrary amounts of data to a database to test the quota-related mechanisms of the UI

        * misc/DatabaseTester.html: Added.

2007-12-07  Brady Eidson  <beidson@apple.com>

        Reviewed by Adam Roben

        * misc/DatabaseExample.html: Changed to differentiate failure between running with an
          unsupported browser or some other error that prevented the database from opening.
          In the future we can use ExceptionCodes returned from openDatabase(), but a good list
          of those don't exist yet

2007-12-05  Timothy Hatcher  <timothy@apple.com>

        Add another Inspector screenshot for an upcoming blog post.

        * blog-files/InspectorDatabaseBrowser.png: Added.

2007-12-04  Alp Toker  <alp@atoker.com>

        Reviewed by Mark Rowe.

        Link to Planet WebKit.

        * nav.inc:

2007-12-02  Adam Roben  <aroben@apple.com>

        Add another screenshot

        * blog-files/InspectElementMenu.png: Added.

2007-12-02  Adam Roben  <aroben@apple.com>

        Add some Inspector screenshots for an upcoming blog post

        Rubberstamped by Mark Rowe.

        * blog-files/InspectorCSSEditing.png: Added.
        * blog-files/InspectorFonts.png: Added.

2007-11-30  Matt Lilek  <webkit@mattlilek.com>

        Reviewed by Adam.

        Link to the commit and review policy.

        * coding/contributing.html:
        * nav.inc:

2007-11-30  Darin Adler  <darin@apple.com>

        * coding/commit-review-policy.html: A couple more typos and very
        minor grammatical stuff. No substantive change.

2007-11-30  Darin Adler  <darin@apple.com>

        * coding/commit-review-policy.html: Fixed a typo, added a footer.

2007-11-30  Matt Lilek  <webkit@mattlilek.com>

        Reviewed by Maciej.

        Clean up a couple of typos from Maciej's last patch.

        * coding/commit-review-policy.html:

2007-11-30  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Bertrand.

        New commit and review policy.

        * coding/commit-review-policy.html: Added.

2007-11-21  Mark Rowe  <mrowe@apple.com>

        Reviewed by Eric.

        Update coding style to cover control statements with no body.

        * coding/coding-style.html:

2007-11-17  Adam Roben  <aroben@apple.com>

        Update Windows debugging instructions

        Reviewed by Mark Rowe.

        * building/debug.html:

2007-11-14  Brady Eidson  <beidson@apple.com>

        For future use

        * images/DroseraPic.png: Added.

2007-11-12  Brady Eidson  <beidson@apple.com>

        Reviewed by Tim

        Update the DatabaseExample to use the new API

        * misc/DatabaseExample.html:

2007-11-12  Mark Rowe  <mrowe@apple.com>

        * building/tools.html: Remove extra >.

2007-11-09  Antti Koivisto  <antti@apple.com>

        Rubber stamped by bdash.

        Add directory for blog resources (and one image).

        * blog-files: Added.
        * blog-files/touch-poster.png: Added.

2007-11-07  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        - removed a workaround for the bug fixed in the WebCore part of this
          patch

2007-11-04  Timothy Hatcher  <timothy@apple.com>

        Land the HTML Editing Toolbar demo from WWDC 2007.

        * demos: Added.
        * demos/editingToolbar: Added.
        * demos/editingToolbar/FancyToolbar.css: Added.
        * demos/editingToolbar/FancyToolbar.js: Added.
        * demos/editingToolbar/FancyToolbarImages: Added.
        * demos/editingToolbar/FancyToolbarImages/button.png: Added.
        * demos/editingToolbar/FancyToolbarImages/buttonLeft.png: Added.
        * demos/editingToolbar/FancyToolbarImages/buttonMiddle.png: Added.
        * demos/editingToolbar/FancyToolbarImages/buttonPressed.png: Added.
        * demos/editingToolbar/FancyToolbarImages/buttonPressedLeft.png: Added.
        * demos/editingToolbar/FancyToolbarImages/buttonPressedMiddle.png: Added.
        * demos/editingToolbar/FancyToolbarImages/buttonPressedRight.png: Added.
        * demos/editingToolbar/FancyToolbarImages/buttonRight.png: Added.
        * demos/editingToolbar/FancyToolbarImages/camera.png: Added.
        * demos/editingToolbar/FancyToolbarImages/link.png: Added.
        * demos/editingToolbar/FancyToolbarImages/textAlign.png: Added.
        * demos/editingToolbar/FancyToolbarImages/toolbarOutline.png: Added.
        * demos/editingToolbar/FancyToolbarImages/toolbarOutlineBottom.png: Added.
        * demos/editingToolbar/FancyToolbarImages/toolbarOutlineBottomLeft.png: Added.
        * demos/editingToolbar/FancyToolbarImages/toolbarOutlineBottomRight.png: Added.
        * demos/editingToolbar/FancyToolbarImages/toolbarOutlineLeft.png: Added.
        * demos/editingToolbar/FancyToolbarImages/toolbarOutlineRight.png: Added.
        * demos/editingToolbar/FancyToolbarImages/toolbarOutlineTop.png: Added.
        * demos/editingToolbar/FancyToolbarImages/toolbarOutlineTopLeft.png: Added.
        * demos/editingToolbar/FancyToolbarImages/toolbarOutlineTopRight.png: Added.
        * demos/editingToolbar/content.html: Added.
        * demos/editingToolbar/images: Added.
        * demos/editingToolbar/images/safari.png: Added.
        * demos/editingToolbar/index.html: Added.

2007-11-04  David D. Kilzer  <ddkilzer@webkit.org>

        CIA has changed its hostname from cia.navi.cx to cia.vc
        <http://bugs.webkit.org/show_bug.cgi?id=15829>

        Reviewed by Mitz.

        * contact.html: Updated links to CIA.

2007-11-03  David D. Kilzer  <ddkilzer@webkit.org>

        LGPL'ed files contain incorrect FSF address
        <http://bugs.webkit.org/show_bug.cgi?id=14885>

        Reviewed by NOBODY (follow-up fix).

        * blog/wp-includes/class-snoopy.php:
        * blog/wp-includes/gettext.php:
        * blog/wp-includes/streams.php:

2007-11-01  Sam Weinig  <sam@webkit.org>

        Rubber-stamped by Tim Hatcher.

        * misc/DatabaseExample.html: Speed up default close speed to .25s

2007-11-01  Sam Weinig  <sam@webkit.org>

        Reviewed by Adam Roben.

        - Don't show the close button on the notes unless hovering over the note.
        - Do transformation and fade when closing a note using the new transition properties.

        * misc/DatabaseExample.html:

2007-10-29  Mark Rowe  <mrowe@apple.com>

        Upgrade WordPress.

        * blog: Updated.

2007-10-29  Mark Rowe  <mrowe@apple.com>

        Files that have been added or modified on the web server without making it in to SVN.

        * .htaccess:
        * blog/wp-content/databaseexample.png: Added.
        * blog/wp-content/uploads: Added.
        * blog/wp-content/uploads/2007: Added.
        * blog/wp-content/uploads/2007/06: Added.
        * blog/wp-content/uploads/2007/06/newinspector.png: Added.
        * building/cygwin-downloader.zip: Added.

2007-10-25  Alexey Proskuryakov  <ap@webkit.org>

        Rubber-stamped by Mark Rowe.

        * images/download.png: Updated to say "Nightly builds" instead of
       "Nightly (6 MB)" - the Mac version is ~15 MB now, and this isn't a direct
       download link anyway.

2007-10-21  David Kilzer  <ddkilzer@webkit.org>

        Reviewed by Darin Adler.

        - fix http://bugs.webkit.org/show_bug.cgi?id=15592
          DOM Exception opening up client-side database example for the first time

        There was a race condition when creating the WebKitStickyNotes table for the
        first time in which the loaded() function (renamed to loadNotes()) could be
        called before the table was created.  Prevent this by only calling loadNotes()
        in an executeSql() callback after we know the table exists, or after we know
        the table has been created.

        * misc/DatabaseExample.html: Renamed loaded() function to loadNotes().
        Created a new loaded() function.

2007-10-20  Mark Rowe  <mrowe@apple.com>

        Rubber-stamped by Adam.

        Convert TIFFs to PNGs so that the demo page is fully-functional in the Gtk port.

        * misc/DatabaseExample.html:
        * misc/deleteButton.png: Added.
        * misc/deleteButton.tiff: Removed.
        * misc/deleteButtonPressed.png: Added.
        * misc/deleteButtonPressed.tiff: Removed.

2007-10-20  Adam Roben  <aroben@apple.com>

        Make the notes sticky!

        Reviewed by Mark.

        * misc/DatabaseExample.html:
        * misc/deleteButton.tiff: Added.
        * misc/deleteButtonPressed.tiff: Added.

2007-10-19  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Mark Rowe.

        Fix a couple of exceptions for first time users.

        * misc/DatabaseExample.html:

2007-10-19  Anders Carlsson  <andersca@apple.com>

        Reviewed by Brady.

        Make example actually work.

        * misc/DatabaseExample.html:

2007-10-19  Anders Carlsson  <andersca@apple.com>

        Reviewed by Adam.

        Update example.

        * misc/DatabaseExample.html:

2007-10-19  Brady Eidson  <beidson@apple.com>

        Reviewed by Tim

        Tiger's SQLite doesn't support CREATE TABLE IF NOT EXISTS :(

        * misc/DatabaseExample.html:

2007-10-19  Brady Eidson  <beidson@apple.com>

        Reviewed by Tim Hatcher

        Sample database API usage

        * misc/DatabaseExample.html: Added.

2007-09-25  David Kilzer  <ddkilzer@webkit.org>

        Reviewed by Adam.

        - Fix http://bugs.webkit.org/show_bug.cgi?id=14885
          LGPL'ed files contain incorrect FSF address

        * blog/wp-content/plugins/wp-cache/wp-cache.php:
        * blog/wp-includes/class-snoopy.php:
        * blog/wp-includes/gettext.php:
        * blog/wp-includes/js/tinymce/license.html:
        * blog/wp-includes/streams.php:

2007-09-23  Maciej Stachowiak  <mjs@apple.com>

        Reviewed by Mark Rowe.

        - Limit custom list bullets to ordered lists only

        * css/blue.css:
        * css/gray.css:
        * css/green.css:
        * css/ie.css:
        * css/main.css:
        * css/pink.css:
        * css/purple.css:
        * css/yellow.css:

2007-09-22  Jan Michael Alonzo  <jmalonzo@unpluggable.com>

        Reviewed by Adam.

        * coding/coding-style.html:
          - in section Other Punctuation
            - syntax instead of synatax
            - fix sample code alignment

2007-09-06  Maciej Stachowiak  <mjs@apple.com>

        Forgot the JS file.

        * misc/WebKitDetect.js: Added.

2007-09-06  Maciej Stachowiak  <mjs@apple.com>

        Not reviewed - copy of WebKitDetect script from wiki

        * misc/WebKitDetect.html: Added.

2007-08-20  Adam Roben  <aroben@apple.com>

        Remove any mention of drwtsn32.log, as it is almost never useful for tracking down crashes

        Reviewed by Oliver.

        * quality/crashlogs.html:

2007-07-26  Maciej Stachowiak  <mjs@apple.com>

        - grammar fix pointed out by Mitz.

        * projects/goals.html:

2007-07-25  Maciej Stachowiak  <mjs@apple.com>

        Rubber stamped by Adam.

        Added WebKit Project Goals.

        * nav.inc: added a nav link.
        * projects/goals.html: Added.

2007-07-22  Matt Lilek  <pewtermoose@gmail.com>

        Reviewed by Adam Roben.

        Add information on getting a useful crash log on Mac and Windows.

        * nav.inc:
        * quality/crashlogs.html: Added.
        * quality/mac_reportbox.jpg: Added.
        * quality/mac_viewtrace.jpg: Added.
        * quality/win_installwatson.jpg: Added.
        * quality/win_watsongui.jpg: Added.
        * quality/win_watsoninstalled.jpg: Added.

2007-07-20  Mark Rowe  <mrowe@apple.com>

        Replace symlink with a PHP-level include to allow use of git on Windows without cygwin.
        WordPress will replace the file with a symlink when it's first accessed, and the PHP-level
        include is functionally identical for our purposes on the first use.

        * blog/wp-content/advanced-cache.php:

2007-07-16  Charles Gaudette  <charles@gaudette-net.com>

        Reviewed by Niko.

        - http://bugs.webkit.org/show_bug.cgi?id=14628
          broken link on webkit.org home page - "KHTML" points to http://khtml.info/

        * index.html:

2007-07-06  Matt Lilek  <pewtermoose@gmail.com>

        Reviewed by Adam Roben.

        Add info about VC++ Express forgetting SDK paths.

        * building/build.html:

2007-07-02  Mitz Pettel  <mitz@webkit.org>

        Reviewed by Darin Adler.

        - http://bugs.webkit.org/show_bug.cgi?id=14482
          Add information about the NeedsReduction and HasReduction keywords to quality/reduction.html

        * quality/reduction.html:

2007-07-01  Mitz Pettel  <mitz@webkit.org>

        Reviewed by Darin Adler.

        - http://bugs.webkit.org/show_bug.cgi?id=14481
        Broken links on coding/lgpl-license.html

        * coding/lgpl-license.html:

2007-06-24  Mitz Pettel  <mitz@webkit.org>

        Reviewed by Adam Roben.

        Fix broken link.

        * building/build.html:

2007-06-23  Mark Rowe  <mrowe@apple.com>

        Not reviewed.

        * building/checkout.html: Update link to bypass caching proxy as it has a habit of breaking huge downloads.

2007-06-12  Adam Roben  <aroben@apple.com>

        Update the location of cygwin-downloader.zip.

        Rubberstamped by Hyatt.

        * building/tools.html:

2007-06-12  Dave Hyatt  <hyatt@apple.com>

        Add Windows checkout/build instructions to the website.

        * building/build.html:
        * building/checkout.html:
        * building/debug.html:
        * building/tools.html: Added.
        * building/run.html:
        * css/main.css:
        * index.html:
        * nav.inc:

2007-06-10  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Beth Dakin.

        Cleaned up formatting on the check out page.

        * building/checkout.html:

2007-06-08  Mark Rowe  <mrowe@apple.com>

        Rubber-stamped by Hyatt.

        Switch to using Internet Explorer's conditional comments to target IE-specific styles rather
        than doing server-side user agent checks.  This resolves an issue some people were seeing where
        caching would lead to a page generated for an Internet Explorer user being served to a Safari
        user.  The visible symptom of this was many of the graphics were missing.

        * blog/wp-content/themes/webkit/header.php:
        * header.inc:

2007-05-04  Mark Rowe  <mrowe@apple.com>

        Upgrade to WordPress 2.2.  I didn't go to the effort of tracking down files
        present in the old version which have since been removed, but it's unlikely
        they'll ever cause a problem.

2007-05-04  Mark Rowe  <mrowe@apple.com>

        Add graphics used by existing blog posts into SVN.

        * blog/wp-content/rotate.png: Added.
        * blog/wp-content/drosera.png: Added.
        * blog/wp-content/hitlist.png: Added.
        * blog/wp-content/svgtextmini.png: Added.
        * blog/wp-content/svgtextmini_01.png: Added.
        * blog/wp-content/textfield_screenshot.jpg: Added.
        * blog/wp-content/Picture9.png: Added.
        * blog/wp-content/svgtext.png: Added.
        * blog/wp-content/webInspector.png: Added.
        * blog/wp-content/rotate.svg: Added.
        * blog/wp-content/chucknorris.png: Added.

2007-04-21  Mitz Pettel  <mitz@webkit.org>

        Reviewed by Darin Adler.

        - http://bugs.webkit.org/show_bug.cgi?id=13350
          Build Ahem into DumpRenderTree

        * quality/testing.html: Removed the requirement to download and install
        Ahem for running the tests.
        * quality/testwriting.html: Added information about Ahem.

2007-04-09  Adele Peterson  <adele@apple.com>

        * blog/wp-content/chrome.jpg: Added.

2007-04-05  Mark Malone  <markmalone@mac.com>

        Reviewed by Darin Adler.

        http://bugs.webkit.org/show_bug.cgi?id=13273
        Bug 13273: DOM Interfaces Nav link should go somewhere more useful

        * nav.inc: Link directly to the hierarchy.

2007-03-26  Darin Adler  <darin@apple.com>

        * coding/coding-style.html: Let's misquote George Orwell: "Wrong is right. Right is wrong."

2007-03-25  Darin Adler  <darin@apple.com>

        * coding/coding-style.html: Put !important on right/wrong colors so they override the
        green color that comes from the green.css stylesheet.

2007-03-25  Darin Adler  <darin@apple.com>

        * coding/RefPtr.html: A couple minor wording tweaks.

2007-03-25  Darin Adler  <darin@apple.com>

        * coding/RefPtr.html: Put the operator name "new" in the oblique style as with other identifiers.

2007-03-25  Mark Rowe  <mrowe@apple.com>

        * coding/RefPtr.html: Fix grammar error that Mitz pointed out.
        Replace raw ampersands in hyperlink URL with named entity.

2007-03-25  Darin Adler  <darin@apple.com>

        * coding/RefPtr.html: A couple wording tweaks.

2007-03-25  Darin Adler  <darin@apple.com>

        * coding/RefPtr.html: More formatting tweaks. Added a possible new topic for the document,
        suggested by Anders.

2007-03-24  Darin Adler  <darin@apple.com>

        * css/main.css: Try tighter spacing for code examples.

2007-03-24  Darin Adler  <darin@apple.com>

        * coding/RefPtr.html: <span> -> </span>

2007-03-24  Darin Adler  <darin@apple.com>

        * coding/RefPtr.html: "smart pointer" -> "smart pointers"

2007-03-24  Darin Adler  <darin@apple.com>

        * coding/RefPtr.html: Added. First draft of a document about RefPtr.

        Also tweaked the MIME types of a few files and removed a stray executable bit.

2007-03-21  David Kilzer  <ddkilzer@apple.com>

        * building/checkout.html: By popular demand, the link to the svn 1.3 client has been removed.

2007-03-21  David Kilzer  <ddkilzer@apple.com>

        * building/checkout.html: Got rid of "click here" link and restructured sentences
        linking to svn clients.

2007-03-21  David Kilzer  <ddkilzer@apple.com>

        Reviewed by Adam.

        * building/checkout.html: Add link to svn 1.4 client for Mac OS X 10.4.

2007-03-21  Maciej Stachowiak  <mjs@apple.com>

        - some specs to propose by email

        * specs/HTML_Timed_Media_Elements.html: Added.
        * specs/Timed_Media_CSS.html: Added.
        * specs/Timed_Media_Elements-Open_Issues.html: Added.
        * specs/mediaelement.css: Added.
        * specs/movie-status-states.png: Added.

2007-03-20  Matt Lilek  <pewtermoose@gmail.com>

        Reviewed by Darin Adler.

        Clear up the steps necessary to get a patch landed.

        http://bugs.webkit.org/show_bug.cgi?id=12877 - Bug 12877: "Contributing Code" page could be clearer
        http://bugs.webkit.org/show_bug.cgi?id=8690 - Bug 8690: Contributing code doesn't mention what to do with new files

        * coding/contributing.html:

2007-03-18  Maciej Stachowiak  <mjs@apple.com>

        Added a random JS benchmark.

        * misc/morph.html: Added.

2007-03-14  Kevin McCullough  <kmccullough@apple.com>

        Reviewed by .

        Silly wrapping change for testing a post-commit hook change.

        * contact.html:

2007-03-09  Darin Adler  <darin@apple.com>

        * blog/wp-content/themes/webkit/style.css: Removed rule for code since
        we want it to match pre, and the default font looks fine -- no need to
        ask for "Courier New" explicitly.

2007-03-09  Mark Rowe  <mrowe@apple.com>

        Rubber-stamped by Tim Hatcher.

        Sexy blog permalinks!

        * blog/.htaccess: Added.

2007-03-09  Mark Rowe  <mrowe@apple.com>

        Reviewed by Adam.

        * building/checkout.html: Update repository URL.

2007-03-07  Brady Eidson  <beidson@apple.com>

        Whoops, its actually prepare-ChangeLog

        * coding/contributing.html:

2007-03-07  Brady Eidson  <beidson@apple.com>

        Reviewed by Anders.

        Explicitly mention the prepare-Changelog step for contributing patches

        * coding/contributing.html:

2007-02-25  Anders Carlsson  <acarlsson@apple.com>

        Reviewed by Maciej.

        * building/checkout.html:
        Add Trac link to our SVN repository,

2007-02-15  Darin Adler  <darin@apple.com>

        * projects/performance/index.html: Fix i-Bench link.

2007-02-08  Mark Rowe  <mrowe@apple.com>

        Reviewed by Tim Hatcher.

        * nav.inc: Add link to very work-in-progress DOM documentation.

2007-01-19  Nicholas Shanks  <contact@nickshanks.com>

        Reviewed by Maciej.

        Change doctype for webkit.org/blog/ admin interface to HTML 4.01.

        * blog/wp-admin/admin-header.php:
        * blog/wp-login.php:

2007-01-15  Brady Eidson  <beidson@apple.com>

        Reviewed by Maciej

        * coding/coding-style.html: Added switch/case indentation rules

2007-01-15  Eric Seidel  <eric@webkit.org>

        Reviewed by bdash.

        * coding/coding-style.html: update to include style for header guards

2007-01-10  Geoffrey Garen  <ggaren@apple.com>

        * coding/coding-style.html: Fixed minor validation error.

2007-01-10  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Beth Dakin.

        Updated coding style guidelines to cover a lot of stuff previously absent.

        * coding/coding-style.html:

2007-01-04  Lars Naesbye Christensen  <larsnaesbye@stud.ku.dk>

        Reviewed by Darin Adler.

        http://bugs.webkit.org/show_bug.cgi?id=11295
        Nightly download size is misleading

        * images/download.png: Changed the size to 6 MB.

2007-01-01  Darin Adler  <darin@apple.com>

        * quality/bugzilla.html: Fix a lingering reference to opendarwin.org.

2006-12-06  Rob Buis  <buis@kde.org>

        Reviewed by Brady.

        http://bugs.webkit.org/show_bug.cgi?id=10254
        A few grammar and spelling corrections on the WebKit website

        Grammar and spelling corrections by Jonathan Johnsson.

        * coding/coding-style.html:
        * projects/css/index.html:
        * projects/javascript/index.html:
        * projects/svg/index.html:
        * quality/reduction.html:

2006-11-21  Matt Lilek  <pewtermoose@gmail.com>

        Reviewed by Maciej.

        http://bugs.webkit.org/show_bug.cgi?id=11652
        Bug 11652: Mailing list address and URL are incorrect

        This also removes a lot of bit rot from the KWQ-era.

        * coding/contributing.html:
        * contact.html:
        * projects/css/index.html:
        * projects/editing/index.html:
        * projects/forms/index.html:
        * projects/html/index.html:
        * projects/portability/index.html:
        * projects/xslt/index.html:
        * quality/lifecycle.html:
        * quality/testwriting.html:

2006-11-18  Mitz Pettel  <mitz@webkit.org>

        Reviewed by Maciej.

        Gender-neutrality fix.

        * coding/contributing.html:

2006-11-14  Matt Lilek  <pewtermoose@gmail.com>

        Reviewed by Tim Hatcher.

        Moved the web developer page to the wiki, adding link to the Drosera page.

        * .htaccess: Add permanent redirect to the new page on the wiki.
        * contact.html: Trac numbers are no longer one off.
        * nav.inc:
        * webdevelopers/index.html: Removed.
        * webdevelopers/webkit_version.html: Removed.
        * webdevelopers/webkit_version.js: Removed.
        * webdevelopers/webkit_version_xl.html: Removed.
        * webdevelopers/webkit_version_xl.js: Removed.

2006-11-14  Mark Rowe  <bdash@webkit.org>

        Reviewed by Tim Hatcher.

        http://bugs.webkit.org/show_bug.cgi?id=9529
        Bug 9529: Navigation HTML duplicated on webkit.org web site

        * blog/wp-content/themes/webkit/sidebar.php: Include navigation from nav.inc rather than duplicating it here.
        * nav.inc: Generate WordPress archive list if included from within WordPress.

2006-11-07  Mark Rowe  <bdash@webkit.org>

        Reviewed by Dave Hyatt.

        * projects/javascript/index.html: Update link to non-existent JavaScript Bugzilla
        component to the correct JavaScriptCore.

2006-11-06  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Anders.

        Update the site with new wiki and Trac links.

        * blog/wp-content/themes/webkit/sidebar.php:
        * building/build.html:
        * index.html:
        * nav.inc:
        * projects/svg/index.html:

2006-10-31  Mark Rowe  <bdash@webkit.org>

        Reviewed by Mitz.

        Update WebKit blog link to prevent pointless redirects.

        * nav.inc:

2006-10-25  Mitz Pettel  <mitz@webkit.org>

        Reviewed by Adele.

        - http://bugs.webkit.org/show_bug.cgi?id=11412
          Stray list item in coding/coding-style.html

        * coding/coding-style.html:

2006-10-25  Mark Rowe  <bdash@webkit.org>

        Reviewed by Maciej.

        Fix some HTML bugs in the coding style guidelines.

        * coding/coding-style.html:

2006-10-13  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Beth.

        Split build, run, and debug steps into separate pages. Darin recommended
        this a while back.

        * building/build.html:
        * building/checkout.html:
        * building/debug.html: Added.
        * building/run.html: Added.
        * nav.inc:

2006-10-05  Eric Seidel  <eric@webkit.org>

        Reviewed by Tim H.

        * coding/coding-style.html: use css styles, add example for whitespace, add example for c++ constructors

2006-09-26  Eric Seidel  <eric@webkit.org>

        Reviewed by anders.

        * projects/svg/status.xml: update status to reflect current state of SVG development

2006-09-21  Matt Lilek  <pewtermoose@gmail.com>

        Reviewed by Eric.

        http://bugs.webkit.org/show_bug.cgi?id=10975
        Update the blog template to valid HTML 4.01 Strict.

        * blog/wp-content/themes/webkit/comments-popup.php:
        * blog/wp-content/themes/webkit/comments.php:
        * blog/wp-content/themes/webkit/footer.php:
        * blog/wp-content/themes/webkit/header.php:
        * blog/wp-content/themes/webkit/style.css: Add missing semi-colon that the validator complained about.

2006-09-21  Mark Rowe  <opendarwin.org@bdash.net.nz>

        Reviewed by Eric.

        http://bugs.webkit.org/show_bug.cgi?id=10966
        Bug 10966: Updates to website

        Resolves a few remaining validation issues, makes Bugzilla links consistent, and removes unneeded references to OpenDarwin.

        * coding/coding-style.html:
        * coding/lgpl-license.html:
        * contact.html:
        * index.html:
        * projects/css/index.html:
        * projects/editing/index.html:
        * projects/forms/index.html:
        * projects/html/index.html:
        * projects/index.html:
        * projects/javascript/index.html:
        * projects/svg/index.html:
        * projects/xslt/index.html:
        * webdevelopers/webkit_version.html:
        * webdevelopers/webkit_version_xl.html:

2006-09-21  Mark Rowe  <opendarwin.org@bdash.net.nz>

        Reviewed by TimH.

        Updates to make static pages validate as HTML 4.01 Strict.

        * building/build.html:
        * coding/coding-style.html:
        * header.inc:
        * index.html: Move <style> tag into the document head.
        * projects/cleanup/index.html:
        * projects/compat/index.html:
        * projects/css/index.html:
        * projects/documentation/index.html:
        * projects/editing/index.html:
        * projects/forms/index.html: Remove note about <label> not being implemented correctly.
        * projects/html/index.html:
        * projects/javascript/index.html:
        * projects/performance/index.html:
        * projects/portability/index.html: Change mention of Windows port to note that it is in progress rather than non-existant.
        * projects/printing/index.html:
        * projects/svg/index.html:
        * projects/xslt/index.html:
        * quality/bugwriting.html: Update WebKit version numbers to be accurate.  Move JS away from using innerHTML as W3C validator doesn't like it.
        * quality/reduction.html:
        * quality/reporting.html: Rename element IDs that start with numbers.  Update WebKit and Mac OS X version numbers to be accurate.
        * quality/testing.html:

2006-09-19  Brady Eidson  <beidson@apple.com>

        http://bugs.webkit.org/show_bug.cgi?id=8220
        Add the favicon.ico to the site.
        Notice, users of shipping Safari won't see the updated favicon
        unless they clear their icon cache - ToT users can manually reload
        the site and force the refresh  ;)

        * favicon.ico: Added.

2006-09-08  Kevin McCullough  <KMcCullough@apple.com>

        Reviewed by Adel.

        - this patch brought to you by the letter 'c'

        * coding/coding-style.html:

2006-08-24  Mitz Pettel  <opendarwin.org@mitzpettel.com>

        Reviewed by Darin Adler.

        - http://bugs.webkit.org/show_bug.cgi?id=10444
          Navigation links overlap the Spam Karma 2 footer

        * blog/wp-content/themes/webkit/style.css: Hide the footer altogether.

2006-08-21  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Darin Adler.

        Bug 9302: WebKit nightly download image says ~2.5 MB when
        universal binaries make it ~5.0 MB
        http://bugs.webkit.org/show_bug.cgi?id=9302

        * images/download.png:

2006-08-21  Timothy Hatcher  <timothy@apple.com>

        Stamped by Maciej.

        Changes many opendarwin.org links to the proper webkit.org version.

        * blog/wp-content/themes/webkit/sidebar.php:
        * blog/wp-content/themes/webkit/style.css:
        * building/build.html:
        * coding/contributing.html:
        * contact.html:
        * index.html:
        * nav.inc:
        * projects/compat/hitlist.html:
        * projects/css/index.html:
        * projects/editing/index.html:
        * projects/forms/index.html:
        * projects/html/index.html:
        * projects/javascript/index.html:
        * projects/svg/index.html:
        * projects/svg/svg-status.xsl:
        * projects/xslt/index.html:
        * quality/bugpriorities.html:
        * quality/bugzilla.html:
        * quality/leakhunting.html:
        * quality/lifecycle.html:
        * quality/reporting.html:

2006-08-15  Eric Seidel  <eric@webkit.org>

        Reviewed by TimH.

        * projects/svg/status.xml: updated to reflect current SVG status

2006-08-02  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by TimO.

        Tweaked the build instructions a bit.

        * building/build.html:
        * building/debug.png: Added.

2006-08-02  Darin Adler  <darin@apple.com>

        * building/checkout.html: Fix a typo: "OpenSource" instead of "Open Source".

2006-08-01  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Beth.

        - Added instructions for debugging in Xcode

        * building/build-window.png: Added.
        * building/build.html:
        * building/custom-executable.png: Added.
        * building/info-tab.png: Added.

2006-07-30  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Beth.

        - Tweaked the checkout and build instructions to make them simpler and
        clearer.

        * building/build.html:
        * building/checkout.html:

2006-06-22  Alexey Proskuryakov  <ap@nypop.com>

        Reviewed by Darin Adler.

        - see http://bugs.webkit.org/show_bug.cgi?id=9539
        Another case error preventing build

        * building/build.html: Building WebKit now requires Xcode 2.3.

2006-06-21  Joost de Valk  <jdevalk@opendarwin.org>

        Reviewed and landed by Anders.

        * blog/wp-content/themes/webkit/sidebar.php:
         Add link to Wiki in the navigation menu here too.

2006-06-21  Joost de Valk  <jdevalk@opendarwin.org>

        Reviewed and landed by Anders.

        * nav.inc: Add link to Wiki in the navigation menu.

2006-06-15  Joost de Valk  <jdevalk@opendarwin.org>

        Patch by David Kilzer, reviewed by Geoffrey Garen, landed by Joost de Valk.

        Fix http://bugs.webkit.org/show_bug.cgi?id=9407

        Improve wording of first paragraph of webkit site.

        * index.html:

2006-06-08  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Darin Adler.

        Include our own copies of the BSD and LGPL licenses.

        * coding/bsd-license.html: Added.
        * coding/lgpl-license.html: Added.
        * nav.inc: link to our copies of the licenses

2006-06-04  David Kilzer  <ddkilzer@kilzer.net>

        Reviewed by ggaren.

        http://bugs.webkit.org/show_bug.cgi?id=9303
        JavaScript error when loading WebKit blog page

        * blog/wp-content/themes/webkit/sidebar.php: Removed unused JavaScript.  Synced with nav.inc.
        * nav.inc: Removed evil tabs--whitespace change only.

2006-05-24  Bradley Morrison  <bradley.morrison@nokia.com>

        Reviewed by John Sullivan.

        * quality/lifecycle.html: mentions case of PlatformOnly bugs
                                  and 'other' bug databases.

2006-05-25  Joost de Valk  <jdevalk@opendarwin.org>

        Reviewed by Timothy Hatcher.

        Adding Google Analytics tracking code, to create stats of our webpages.

        * blog/wp-content/themes/webkit/footer.php:
        * footer.inc:

2006-05-23  Bradley Morrison  <bradley.morrison@nokia.com>

        Reviewed by Timothy.

        * index.html: Link to Nokia's S60 WebKit.

2006-05-08  Joost de Valk  <jdevalk@opendarwin.org>

        Reviewed by Anders.

        * building/checkout.html: changed link to point to universal binary. Thanks to Duncan Wilcox for hinting this one.

2006-04-28  Eric Seidel  <eseidel@apple.com>

        Reviewed by andersca.

        * projects/svg/status.xml: Update to reflect current status.

2006-04-18  Joost de Valk  <jdevalk@opendarwin.org>

        Reviewed by Eric Seidel .

        Added WebKit detection scripts and a small howto + a new section to our
        website: Web Developers.

        * nav.inc:
        * webdevelopers: Added.
        * webdevelopers/index.html: Added.
        * webdevelopers/webkit_version.html: Added.
        * webdevelopers/webkit_version.js: Added.
        * webdevelopers/webkit_version_xl.html: Added.
        * webdevelopers/webkit_version_xl.js: Added.

2006-04-17  Joost de Valk  <jdevalk@opendarwin.org>

        Reviewed by ggaren.

        * blog/wp-config.php: passwords and users don't belong in SVN.

2006-04-16  Joost de Valk  <jdevalk@opendarwin.org>

        Reviewed by Maciej.

        * quality/lifecycle.html: small textual change to my contact info;
        * quality/reporting.html: added non-ADC bug report URL.

2006-04-16  Joost de Valk  <jdevalk@opendarwin.org>

        Reviewed by Maciej.

        * contact.html: added URL's for trac, CIA, webkit-unassigned and build bot. These probably need to be on other places to but we will do that later on.

2006-04-13  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Maciej.

        * projects/compat/hitlist.html: Added Google Calendar to the list
        in place of www.hangseng.com/ebanking

2006-04-11  Eric Seidel  <eseidel@apple.com>

        Reviewed by andersca.

        * quality/testing.html: fix run-mozilla-tests to run-javascriptcore-tests

2006-04-10  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Beth.

        * projects/compat/hitlist.html: updated dates

2006-03-23  David Kilzer  <ddkilzer@kilzer.ent>

        Reviewed by Darin Adler.

        - Fix http://bugs.webkit.org/show_bug.cgi?id=7918
        Coding style doc uses illegal entity

        * coding/coding-style.html: Changed &emdash; to &mdash;.

2006-03-15  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by TimH.

        * projects/compat/hitlist.html: Moved delta.com to the alumni list,
        added description of alumni list.

2006-03-08  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Beth.

        Clarified that sites on the list aren't necessarily "broken."

        * projects/compat/hitlist.html:

2006-03-08  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Beth.

        Updated links to gap and bananarepublic bugs.

        * projects/compat/hitlist.html:

2006-03-06  Mitz Pettel  <opendarwin.org@mitzpettel.com>

        Reviewed by Darin Adler.

        Change "Mail.app" to "Mail".

        * index.html:
        * projects/editing/index.html:

2006-03-06  Geoffrey Garen  <ggaren@apple.com>

        Oops, accidentally deleted the archives links.

        * blog/wp-content/themes/webkit/sidebar.php: Bring them back.

2006-03-06  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Beth.

        Some site cleanup.

        * blog/wp-content/themes/webkit/sidebar.php: sync with the sidebar
        for the rest of the site.
        * quality/lifecycle.html: add Joost's homepage to his contact info.

2006-03-06  Geoffrey Garen  <ggaren@apple.com>

        Doing penance after being set straight by Joost.

        * projects/compat/hitlist.html: Remove slur against QA. My humblest
        apologies.

2006-03-06  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Maciej, Darin.

        Added Safari Compatibility Hit List.

        * nav.inc: Link to the hit list.
        * projects/compat/hitlist.html: Added.
        * projects/compat/index.html: Link to the hit list.

2006-03-02  Eric Seidel  <eseidel@apple.com>

        Reviewed by mjs.

        * quality/reporting.html: display a nicer message to those using 10.2

2006-02-26  David Kilzer  <ddkilzer@kilzer.net>

        Reviewed by Maciej, landed by Geoff.

        Change "Deployment" to "Release" and "Development" to "Debug".
        Update latest Xcode version from 2.2 to 2.2.1.

        * building/build.html

2006-02-21  Geoffrey Garen  <ggaren@apple.com>

        Accidentally wrote "Release" instead of "Debug" in my last patch.

        * quality/leakhunting.html:

2006-02-20  Geoffrey Garen  <ggaren@apple.com>

        Some quick proof-reading of the patch I just landed -- no review
        necessary.

        * quality/leakhunting.html:

2006-02-21  Joost de Valk  <jdevalk@opendarwin.org>

        Reviewed by Darin, Geoff.

        Added a page about leakhunting, based on the info Sullivan gave in two blogposts about it. (posts 20 and 24)

        Added this page to the menu, adding in an extra section header
"Testing" as well.

        * nav.inc:
        * quality/leakhunting.html: Added.

2006-02-19  Joost de Valk  <jdevalk@opendarwin.org>

        Reviewed by Darin Adler.

        Fixed Bugzilla URL's

        * projects/forms/index.html:
        * projects/html/index.html:
        * projects/xslt/index.html:

2006-02-19  Joost de Valk  <jdevalk@opendarwin.org>

        Reviewed by Darin Adler.

        Made line-height global instead of just for p

        Editing:
        fixed bugzilla link, added starting <p> to first paragraph
        removed paragraph about tab-stops

        * css/main.css:
        * projects/editing/index.html:

2006-02-17  Darin Adler  <darin@apple.com>

        * coding/coding-style.html: Mention other non-function brace cases.

2006-02-17  Joost de Valk  <jdevalk@opendarwin.org>

        Reviewed by Tim H.

        Added left position and margin-bottom to blog footer.

        * css/main.css:

2006-02-16  Timothy Hatcher  <timothy@apple.com>

        Reviewed by Maciej.

        Fixes PNGs with 8bit alpha on IE.

        * css/ie.css: attach the pngbehavior.htc to img tags
        * images/blank.png: Added.
        * index.html: add the width and height to the download img
        * pngbehavior.htc: Added.

2006-02-16  Justin Garcia  <justin.garcia@apple.com>

        Changed by Darin on my machine.

        * coding/coding-style.html: Re-merged in changes Darin made to the guidelines
        a few days back.

2006-02-16  Joost de Valk  <jdevalk@opendarwin.org>

        Reviewed and landed by Maciej.

        Made the author name bold on the frontpage.
        Moved the "Posted by" line up under the title and made the author name
bold in single view.

        * blog/wp-content/themes/webkit/index.php:
        * blog/wp-content/themes/webkit/single.php:

2006-02-15  Joost de Valk  <jdevalk@opendarwin.org>

        Reviewed by Tim H.

        Updated the site to use the new layout.

        * .htaccess: Added.
        * ChangeLog:
        * blog/wp-content/themes/classic: Removed.
        * blog/wp-content/themes/classic/comments-popup.php: Removed.
        * blog/wp-content/themes/classic/comments.php: Removed.
        * blog/wp-content/themes/classic/footer.php: Removed.
        * blog/wp-content/themes/classic/header.php: Removed.
        * blog/wp-content/themes/classic/index.php: Removed.
        * blog/wp-content/themes/classic/sidebar.php: Removed.
        * blog/wp-content/themes/classic/style.css: Removed.
        * blog/wp-content/themes/default: Removed.
        * blog/wp-content/themes/default/404.php: Removed.
        * blog/wp-content/themes/default/archive.php: Removed.
        * blog/wp-content/themes/default/archives.php: Removed.
        * blog/wp-content/themes/default/comments-popup.php: Removed.
        * blog/wp-content/themes/default/comments.php: Removed.
        * blog/wp-content/themes/default/footer.php: Removed.
        * blog/wp-content/themes/default/header.php: Removed.
        * blog/wp-content/themes/default/images: Removed.
        * blog/wp-content/themes/default/images/kubrickbg.jpg: Removed.
        * blog/wp-content/themes/default/images/kubrickbgcolor.jpg: Removed.
        * blog/wp-content/themes/default/images/kubrickbgwide.jpg: Removed.
        * blog/wp-content/themes/default/images/kubrickfooter.jpg: Removed.
        * blog/wp-content/themes/default/images/kubrickheader.jpg: Removed.
        * blog/wp-content/themes/default/index.php: Removed.
        * blog/wp-content/themes/default/links.php: Removed.
        * blog/wp-content/themes/default/page.php: Removed.
        * blog/wp-content/themes/default/search.php: Removed.
        * blog/wp-content/themes/default/searchform.php: Removed.
        * blog/wp-content/themes/default/sidebar.php: Removed.
        * blog/wp-content/themes/default/single.php: Removed.
        * blog/wp-content/themes/default/style.css: Removed.
        * blog/wp-content/themes/webkit/404.php:
        * blog/wp-content/themes/webkit/archive.php:
        * blog/wp-content/themes/webkit/archives.php:
        * blog/wp-content/themes/webkit/footer.php:
        * blog/wp-content/themes/webkit/header.php:
        * blog/wp-content/themes/webkit/images: Removed.
        * blog/wp-content/themes/webkit/images/bluebanner.png: Removed.
        * blog/wp-content/themes/webkit/images/kubrickbg.jpg: Removed.
        * blog/wp-content/themes/webkit/images/kubrickbgcolor.jpg: Removed.
        * blog/wp-content/themes/webkit/images/kubrickbgwide.jpg: Removed.
        * blog/wp-content/themes/webkit/images/kubrickfooter.jpg: Removed.
        * blog/wp-content/themes/webkit/images/kubrickheader.jpg: Removed.
        * blog/wp-content/themes/webkit/images/separator.png: Removed.
        * blog/wp-content/themes/webkit/images/webkit-background.png: Removed.
        * blog/wp-content/themes/webkit/index.php:
        * blog/wp-content/themes/webkit/page.php:
        * blog/wp-content/themes/webkit/search.php:
        * blog/wp-content/themes/webkit/sidebar.php:
        * blog/wp-content/themes/webkit/single.php:
        * blog/wp-content/themes/webkit/style.css:
        * building/build.html:
        * building/checkout.html:
        * coding/coding-style.html:
        * coding/contributing.html:
        * contact.html:
        * css: Added.
        * css/blue.css: Added.
        * css/gray.css: Added.
        * css/green.css: Added.
        * css/ie.css: Added.
        * css/main.css: Added.
        * css/pink.css: Added.
        * css/purple.css: Added.
        * css/yellow.css: Added.
        * footer.inc: Added.
        * header.inc: Added.
        * images/blue-background.png: Added.
        * images/blue-bullet.png: Added.
        * images/bluebanner.png: Removed.
        * images/download.png: Added.
        * images/end.png: Added.
        * images/gray-background.png: Added.
        * images/green-background.png: Added.
        * images/green-bullet.png: Added.
        * images/icon-gold.png: Added.
        * images/icon.png: Added.
        * images/ie-nav.png: Added.
        * images/middle.png: Added.
        * images/nav.png: Added.
        * images/pink-background.png: Added.
        * images/pink-bullet.png: Added.
        * images/purple-background.png: Added.
        * images/purple-bullet.png: Added.
        * images/separator.png: Removed.
        * images/webkit-background.png: Removed.
        * images/welcomeopen.gif: Removed.
        * images/yellow-background.png: Added.
        * images/yellow-bullet.png: Added.
        * index.html:
        * nav.inc: Added.
        * projects/accessibility/index.html:
        * projects/cleanup/index.html:
        * projects/compat/index.html:
        * projects/css/index.html:
        * projects/documentation/index.html:
        * projects/dom/index.html:
        * projects/editing/index.html:
        * projects/forms/index.html:
        * projects/html/index.html:
        * projects/index.html:
        * projects/javascript/index.html:
        * projects/layout/index.html:
        * projects/mathml/index.html:
        * projects/performance/index.html:
        * projects/plugins/index.html:
        * projects/portability/index.html:
        * projects/printing/index.html:
        * projects/svg/index.html:
        * projects/webkit/index.html:
        * projects/xml/index.html:
        * projects/xslt/index.html:
        * quality/bugpriorities.html:
        * quality/bugwriting.html:
        * quality/bugzilla.html:
        * quality/lifecycle.html:
        * quality/reduction.html:
        * quality/reporting.html:
        * quality/testing.html:
        * quality/testwriting.html:
        * sidebar.css: Removed.
        * sidebar.html: Removed.
        * webkitdev.css: Removed.

2006-02-15  Joost de Valk  <jdevalk@opendarwin.org>

        Reviewed by Tim H.

        Updated page to show 10.4.4 or 10.4.5
        Added support for recognizing Shiira.

        * quality/reporting.html:

2006-02-12  Joost de Valk  <jdevalk@opendarwin.org>

        Reviewed by eseidel.

        Added a little piece of text to the page about reductions, pointing to the bugzilla page.

        Changed "Sign up for a" into "Create a" bugzilla account.

        * quality/reduction.html:
        * quality/reporting.html:

2006-02-12  Joost de Valk  <jdevalk@opendarwin.org>

        Reviewed by Darin Adler.

        Added a Bugzilla page, which contains information about creating a Bugzilla account, what editbugs and canconfirm
        bits are and how to get them.

        Changed link in reporting page to link to Bugzilla page.

        * quality/bugzilla.html: Added.
        * quality/reporting.html:

2006-02-12  Joost de Valk  <jdevalk@opendarwin.org>

        Reviewed by eseidel.

        - Changed 10.2 paragraph to say Mac OS X instead of just OS X
        - Detabified the file.

        * quality/reporting.html:

2006-02-10  Darin Adler  <darin@apple.com>

        * index.html: Fixed a typo in a link.

2006-02-10  Darin Adler  <darin@apple.com>

        * building/checkout.html: Fixed a spelling mistake.

2006-02-10  Joost de Valk  <jdevalk@opendarwin.org>

        Reviewed and landed by Anders.

        http://bugs.webkit.org/show_bug.cgi?id=7164
        Code cleanup

        Changed <div id="banner" to <h1 id="banner"
        global cleanup of CSS and code

        * building/build.html:
        * building/checkout.html:
        * coding/coding-style.html:
        * coding/contributing.html:
        * contact.html:
        * index.html:
        * projects/accessibility/index.html:
        * projects/cleanup/index.html:
        * projects/compat/index.html:
        * projects/css/index.html:
        * projects/documentation/index.html:
        * projects/dom/index.html:
        * projects/editing/index.html:
        * projects/forms/index.html:
        * projects/html/index.html:
        * projects/index.html:
        * projects/javascript/index.html:
        * projects/layout/index.html:
        * projects/mathml/index.html:
        * projects/performance/index.html:
        * projects/plugins/index.html:
        * projects/portability/index.html:
        * projects/printing/index.html:
        * projects/svg/index.html:
        * projects/webkit/index.html:
        * projects/xml/index.html:
        * projects/xslt/index.html:
        * quality/bugpriorities.html:
        * quality/bugwriting.html:
        * quality/lifecycle.html:
        * quality/reduction.html:
        * quality/reporting.html:
        * quality/testing.html:
        * quality/testwriting.html:
        * webkitdev.css:

2006-02-09  Joost de Valk  <jdevalk@opendarwin.org>

        Reviewed by Darin Adler. Landed by ap.

        - fixes from http://bugs.webkit.org/show_bug.cgi?id=4871
        "Reporting Bugs" Page Should Prompt User To Test In Newest Version of WebKit

        * quality/reporting.html:
        * webkitdev.css: Added margin-bottom for li.

2006-02-07  Joost de Valk  <jdevalk@opendarwin.org>

        Reviewed by Darin Adler. Landed by Maciej.

        - Several fixes to the site
        http://bugs.webkit.org/show_bug.cgi?id=7105

        * blog/wp-content/themes/webkit/style.css:
        * index.html:
        * quality/bugwriting.html:
        * quality/reduction.html:
        * webkitdev.css:

2006-02-05  Eric Seidel  <eseidel@apple.com>

        Reviewed by darin.

        General update to SVG project page, also link to status page.

        * projects/svg/index.html:

2006-02-05  Eric Seidel  <eseidel@apple.com>

        Rubber stamped by darin.

        * projects/svg/status.xml: Added.
        * projects/svg/svg-status.css: Added.
        * projects/svg/svg-status.xsl: Added.

2006-02-05  Eric Seidel  <eseidel@apple.com>

        Adding ChangeLog :)

        * ChangeLog: Added.
