<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Surfin' Safari</title>
	<atom:link href="http://webkit.org/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://webkit.org/blog</link>
	<description>All about WebKit development</description>
	<lastBuildDate>Mon, 01 Feb 2010 18:29:27 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Nate Chapin is now a WebKit reviewer!</title>
		<link>http://webkit.org/blog/1040/nate-chapin-is-now-a-webkit-reviewer/</link>
		<comments>http://webkit.org/blog/1040/nate-chapin-is-now-a-webkit-reviewer/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 18:23:16 +0000</pubDate>
		<dc:creator>David Levin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[reviewers]]></category>

		<guid isPermaLink="false">http://webkit.org/blog/?p=1040</guid>
		<description><![CDATA[Nate got his start in WebKit with helping to upstream Javascript bindings for the Chromium port into WebKit. During that work, he learned much about WebKit style as well as getting to know the bindings quite well. Since then, he continued to do a prodigious amount with the bindings and improved them in many ways. [...]]]></description>
			<content:encoded><![CDATA[<p>Nate got his start in WebKit with helping to upstream Javascript bindings for the Chromium port into WebKit. During that work, he learned much about WebKit style as well as getting to know the bindings quite well. Since then, he continued to do a prodigious amount with the bindings and improved them in many ways. In addition, he also added <a href="http://webkit.org/blog/907/webkit-nightlies-support-html5-noreferrer-link-relation/">noreferrer support</a> and fixed bugs in a variety of areas such as the loader and plugin scripting.</p>
<p>Please join me in congratulating Nate on his reviewer status!</p>
]]></content:encoded>
			<wfw:commentRss>http://webkit.org/blog/1040/nate-chapin-is-now-a-webkit-reviewer/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Jeremy Orlow is now a WebKit reviewer!</title>
		<link>http://webkit.org/blog/1034/jeremy-orlow-is-now-a-webkit-reviewer/</link>
		<comments>http://webkit.org/blog/1034/jeremy-orlow-is-now-a-webkit-reviewer/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 02:14:01 +0000</pubDate>
		<dc:creator>David Levin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[reviewers]]></category>

		<guid isPermaLink="false">http://webkit.org/blog/?p=1034</guid>
		<description><![CDATA[Jeremy has done a lot of work on local storage and session storage within WebKit. Much of this brought it up to date with spec changes, but he also improved it by adding quota support and fixing many bugs. As part of the Chromium port, he also worked on its WebKit api and JavaScript bindings.
Please join [...]]]></description>
			<content:encoded><![CDATA[<p>Jeremy has done a lot of work on local storage and session storage within WebKit. Much of this brought it up to date with spec changes, but he also improved it by adding quota support and fixing many bugs. As part of the Chromium port, he also worked on its WebKit api and JavaScript bindings.</p>
<p>Please join me in congratulating Jeremy on his reviewer status!</p>
]]></content:encoded>
			<wfw:commentRss>http://webkit.org/blog/1034/jeremy-orlow-is-now-a-webkit-reviewer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ruby Rendering in WebKit</title>
		<link>http://webkit.org/blog/948/ruby-rendering-in-webkit/</link>
		<comments>http://webkit.org/blog/948/ruby-rendering-in-webkit/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 04:43:20 +0000</pubDate>
		<dc:creator>RolandSteiner</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://webkit.org/blog/?p=948</guid>
		<description><![CDATA[Introduction
From the W3C spec: The name &#8220;ruby&#8221; originated from the name of the 5.5 point font size in British printing, which is about half the 10 point font size commonly used for normal text.
A ruby annotation is a short piece of text in smaller font, written directly above or below or &#8211; with vertical text &#8211; [...]]]></description>
			<content:encoded><![CDATA[<h3 id="RubyIntro">Introduction</h3>
<p>From the W3C spec: <em>The name &#8220;<strong>ruby</strong>&#8221; originated from the name of the 5.5 point font size in British printing, which is about half the 10 point font size commonly used for normal text.</em></p>
<p>A ruby annotation is a short piece of text in smaller font, written directly above or below or &#8211; with vertical text &#8211; to either side of the base text. It is most often used in East Asian typography in order to provide further information. Most commonly it shows the pronounciation of Chinese characters. Another use case is in text books, to give the foreign spelling of a native word, or vice versa. In literary text or Manga ruby is also sometimes used to specify a variant pronunciation of the underlying characters, to add some depth or twist to the normal understanding. However, there is no reason to limit ruby to East Asian text. It can also be applied to other languages for much the same purpose: to specify annotations or give further context.</p>
<p>In this regard note that ruby is a typographic tag rather than a semantic tag like the <span style="color: #800080">&lt;abbr&gt;</span> or <span style="color: #800080">&lt;dfn&gt;</span> tags that may seem to fill a similar role &#8211; by using <span style="color: #800080">&lt;ruby&gt;</span> one specifies <em>how</em> the text is to be displayed rather than what its relation is to the base text.</p>
<h3>Ruby Tags</h3>
<p>The WebKit ruby implementation follows the <a id="orbb" title="To the HTML5 ruby specification" href="http://www.whatwg.org/specs/web-apps/current-work/#the-ruby-element" target="_blank">HTML5 spec</a> for the tags used. The tags themselves are rather simple:</p>
<div style="margin-left:1em">
<pre><span style="color: #800080">&lt;ruby&gt;</span><em> some base text</em> <span style="color: #800080">&lt;rp&gt;</span><em> ( </em><span style="color: #800080">&lt;/rp&gt;&lt;rt&gt;</span><em> annotation </em><span style="color: #800080">&lt;/rt&gt;&lt;rp&gt;</span><em> ) </em><span style="color: #800080">&lt;/rp&gt;&lt;/ruby&gt;</span></pre>
</div>
<p>where:</p>
<div style="margin-left:1em">
<table style="border-collapse: collapse" border="0" cellspacing="12" cellpadding="3" width="100%">
<tbody>
<tr style="text-align: left">
<td><span style="color: #800080">&lt;ruby&gt;</span></td>
<td>Encloses the whole annotated part of the text.</td>
</tr>
<tr style="text-align: left">
<td><span style="color: #800080">&lt;rt&gt;</span></td>
<td>Encloses the ruby text that is to appear in smaller font above the base text.</td>
</tr>
<tr style="text-align: left">
<td><span style="color: #800080">&lt;rp&gt;</span></td>
<td>Contains optional parentheses that appear if the user agent does not, in fact, render <span style="color: #800080">&lt;ruby&gt;</span>.</td>
</tr>
</tbody>
</table>
</div>
<p>Regarding the <span style="color: #800080">&lt;rp&gt;</span> tags: browsers that don&#8217;t &#8220;understand&#8221; ruby will just output the whole content as is, disregarding the unknown tags. This includes the opening and closing parentheses provided within the <span style="color: #800080">&lt;rp&gt;</span> tags, as shown in the following image:<br />
<img style="width: 379px;height: 44px" src="http://docs.google.com/File?id=dcgd8hk6_11f9rc77fc_b" alt="ruby with parentheses" /><br />
Browsers with ruby support, on the other hand, will ignore the contents of the <span style="color: #800080">&lt;rp&gt;</span> tags and place what is contained within the <span style="color: #800080">&lt;rt&gt;</span> tags in small print over the base text:<br />
<img style="width: 214px;height: 55px" src="http://docs.google.com/File?id=dcgd8hk6_12dgg5r5gj_b" alt="ruby rendered properly" /><br />
To give a different example, here is a sample text in Japanese annotated with English translations of the main words in Kanji characters:<br />
<img style="width: 224px;height: 58px" src="http://docs.google.com/File?id=dcgd8hk6_13cctd23fg_b" alt="ruby with English translations" /></p>
<h3 id="RubyState">Current State and Future Improvements</h3>
<p>The current implementation follows the outline described above and should satisfy all the basic usage for ruby. This does not mean that implementation can be considered complete &#8211; there are two main areas that deserve future attention: character spacing and positioning.</p>
<p><strong>Character spacing:</strong> Traditionally, in East Asian typography the characters that make up the ruby text annotation or (less commonly) the base text are spaced such that they line up cleanly.</p>
<p><strong>Positioning: </strong>It is sometimes desirable to have the ruby text be positioned below (i.e., &#8216;after&#8217; in HTML5 parlance) rather than above (&#8217;before&#8217;), or even in both places. One use case for the latter is in textbooks, e.g. to give a Japanese student both the Furigana reading of a particular Kanji word (usually displayed above the word) as well as the translation (usually below).</p>
<p>Both are addressed by the CSS3 spec, which is based off the XHTML ruby module. However, there are some small but significant differences between the HTML5 and CSS3 ruby specs. Most notably, HTML5 allows several spans of base text and annotations within a single <span style="color: #800080">&lt;ruby&gt;</span> element. This is useful to annotate several chinese characters in a row, e.g. (example taken from the HTML5 spec):</p>
<div style="margin-left:1em">
<pre><span style="color: #800080">&lt;ruby&gt;</span>
    漢<span style="color: #800080">&lt;rt&gt;</span> ㄏㄢˋ<span style="color: #800080">&lt;/rt&gt;</span>
    字 <span style="color: #800080">&lt;rt&gt;</span> ㄗˋ <span style="color: #800080">&lt;/rt&gt;</span>
<span style="color: #800080">&lt;/ruby&gt;</span></pre>
</div>
<p>The CSS3 ruby module on the other hand specifies a version of ruby called <em>complex</em> ruby, which separates ruby base text from annotations in a way similar to <span style="color: #800080">&lt;table&gt;</span>.  In the future we hope to bring these two conventions together cleanly.</p>
<h3 id="RubyCSS3">CSS3 Specifications</h3>
<p>For reference, CSS3 contains a few modules that more or less directly pertain to ruby rendering. Note that, as indicated above, the current implementation does <em>not</em> (yet) address these.</p>
<dl>
<dt><a title="CSS3 module 'ruby'" href="http://www.w3.org/TR/2003/CR-css3-ruby-20030514/" target="_blank">Ruby module</a></dt>
<dd>This is the main module concerning ruby.</dd>
<dt><a title="W3C Notes" href="http://www.w3.org/TR/2009/NOTE-jlreq-20090604/" target="_blank">Requirements on Japanese Text Layout</a></dt>
<dd>Has sections on ruby (probably more than you will ever want to know about ruby rendering), as well as general rendering guidelines for Japanese.</dd>
<dt><a title="CSS3 module 'linebox'" href="http://www.w3.org/TR/2002/WD-css3-linebox-20020515/" target="_blank">Line module</a></dt>
<dd>This module specifies the line-stacking-ruby property.</dd>
<dt><a title="CSS module 'text'" href="http://www.w3.org/TR/2007/WD-css3-text-20070306/" target="_blank">Text module</a></dt>
<dd>Although only marginally related to ruby, this contains additional rules for CJK line breaking.</dd>
</dl>
<h3 id="RubyVertical">Vertical Text</h3>
<p>Many East Asian scripts are traditionally written vertically rather than horizontally. Some of the conventions of ruby text stem from this tradition. Furthermore, with Chinese <a id="b7y8" title="Wikipedia article on Bopomofo" href="http://en.wikipedia.org/wiki/Bopomofo" target="_blank">Bopomofo/Zhuyin-Fuhao</a>, the ruby annotation may traditionally run vertically next to each character even for horizontal text (example from the CSS3 ruby spec):</p>
<p><img style="border-style: initial;border-color: initial" src="http://www.w3.org/TR/2003/CR-css3-ruby-20030514/bopomofo.gif" border="0" alt="" /></p>
<p>Note that as shown in the above example, this is complicated by the fact that tone markers are not to be rendered in the normal vertical text stream, but to the side of it.</p>
<p>Unfortunately, vertical text does not lend itself easily to seamless integration with the way web pages are rendered today. Addressing this shortcoming would not only help further improve the visual quality of ruby, but open up ways to give East Asian web pages a more natural look. However, implementation of this is a challenge that still lies ahead.</p>
]]></content:encoded>
			<wfw:commentRss>http://webkit.org/blog/948/ruby-rendering-in-webkit/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Shinichiro Hamaji is now a WebKit reviewer!</title>
		<link>http://webkit.org/blog/1012/shinichiro-hamaji-is-now-a-webkit-reviewer/</link>
		<comments>http://webkit.org/blog/1012/shinichiro-hamaji-is-now-a-webkit-reviewer/#comments</comments>
		<pubDate>Tue, 12 Jan 2010 18:42:45 +0000</pubDate>
		<dc:creator>David Levin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[reviewers]]></category>

		<guid isPermaLink="false">http://webkit.org/blog/?p=1012</guid>
		<description><![CDATA[In addition to various rendering and canvas bug fixes, Shinichiro has been a driving force in a large number of tool improvements. In particular, he started the WebKit style checker, which has helps identify many the basic style issues in patches which makes reviewers go smoother overall.
Please join me in congratulating Shinichiro on his reviewer [...]]]></description>
			<content:encoded><![CDATA[<p>In addition to various rendering and canvas bug fixes, Shinichiro has been a driving force in a large number of tool improvements. In particular, he started the WebKit style checker, which has helps identify many the basic style issues in patches which makes reviewers go smoother overall.</p>
<p>Please join me in congratulating Shinichiro on his reviewer status!</p>
]]></content:encoded>
			<wfw:commentRss>http://webkit.org/blog/1012/shinichiro-hamaji-is-now-a-webkit-reviewer/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Laszlo Gombos is now a WebKit reviewer!</title>
		<link>http://webkit.org/blog/1010/laszlo-gombos-is-now-a-webkit-reviewer/</link>
		<comments>http://webkit.org/blog/1010/laszlo-gombos-is-now-a-webkit-reviewer/#comments</comments>
		<pubDate>Wed, 16 Dec 2009 10:17:12 +0000</pubDate>
		<dc:creator>Gustavo Noronha</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://webkit.org/blog/?p=1010</guid>
		<description><![CDATA[Laszlo Gombos is the driving force behind the port of WebKit to the Symbian platform. In addition he has contributed to the Qt port&#8217;s API and is constantly watching out for opportunities to remove dead code and clean up build systems.
Please join me in congratulating Laszlo on his reviewer status
]]></description>
			<content:encoded><![CDATA[<p>Laszlo Gombos is the driving force behind the port of WebKit to the Symbian platform. In addition he has contributed to the Qt port&#8217;s API and is constantly watching out for opportunities to remove dead code and clean up build systems.</p>
<p>Please join me in congratulating Laszlo on his reviewer status</p>
]]></content:encoded>
			<wfw:commentRss>http://webkit.org/blog/1010/laszlo-gombos-is-now-a-webkit-reviewer/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WebGL Draft Specification Now Available</title>
		<link>http://webkit.org/blog/919/webgl-draft-specification-now-available/</link>
		<comments>http://webkit.org/blog/919/webgl-draft-specification-now-available/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 17:20:55 +0000</pubDate>
		<dc:creator>Chris Marrin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://webkit.org/blog/?p=919</guid>
		<description><![CDATA[After many months of hard work, the WebGL Working Group has released its draft specification to the public. If you read my previous post about WebGL support in WebKit you&#8217;ll know that WebKit has supported WebGL for a couple of months. But until now the spec itself has not been publicly available. Now it is [...]]]></description>
			<content:encoded><![CDATA[<p>After many months of hard work, the WebGL Working Group has <a href="https://cvs.khronos.org/svn/repos/registry/trunk/public/webgl/doc/spec/WebGL-spec.html">released its draft specification</a> to the public. If you read my previous post about <a href="http://webkit.org/blog/603/webgl-now-available-in-webkit-nightlies/">WebGL support in WebKit</a> you&#8217;ll know that WebKit has supported WebGL for a couple of months. But until now the spec itself has not been publicly available. Now it is up for review and comment at its own <a href="http://webgl.org">public site</a>. In addition to the spec, the new site has plenty of tutorials, demos and links to tell you all about what&#8217;s happening with WebGL. </p>
<p>So head over to  <a href="http://webgl.org">the WebGL site</a> and check it out, then join us on the mailing list, forum or IRC channel to keep up to date with WebGL.</p>
]]></content:encoded>
			<wfw:commentRss>http://webkit.org/blog/919/webgl-draft-specification-now-available/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dirk Schulze is now a WebKit reviewer!</title>
		<link>http://webkit.org/blog/916/dirk-schulze-is-now-a-webkit-reviewer/</link>
		<comments>http://webkit.org/blog/916/dirk-schulze-is-now-a-webkit-reviewer/#comments</comments>
		<pubDate>Thu, 03 Dec 2009 17:31:31 +0000</pubDate>
		<dc:creator>Gustavo Noronha</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://webkit.org/blog/?p=916</guid>
		<description><![CDATA[Dirk Schulze, also known as krit has done a great work on the cairo graphics context implementation, and is also the main developer behind the SVG filters implementation, which is hopefully nearing its debut, making WebKit fully implement SVG 1.1, and making it possible to represent many of the more complex features of painting in [...]]]></description>
			<content:encoded><![CDATA[<p>Dirk Schulze, also known as <em>krit</em> has done a great work on the cairo graphics context implementation, and is also the main developer behind the SVG filters implementation, which is hopefully nearing its debut, making WebKit fully implement SVG 1.1, and making it possible to represent many of the more complex features of painting in cairo-based ports.</p>
<p>Join me in congratulating Dirk on his reviewer status!</p>
]]></content:encoded>
			<wfw:commentRss>http://webkit.org/blog/916/dirk-schulze-is-now-a-webkit-reviewer/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>WebKit nightlies support HTML5 noreferrer link relation</title>
		<link>http://webkit.org/blog/907/webkit-nightlies-support-html5-noreferrer-link-relation/</link>
		<comments>http://webkit.org/blog/907/webkit-nightlies-support-html5-noreferrer-link-relation/#comments</comments>
		<pubDate>Thu, 19 Nov 2009 17:18:16 +0000</pubDate>
		<dc:creator>Nate Chapin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://webkit.org/blog/?p=907</guid>
		<description><![CDATA[WebKit nightlies now support the HTML5 noreferrer link relation, a neat little feature that allows web developers to prevent browsers from sending the Referrer: header when navigating either &#60;a&#62; or &#60;area&#62; elements.  Just add noreferrer in the rel attribute of a link like so:
&#60;a href="www.example.com" rel="noreferrer"&#62;noreferrer!&#60;/a&#62;
When example.com receives the HTTP request generated by clicking this [...]]]></description>
			<content:encoded><![CDATA[<p>WebKit nightlies now support the HTML5 <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/links.html#link-type-noreferrer">noreferrer link relation</a>, a neat little feature that allows web developers to prevent browsers from sending the Referrer: header when navigating either &lt;a&gt; or &lt;area&gt; elements.  Just add noreferrer in the rel attribute of a link like so:</p>
<p><code>&lt;a href="www.example.com" rel="noreferrer"&gt;noreferrer!&lt;/a&gt;</code></p>
<p>When example.com receives the HTTP request generated by clicking this link, the HTTP Referer field will be empty, as if the user had navigated from about:blank.</p>
<p>When rel=&#8221;noreferrer&#8221; is used in conjunction with target=&#8221;_blank&#8221;, WebKit will also set the window.opener attribute to null.  This usage is interpreted as a request from the web page author that any scripts on the destination page should be run in a new context, even if the destination page would normally be considered to be of the same origin.</p>
<p>The noreferrer link relation is one of <a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/links.html#linkTypes">many link relations</a> defined in the HTML5 spec, and the first to be implemented in WebKit.  We hope it will make life a little easier for web developers who have concerns about user privacy and security.</p>
]]></content:encoded>
			<wfw:commentRss>http://webkit.org/blog/907/webkit-nightlies-support-html5-noreferrer-link-relation/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Kenneth Rohde Christiansen is now a WebKit reviewer!</title>
		<link>http://webkit.org/blog/901/kenneth-rohde-christiansen-is-now-a-webkit-reviewer/</link>
		<comments>http://webkit.org/blog/901/kenneth-rohde-christiansen-is-now-a-webkit-reviewer/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 17:59:05 +0000</pubDate>
		<dc:creator>Gustavo Noronha</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://webkit.org/blog/?p=901</guid>
		<description><![CDATA[Kenneth has been participating in WebKit development since late 2008, when he started the initial EFL port. Since early 2009 he has contributed a great deal on all fronts of the Qt port, including WebCore integration and API. He has also played an important role in making sure the GTK+ and Qt ports work together [...]]]></description>
			<content:encoded><![CDATA[<p>Kenneth has been participating in WebKit development since late 2008, when he started the initial EFL port. Since early 2009 he has contributed a great deal on all fronts of the Qt port, including WebCore integration and API. He has also played an important role in making sure the GTK+ and Qt ports work together wherever possible.</p>
<p>Please join me in congratulating Kenneth on his reviewer status!</p>
]]></content:encoded>
			<wfw:commentRss>http://webkit.org/blog/901/kenneth-rohde-christiansen-is-now-a-webkit-reviewer/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Web Inspector Updates</title>
		<link>http://webkit.org/blog/829/web-inspector-updates/</link>
		<comments>http://webkit.org/blog/829/web-inspector-updates/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 02:13:28 +0000</pubDate>
		<dc:creator>Joseph Pecoraro</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://webkit.org/blog/?p=829</guid>
		<description><![CDATA[A number of exciting new features have been added to the Web Inspector since our last update. Today we would like to highlight some of those features! This post is also available in Japanese (日本語), thanks to Keishi Hattori (服部慶士).
If you would like to play with most of these features you will need to be [...]]]></description>
			<content:encoded><![CDATA[<p>A number of exciting new features have been added to the Web Inspector since our <a href="/blog/197/web-inspector-redesign/">last update</a>. Today we would like to highlight some of those features! This post is also available in <a href="http://trac.webkit.org/wiki/Web%20Inspector%20Update.ja">Japanese (日本語)</a>, thanks to Keishi Hattori (服部慶士).</p>
<p>If you would like to play with most of these features you will need to be running a recent <a href="http://nightly.webkit.org/">WebKit Nightly</a>. Once downloaded make sure that you enable the Web Inspector by checking “Show Develop menu in menu bar” under the Advanced tab in the Preferences.</p>
<p><a class="image" href="/blog-files/inspector/enable.png"><img src="/blog-files/inspector/enable.png" alt="Enabling the Inspector in Preferences" /></a></p>
<h3 id="editing">Editing Element Attributes and Style Properties <a href="#editing">#</a></h3>
<p>Editing Element Attributes and Style Properties has been made even simpler and more developer friendly. The interfaces for editing attributes and properties now support tabbing to allow you to move between items, and create new items with ease.</p>
<p>Besides tabbing you can also add a new attributes to a node.  Start by hovering over the node in the Element’s Tree Hierarchy and after a polite wait a clickable template for a new attribute will appear.</p>
<p><a class="image" href="/blog-files/inspector/edit_attributes.png"><img src="/blog-files/inspector/edit_attributes.png" alt="Edit Element Attributes" /></a></p>
<p>Related Bug Reports: <a class="bug" href="https://bugs.webkit.org/show_bug.cgi?id=21108">Add Element Attributes</a>, <a class="bug" href="https://bugs.webkit.org/show_bug.cgi?id=27673">Tabbing</a>, and <a class="bug" href="https://bugs.webkit.org/show_bug.cgi?id=30057">Improved UI</a>.</p>
<h3 id="css_selectors">Creating and Modifying CSS Rules and Selectors <a href="#css_selectors">#</a></h3>
<p>A powerful new feature in the Web Inspector allows you create new or modify existing CSS Rules and Selectors. We expect both developers and designers will find this very useful when experimenting with new ideas or tweaking existing designs.</p>
<p>The interface for working with selectors starts with a new Gear Menu in the Styles Sidebar Pane. Select “New Style Rule” and a new section will be created for you, pre-populated with an intelligent selector from the selection in the Elements Tree Hierarchy. Editing selectors is activated by double-clicking. Once again, tabbing will allow you to navigate between selectors and their properties.</p>
<p>When editing selectors there is visual feedback when you create or modify a selector that does not affect the selected node in the Elements Tree Hierarchy. This indicator helps detect errors when making changes.</p>
<p><a class="image" href="/blog-files/inspector/css_selectors.png"><img src="/blog-files/inspector/css_selectors.png" alt="Create and Modify CSS Selectors" /></a></p>
<p>One more tweak to the Styles Pane is that there is always a section for the selected node’s style attribute. This allows you to easily add style information to the node as you usually would via the Styles Pane instead of editing or creating a “style” attribute. This section is nearly always on top due to how CSS specificity works.</p>
<p>Related Bug Reports: <a class="bug" href="https://bugs.webkit.org/show_bug.cgi?id=27124">Selectors Support</a> and <a class="bug" href="https://bugs.webkit.org/show_bug.cgi?id=29039">Move to Gear Menu</a>.</p>
<h3 id="colors">CSS Color Representations <a href="#colors">#</a></h3>
<p>Colors in the Styles Pane can be shown in any of their possible representations. For simple colors this includes short hex, full hex, rgb, hsl, and potentially a nickname. For advanced colors this includes rgba and hsla. For example the color “white” can be represented as: <code>#FFF</code>, <code>#FFFFFF</code>, <code>rgb(255, 255, 255)</code>, <code>hsl(0, 100%, 100%)</code>, and <code>white</code>.</p>
<p>You can use the Styles Pane’s Gear Menu to set your preferred representation. However, if you want to cycle through an individual color’s different representations you can do so by clicking on its associated color swatch.</p>
<p><a class="image" href="/blog-files/inspector/colors.png"><img src="/blog-files/inspector/colors.png" alt="Mutiple Color Representations" /></a></p>
<p>Related Bug Reports: <a class="bug" href="https://bugs.webkit.org/show_bug.cgi?id=13516">Color Representations</a>, <a class="bug" href="https://bugs.webkit.org/show_bug.cgi?id=28889">Preference and Gear Menu</a>, and <a class="bug" href="https://bugs.webkit.org/show_bug.cgi?id=28978">UI Improvement</a>.</p>
<h3 id="dom_storage">DOM Storage <a href="#dom_storage">#</a></h3>
<p>The Storage Panel (formerly the Databases Panel) now allows you to monitor DOM Storage areas like <code>localStorage</code> and <code>sessionStorage</code> in a familiar datagrid. The DOM Storage datagrid displays live updates so monitoring changes is possible without manually refreshing the view.</p>
<p>Also, the familiar creation and editing techniques apply to the datagrid. To add a new key/value pair just double-click in any open area, or double-click an existing item to start editing. Tabbing works as you would expect.</p>
<p><a class="image" href="/blog-files/inspector/dom_storage.png"><img src="/blog-files/inspector/dom_storage.png" alt="Observing DOM Storage Key/Value Pairs" /></a></p>
<p>Related Bug Reports: <a class="bug" href="https://bugs.webkit.org/show_bug.cgi?id=21051">DOM Storage Support</a>, <a class="bug" href="https://bugs.webkit.org/show_bug.cgi?id=27400">Live Updates</a>, <a class="bug" href="https://bugs.webkit.org/show_bug.cgi?id=27322">Create New Items</a>, and <a class="bug" href="https://bugs.webkit.org/show_bug.cgi?id=27746">Tabbing</a>.</p>
<h3 id="keyboard_shortcuts">Keyboard Shortcuts <a href="#keyboard_shortcuts">#</a></h3>
<p>Keyboard shortcuts are always desired by developers. They can be hard to discover, so <a href="http://trac.webkit.org/wiki/Web%20Inspector#ShortcutKeys">here is a complete list</a> and here are the ones that were added recently:</p>
<ul>
<li><strong>Switch Panels</strong> — <span>Command-[</span> and <span>Command-]</span> on a Mac or <span>Control-[</span> and <span>Control-]</span> on other platforms.</li>
<li><strong>Delete a Node in the Tree Hierarchy</strong> — either <span>Delete</span> or <span>Backspace</span> keys will do the trick.</li>
<li><strong>Quick Edits in the Tree Hierarchy</strong> — Hitting <span>Enter</span> or <span>Return</span> on a Node in the Tree enters the editing mode for that type of Node.  For a Text Node you will start editing the content.  For Element Nodes you start editing the first attribute, or, for convenience, a new attribute will be added for you.</li>
</ul>
<p>The Scripts Debugger was updated to support some popular keyboard shortcuts:</p>
<ul>
<li><strong>Continue</strong> — <span>F8</span> or <span>Command-/</span> on a Mac or <span>Control-/</span> on other platforms.</li>
<li><strong>Step Over</strong> — <span>F10</span> or <span>Command-&#8217;</span> on a Mac or <span>Control-&#8217;</span> on other platforms.</li>
<li><strong>Step Into</strong> — <span>F11</span> or <span>Command-;</span> on a Mac or <span>Control-;</span> on other platforms.</li>
<li><strong>Step Out</strong> — <span>Shift-F11</span> or <span>Shift-Command-;</span> on a Mac or <span>Shift-Control-;</span> on other platforms.</li>
<li><strong>Next Call Frame</strong> — <span>Control-.</span> on all platforms.</li>
<li><strong>Previous Call Frame</strong> — <span>Control-,</span> on all platforms.</li>
<li><strong>Evaluate Selection When on a Breakpoint</strong> — <span>Shift-Command-E</span> on a Mac or <span>Shift-Control-E on other platforms.</span></li>
</ul>
<p>Related Bug Reports: <a class="bug" href="https://bugs.webkit.org/show_bug.cgi?id=27286">Switch Panels</a>, <a class="bug" href="https://bugs.webkit.org/show_bug.cgi?id=30337">Delete Node</a>, <a class="bug" href="https://bugs.webkit.org/show_bug.cgi?id=30428">Quick Edit</a>, <a href="https://bugs.webkit.org/show_bug.cgi?id=23849">General Debugger Shortcuts</a> and <a href="https://bugs.webkit.org/show_bug.cgi?id=27502">Evaluate Selection</a>.</p>
<h3 id="cookies">Cookies <a href="#cookies">#</a></h3>
<p>Viewing Cookie information is now possible under the Storage Panel. Supported platforms show all of the cookies and their hidden information for all domains accessed on the inspected page. Cookie information includes the name, value, path, expiration date, http only flag, and secure (https) flag. Supported platforms may also delete cookies.</p>
<p>If your platform doesn’t have full support you aren’t left in the dark. You will still be able to see the keys and values of the cookies that are accessible via JavaScript on the inspected page.</p>
<p><a class="image" href="/blog-files/inspector/cookies.png"><img src="/blog-files/inspector/cookies.png" alt="Inspect Hidden Cookie Information" /></a></p>
<p>Related Bug Reports: <a class="bug" href="https://bugs.webkit.org/show_bug.cgi?id=27202">Initial Support</a>, <a class="bug" href="https://bugs.webkit.org/show_bug.cgi?id=28269">Hidden Data 1</a> and <a class="bug" href="https://bugs.webkit.org/show_bug.cgi?id=28185">2</a>, <a class="bug" href="https://bugs.webkit.org/show_bug.cgi?id=30104">Cookies for Sub-Resources</a>, and <a class="bug" href="https://bugs.webkit.org/show_bug.cgi?id=30036">UI Improvements</a></p>
<h3 id="event_listeners">Event Listeners <a href="#event_listeners">#</a></h3>
<p>A new Sidebar Pane has been added to the Elements Panel which displays the registered Event Listeners for the selected node.  The Event Listeners that are shown for the selected node are in the exact order that they are fired through the Capturing and Bubbling phases.  This provides developers with the most accurate and useful information possible.</p>
<p>The user interface shows the registered Event Listeners separated by type. If a node has both “onclick” and “onmouseover” listeners then they will naturally appear in different sections. You can also set your filter preference using the Gear Menu. You can choose to see only the listeners registered on the selected node, or the entire event flow.</p>
<p><a class="image" href="/blog-files/inspector/event_listeners.png"><img src="/blog-files/inspector/event_listeners.png" alt="Inspect Registered Event Listeners" /></a></p>
<p>We are actively looking for UI improvements in this area. So if you have some ideas or feedback please feel free to let us know on <a href="https://bugs.webkit.org/show_bug.cgi?id=29789">this bug report</a>!</p>
<p>Related Bug Reports: <a class="bug" href="https://bugs.webkit.org/show_bug.cgi?id=17429">Event Listeners</a>.</p>
<h3 id="syntax_highlighting">Syntax Highlighting <a href="#syntax_highlighting">#</a></h3>
<p>Syntax highlighting enhances readability, makes debugging code easier, and looks really awesome. The Web Inspector now includes syntax highlighting for JSON and CSS.</p>
<p><a class="image" href="/blog-files/inspector/css_syntax_highlight.png"><img src="/blog-files/inspector/css_syntax_highlight.png" alt="CSS Syntax Highlighting" /></a></p>
<p>CSS Syntax Highlighting even works on the more complex “at-rules” such as <code>@import</code>, <code>@media</code> and <code>@font-face</code>. In addition to supporting the syntax highlighting in the Resources Panel, inline scripts and styles in the Elements Tree Hierarchy are syntax highlighted!</p>
<p><a class="image" href="/blog-files/inspector/inline_highlight.png"><img src="/blog-files/inspector/inline_highlight.png" alt="Inline JavaScript and CSS Syntax Highlighting" /></a></p>
<p>Related Bug Reports: <a class="bug" href="https://bugs.webkit.org/show_bug.cgi?id=27503">JSON Highlighting</a>, <a class="bug" href="https://bugs.webkit.org/show_bug.cgi?id=14359">CSS Highlighting</a>, and <a class="bug" href="https://bugs.webkit.org/show_bug.cgi?id=30062">Inline Highlighting</a>.</p>
<h3 id="breakpoints">Breakpoints and Watch Expressions <a href="#breakpoints">#</a></h3>
<p>The Script Debugger continues to become more powerful and more useful.  We already mentioned the <a href="#keyboard_shortcuts">keyboard shortcuts</a> above, but there are plenty of other enhancements.</p>
<p><span style="background-color: #ffffff">There is a new Breakpoints Sidebar Pane that allows you to easily monitor and work with your breakpoints across all files without the hassle of searching for them.  Each sidebar entry shows the source line and contains a checkbox that allows you to directly enable or disable the breakpoint. Clicking on the entry will jump you directly to the highlighted line in the source file. Finally, deleting a breakpoint has been made easier by clicking the &#8220;blue tag&#8221; breakpoint indicator.  The tag will cycle through its three states of active, inactive, and removed.</span></p>
<p>A powerful feature added to the debugger is Conditional Breakpoints. Once you have a breakpoint set, right click on the &#8220;blue tag&#8221; breakpoint indicator and you will get a popup asking for a conditional statement for that breakpoint. Simply provide an expression and the breakpoint will only pause from then on only if the condition is true.</p>
<p><a class="image" href="/blog-files/inspector/breakpoints.png"><img src="/blog-files/inspector/breakpoints.png" alt="Breakpoints and other Debugging Improvements" /></a></p>
<p>Another new feature in the Debugger is Watch Expressions.  In this new Sidebar Pane you can add any number of expressions that evaluate in the global scope normally but in the local scope when paused in the debugger. Once added you get the full Object Properties tree view of the values of each expression.  These watch expressions automatically refresh when the debugger pauses. They are also persist across page loads.</p>
<p><a class="image" href="/blog-files/inspector/watched_expression.png"><img src="/blog-files/inspector/watched_expression.png" alt="Watched Expressions in Action" /></a></p>
<p>Related Bug Reports: <a href="https://bugs.webkit.org/show_bug.cgi?id=11175">Breakpoints Sidebar Pane</a>, <a class="bug" href="https://bugs.webkit.org/show_bug.cgi?id=27514">Watch Expressions</a>, <a class="bug" href="https://bugs.webkit.org/show_bug.cgi?id=27502">Evaluate on Breakpoint</a>, <a href="https://bugs.webkit.org/show_bug.cgi?id=28908">Conditional Breakpoints</a>, and <a class="bug" href="https://bugs.webkit.org/show_bug.cgi?id=19131">Delete Breakpoints</a>.</p>
<h3 id="ajax">Debugging AJAX <a href="#ajax">#</a></h3>
<p>An extremely valuable feature for developers working with AJAX is the ability to view the exact parameters and payload sent on XMLHttpRequests.</p>
<p>In the individual resource view there are new sections for viewing submitted Form Data, Query String Parameters, and Request Payloads when appropriate. You can toggle viewing the information in its unencoded (default) and encoded forms with a double-click.</p>
<p>There is also new section named HTTP Information which contains the Request Method (GET, POST, etc.) and the Status Code (200, 404, etc.). Additionally, it adds a colored dot next to the requested URL to show the status (green for success, orange for redirect, and red for error).</p>
<p><a class="image" href="/blog-files/inspector/form_data.png"><img src="/blog-files/inspector/form_data.png" alt="View Submitted Form Data and HTTP Information" /></a></p>
<p>Related Bug Reports: <a class="bug" href="https://bugs.webkit.org/show_bug.cgi?id=19945">HTTP Status Code</a> and <a class="bug" href="https://bugs.webkit.org/show_bug.cgi?id=22920">Data, Parameters, and Payload</a></p>
<h3 id="scope_bars">Resources and Console Scope Bars <a href="#scope_bars">#</a></h3>
<p>In order to filter through the Resources or Console messages the Web Inspector now sports some familiar Scope Bars. This has proven to be very useful in the Resources Panel for easily viewing all resources of a particular type.</p>
<p><a class="image" href="/blog-files/inspector/scope_bar.png"><img src="/blog-files/inspector/scope_bar.png" alt="Quick Filtering Scope Bars for Resources Types and Console Message Types" /></a></p>
<p>Related Bug Reports: <a class="bug" href="https://bugs.webkit.org/show_bug.cgi?id=20629">Resources Scope Bar</a> and <a class="bug" href="https://bugs.webkit.org/show_bug.cgi?id=29195">Console Scope Bars</a>.</p>
<h3 id="load_lines">Resources Timeline <a href="#load_lines">#</a></h3>
<p>The Web Inspector now specifically shows in the timeline when the DOMContentLoaded and Load events fire. This helps clarify the time it takes for pages to load and helps you improve your websites load times.</p>
<p><a class="image" href="/blog-files/inspector/load_lines.png"><img src="/blog-files/inspector/load_lines.png" alt="DOMContent Ready Event and Page's Load Event Indicators" /></a></p>
<p>Related Bug Reports: <a class="bug" href="https://bugs.webkit.org/show_bug.cgi?id=14370">Show Load Lines</a></p>
<h3 id="resource_interactivity">Resources Interactivity <a href="#resource_interactivity">#</a></h3>
<p>A couple new features allow you to more directly access individual resources from within the Web Inspector. Instead of copying their URL and opening a new tab manually you can now double-click the Resource in the sidebar to open it directly in a new window. Or, you can drag and drop the resource using HTML5 drag and drop events!</p>
<p>Related Bug Reports: <a class="bug" href="https://bugs.webkit.org/show_bug.cgi?id=14409">Open Resource Directly</a> and <a class="bug" href="https://bugs.webkit.org/show_bug.cgi?id=30079">Drag and Drop</a>.</p>
<h3 id="console_improvements">Console Improvements <a href="#console_improvements">#</a></h3>
<p>Properties in the Web Inspector’s Console are now sorted in a much more natural and useful way. By sorting keys alphanumerically Arrays with greater then 10 elements are much easier to work with.</p>
<p><a class="image" href="/blog-files/inspector/inorder.png"><img src="/blog-files/inspector/inorder.png" alt="Alphanumeric Sorting" /></a></p>
<p>Another tweak is that collections such as NodeLists and HTMLCollections are now displayed like Arrays.  This meaning that their contents are shown directly in the console, no longer requiring any extra boilerplate.</p>
<p><a class="image" href="/blog-files/inspector/nodelist.png"><img src="/blog-files/inspector/nodelist.png" alt="More Descriptive Nodelists" /></a></p>
<p>Related Bug Reports: <a class="bug" href="https://bugs.webkit.org/show_bug.cgi?id=27329">Sorting</a> and <a class="bug" href="https://bugs.webkit.org/show_bug.cgi?id=28061">NodeLists</a>.</p>
<h3 id="firebug_api">Firebug Command API Improvements <a href="#firebug_api">#</a></h3>
<p>More improvements have been made to support more of the <a href="http://getfirebug.com/commandline.html">Firebug Command Line API</a>. The Web Inspector now supports the <code>inspect()</code> function, which can take an Element, Database, or Storage area and automatically jumps to the appropriate Panel with information. Also, the <code>$0</code>-<code>$4</code> variables contain the current and previous selected nodes from the Elements Tree Hierarchy.</p>
<p>These command line APIs are usable inside the Web Inspector’s Console. To make working with these APIs even easier, they now show up in the Console’s autocompletion.</p>
<p>Related Bug Reports: <a class="bug" href="https://bugs.webkit.org/show_bug.cgi?id=17907">$# Variables</a>, <a class="bug" href="https://bugs.webkit.org/show_bug.cgi?id=19874">inspect() Function</a>, and <a class="bug" href="https://bugs.webkit.org/show_bug.cgi?id=27696">Autocompletion</a>.</p>
<h3 id="contribute">How You Can Contribute <a href="#contribute">#</a></h3>
<p>Many of these new features were added by members of the Open Source Community. We would like to encourage you to contribute as well! Since the Web Inspector itself is mostly HTML, JavaScript, and CSS that means that you already have the skills you need to join in! Interested? Play around right now by inspecting the inspector itself!</p>
<p><a class="image" href="/blog-files/inspector/inspect_inspector.png"><img src="/blog-files/inspector/inspect_inspector_small.png" alt="Work on the Web Inspector using the Web Inspector!" /></a></p>
<p>If you’re interested in contributing and have any questions please stop by the <a href="irc://irc.freenode.net/#webkit-inspector">#webkit-inspector</a> IRC channel! As an encouragement to developers, included at the end of each section above are the core bug reports that were involved in bringing each of these features to life.</p>
<p>Finally, if you have ideas for new features, any improvements, or if you’ve stumbled across a bug then please don’t hesitate to create a bug report. <a href="http://webkit.org/new-inspector-bug">This link</a> has pre-populated most of the fields so that you only need to fill out the Summary and Description. As always you should do a quick search through the <a href="http://bit.ly/RDwz2">existing inspector bugs</a> first.</p>
]]></content:encoded>
			<wfw:commentRss>http://webkit.org/blog/829/web-inspector-updates/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
	</channel>
</rss>
