<?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>/dev/null &#187; Chrome</title>
	<atom:link href="http://www.nulldevice.de/tag/chrome/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.nulldevice.de</link>
	<description>Elite is stupid. Back to the roots.</description>
	<lastBuildDate>Thu, 15 Jul 2010 09:39:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Chrome Bug Tester</title>
		<link>http://www.nulldevice.de/2009/09/chrome-bug-tester/</link>
		<comments>http://www.nulldevice.de/2009/09/chrome-bug-tester/#comments</comments>
		<pubDate>Thu, 10 Sep 2009 16:06:50 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.nulldevice.de/?p=1027</guid>
		<description><![CDATA[What these tests do, is basically constructing Arrays and one Object (in the last test), and then output the data using a &#8220;for(var i in array)&#8221; loop. All browsers do handle objects and arrays as expected and return the data in the original order, just Google Chrome fails. That means there is no way to [...]]]></description>
			<content:encoded><![CDATA[<p>What these tests do, is basically constructing Arrays and one Object (in the last test), and then output the data using a &#8220;for(var i in array)&#8221; loop. All browsers do handle objects and arrays as expected and return the data in the original order, just Google Chrome fails. That means there is no way to store data in a certain order in Chrome, if you don&#8217;t want to loop over it with &#8220;for(var i = 0; i < array.length; i++)", which can result in significant code and/or processing overhead for a number of reasons.</p>
<p>If all tests are green, they passed. Red results indicate failures:</p>
<p><iframe src="/js/chrome.html" width="250" height="380"</iframe></p>
<p>Especially this comment in JavaScriptCore (Apple Safari), indicates that all browsers should preserve the order of data, as this is a de-facto standard:</p>
<p>// lastIndexUsed is an ever-increasing index used to identify the order items<br />
// were inserted into the property map. It&#8217;s required that getEnumerablePropertyNames<br />
// return the properties in the order they were added for compatibility with other<br />
// browsers&#8217; JavaScript implementations.</p>
<p>The ultimate reason behind the behavior of Chrome seems to be that a NumberDictionary is used for certain array/object keys and a StringDictionary for others (handles.cc line 554):<br />
// Compute the element keys.<br />
element_keys = Factory::NewFixedArray(current->NumberOfEnumElements());<br />
current->GetEnumElementKeys(*element_keys);<br />
content = UnionOfKeys(content, element_keys);<br />
content = UnionOfKeys(content, GetEnumPropertyKeys(current));</p>
<p>Also the many type casts do look scary to me =)</p>
<p>Sure you could use non-numeric attributes only, but those are normally part of the inline cache. To cache offsets of arbitrary arrays does not make a lot of sense. The JavaScriptCode devs recognized just that and made it right.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nulldevice.de/2009/09/chrome-bug-tester/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Object property ordering in Google Chrome</title>
		<link>http://www.nulldevice.de/2009/09/object-property-ordering-in-google-chrome/</link>
		<comments>http://www.nulldevice.de/2009/09/object-property-ordering-in-google-chrome/#comments</comments>
		<pubDate>Sun, 06 Sep 2009 22:26:37 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Safari]]></category>

		<guid isPermaLink="false">http://www.nulldevice.de/?p=1021</guid>
		<description><![CDATA[Today, I prepared for the upcoming PHP/JS conferences and had a look at the mysterious bug #883 of Google Chrome and those related to it. Also I read though SquirrelFish source, which is used by Safari 4. The reason for the odd behavior of Chrome seems to be a if/else construct that is repeated throughout [...]]]></description>
			<content:encoded><![CDATA[<p>Today, I prepared for the upcoming PHP/JS conferences and had a look at the mysterious bug #883 of Google Chrome and those related to it. Also I read though SquirrelFish source, which is used by Safari 4.</p>
<p>The reason for the odd behavior of Chrome seems to be a if/else construct that is repeated throughout the source of runtime.cc:<br />
<code><br />
// Check if the name is trivially convertible to an index and get<br />
// the element if so.<br />
if (name-&gt;AsArrayIndex(&amp;index)) {<br />
return GetElementOrCharAt(object, index);<br />
} else {<br />
PropertyAttributes attr;<br />
return object-&gt;GetProperty(*name, &amp;attr);<br />
}<br />
</code></p>
<p>Chrome makes a difference between properties and elements. And they do weird type casts. If you check JavaScriptCore, you see there is a better way:<br />
<code><br />
inline JSValue JSObject::get(ExecState* exec, const Identifier&#038; propertyName) const<br />
{<br />
    PropertySlot slot(this);<br />
    if (const_cast<jsobject *>(this)->getPropertySlot(exec, propertyName, slot))<br />
        return slot.getValue(exec, propertyName);</p>
<p>    return jsUndefined();<br />
}<br />
</jsobject></code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.nulldevice.de/2009/09/object-property-ordering-in-google-chrome/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Update on object property reordering in Google Chrome</title>
		<link>http://www.nulldevice.de/2008/10/update-on-object-property-reordering-in-google-chrome/</link>
		<comments>http://www.nulldevice.de/2008/10/update-on-object-property-reordering-in-google-chrome/#comments</comments>
		<pubDate>Wed, 29 Oct 2008 12:26:24 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Bug]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.nulldevice.de/?p=946</guid>
		<description><![CDATA[Iterating over an objects properties can result in a seemingly random order, it&#8217;s always the same order in Chrome, but in a different order for other browsers. I posted this as bug #223 a couple of weeks ago. John Resig posted the same issue as ticket #883 a day later. It was confirmed in the [...]]]></description>
			<content:encoded><![CDATA[<p>Iterating over an objects properties can result in a seemingly random order, it&#8217;s always the same order in Chrome, but in a different order for other browsers. I posted this as bug <a href="http://code.google.com/p/chromium/issues/detail?id=223">#223</a> a couple of weeks ago. <a href="http://ejohn.org/">John Resig</a> posted the same issue as ticket <a href="http://code.google.com/p/chromium/issues/detail?id=883">#883</a> a day later. It was confirmed in the meantime by the chromium developers and described as an expected behavior. Very funny.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nulldevice.de/2008/10/update-on-object-property-reordering-in-google-chrome/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google greift Microsoft an</title>
		<link>http://www.nulldevice.de/2008/09/google-greift-microsoft-an/</link>
		<comments>http://www.nulldevice.de/2008/09/google-greift-microsoft-an/#comments</comments>
		<pubDate>Wed, 03 Sep 2008 17:14:00 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Heise Forum]]></category>

		<guid isPermaLink="false">http://www.nulldevice.de/?p=870</guid>
		<description><![CDATA[Q: Wenn ich den Links zum der Browser-Crash Demo Folge, dann brauch ich bei der letzten Seite nur noch mit der Maus über den &#8220;HERE&#8221; &#8211; Button zu fahren und mein ( mit allen Updates versehenes ) Vista friert sofort vollständig ein&#8230; Spricht das jetzt eher gegen Google oder Microsoft..? A: Der Tenor nach der [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>Q: Wenn ich den Links zum der Browser-Crash Demo Folge, dann brauch ich<br />
bei der letzten Seite nur noch mit der Maus über den &#8220;HERE&#8221; &#8211; Button<br />
zu fahren und mein ( mit allen Updates versehenes ) Vista friert<br />
sofort vollständig ein&#8230; Spricht das jetzt eher gegen Google oder Microsoft..? <img src='http://www.nulldevice.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>A:  Der Tenor nach der Veröffentlichung des Browsers lautet doch: Google<br />
greift Microsoft an. qed.</p></blockquote>
<p>Aus dem <a href="http://www.heise.de/security/news/foren/S-Re-Die-Browser-Crash-Demo-killt-mein-Vista/forum-143398/msg-15503730/read/">heise forum</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.nulldevice.de/2008/09/google-greift-microsoft-an/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>First Google Chrome bug found</title>
		<link>http://www.nulldevice.de/2008/09/first-google-chrome-bug-found/</link>
		<comments>http://www.nulldevice.de/2008/09/first-google-chrome-bug-found/#comments</comments>
		<pubDate>Tue, 02 Sep 2008 23:30:19 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Bug]]></category>

		<guid isPermaLink="false">http://www.nulldevice.de/?p=867</guid>
		<description><![CDATA[I just found my first bug in Chrome: If you iterate over object properties (using jQuery&#8217;s $.each()) and insert HTML generated inside that loop into the DOM, then that HTML appears in random order. Very funny. Might be a problem with threads or Chrome changes the order of object properties by itself: http://code.google.com/p/chromium/issues/detail?id=223]]></description>
			<content:encoded><![CDATA[<p>I just found my first bug in Chrome: If you iterate over object properties (using jQuery&#8217;s $.each()) and insert HTML generated inside that loop into the DOM, then that HTML appears in random order. Very funny. Might be a problem with threads or Chrome changes the order of object properties by itself:</p>
<p><a href="http://code.google.com/p/chromium/issues/detail?id=223">http://code.google.com/p/chromium/issues/detail?id=223</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.nulldevice.de/2008/09/first-google-chrome-bug-found/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Chrome vs. Microsoft Office</title>
		<link>http://www.nulldevice.de/2008/09/google-chrome-vs-microsoft-office/</link>
		<comments>http://www.nulldevice.de/2008/09/google-chrome-vs-microsoft-office/#comments</comments>
		<pubDate>Tue, 02 Sep 2008 18:30:04 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Office]]></category>
		<category><![CDATA[SaaS]]></category>

		<guid isPermaLink="false">http://www.nulldevice.de/?p=860</guid>
		<description><![CDATA[There was a posting re &#8220;Mozilla&#8217;s Thought On Google&#8217;s Chrome&#8221; on Slashdot today&#8230; which has a comment that underlines what I wrote earlier: IMHO, the real target is MS Office. Google makes their money from advertising, which means eyeballs and correlated data. Unfortunately for them, many people spend a majority of their day inside MS [...]]]></description>
			<content:encoded><![CDATA[<p>There was a posting re <a href="http://tech.slashdot.org/tech/08/09/02/1637216.shtml">&#8220;Mozilla&#8217;s Thought On Google&#8217;s Chrome&#8221;</a> on Slashdot today&#8230; which has a comment that underlines what I wrote earlier:</p>
<blockquote><p>IMHO, the real target is MS Office. Google makes their money from advertising, which means eyeballs and correlated data. Unfortunately for them, many people spend a majority of their day inside MS Word and MS Excel and other apps. Google would love to have those eyeballs and all that data to better shape their profiles and thus better deliver advertising. What better way than to get all those different apps to &#8220;occur&#8221; inside the browser?</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.nulldevice.de/2008/09/google-chrome-vs-microsoft-office/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Beta of Google Chrome will be launched tomorrow</title>
		<link>http://www.nulldevice.de/2008/09/beta-of-google-chrome-will-be-launched-tomorrow/</link>
		<comments>http://www.nulldevice.de/2008/09/beta-of-google-chrome-will-be-launched-tomorrow/#comments</comments>
		<pubDate>Mon, 01 Sep 2008 23:10:55 +0000</pubDate>
		<dc:creator>Michael</dc:creator>
				<category><![CDATA[Chrome]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Beta]]></category>

		<guid isPermaLink="false">http://www.nulldevice.de/?p=839</guid>
		<description><![CDATA[Google will publish a beta version of it&#8217;s own Web browser tomorrow. Sadly, the beta will run on Windows only. Of course, they put some energy in speeding up JavaScript execution as they need this for their own applications. Otherwise they simply won&#8217;t be able to provide solutions that can compare with traditional offline applications. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.nulldevice.de/wp-content/uploads/2008/09/google-chrome.jpg"><img class="alignright size-full wp-image-840" title="Google Chrome Logo" src="http://www.nulldevice.de/wp-content/uploads/2008/09/google-chrome.jpg" alt="" width="146" height="146" /></a>Google will publish a beta version of it&#8217;s own Web browser tomorrow. Sadly, the beta will run on Windows only. Of course, they put some energy in speeding up JavaScript execution as they need this for their own applications. Otherwise they simply won&#8217;t be able to provide solutions that can compare with traditional offline applications.</p>
<p>For more information check out <a href="http://books.google.com/books?id=8UsqHohwwVYC&amp;printsec=frontcover">the online book about Chrome</a> or the <a href="http://googleblog.blogspot.com/2008/09/fresh-take-on-browser.html">Google Blog</a>.</p>
<p>While visiting the Google Blog, I found out, that a JS warning window appears in Firefox 3, if you hit the back button too fast. You&#8217;ll see something like this:</p>
<p><code><br />
SyntaxError: unterminated string literal<br />
w_xa()@:0<br />
eval("try {\n_WidgetManager._HandleControllerResult('Blog1', 'backlinks',{'numBacklinks': [...]</code></p>
<p>JSONP seems to be unstable in certain conditions. What makes me wonder is why the browser starts to execute incomplete code and outputs that code in an alert dialog. So, it might as well be the fault of the Google Widgets error handler&#8230; but who cares anyway.</p>
<p><a href="http://www.nulldevice.de/wp-content/uploads/2008/09/chrome2.png"><img class="alignnone size-medium wp-image-865" title="Google Chrome Beta Screenshot" src="http://www.nulldevice.de/wp-content/uploads/2008/09/chrome2-500x418.png" alt="" width="500" height="418" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.nulldevice.de/2008/09/beta-of-google-chrome-will-be-launched-tomorrow/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
