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.
        
        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.

        - 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.

        - 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.

        - 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.

        - 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.

        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.

        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.

        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.

        - 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.

        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.

        - 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.

        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.

        - 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.

        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.

        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.

        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.

        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. 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. 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.
