Saturday, September 13, 2008

The newly released Google Chrome Web browser beta is a completely open source solution and a potential challenger to Microsoft's proprietary-code Internet Explorer browser, but Microsoft's Senior Program Manager Scott Hanselman found a little bit of irony in Google's browser as well.

Hanselman looked at Chrome's source code and made an interesting discovery: there's Microsoft code in it!

It turns out that Chrome uses Microsoft's Windows Template Library (WTL), which was released as open source code in May of 2004. Hanselman documented the finding in his blog post on Thursday.

Hanselman described the usefulness of the WTL, citing author Simon Steele, who wrote that the WTL can "produce small executables that do not require the MFC [Microsoft Foundation Classes] run time libraries...leading to really small programs, which run fast too."

Microsoft let the WTL pass into open source about four years ago. It apparently was one of the first such projects to go that route, according to Hanselman's account. Still, Microsoft execs back then were leery about "the business value" of open source software. The WTL's release was a rarity.

Hanselman provided further code analysis of Chrome. He noted that the Google team, in creating the Chrome browser, used an unsupported security technique with WTL as a workaround. They wanted to turn on Data Execution Prevention in Windows XP SP2 and Windows Server 2003 SP1. To do so, they may have done a little reverse engineering.

"Looks like The Chromium authors may have disassembled part of the Windows Kernel in order to achieve this security feature under Windows XP SP2," Hanselman wrote. While that was wrong, they did it in the interest of security, he added.

Google's Chrome browser uses open source code from a variety of sources. It's built on the open source WebKit browser engine that Apple uses in its Safari browser. Google also made use of Mozilla's open source Firefox browser, particularly with tabbing, it seems. Google's multiprocess architecture adds some additional security to isolate processes running in tabs from the rest of the browser, which helps avoid crashes.

Google's view in going open source with its browser is that anything that helps the Web helps Google. The company makes its billions out of search advertising, rather than applications. They also want people to contribute to the browser's development -- a community development approach that has greatly benefitted the Firefox browser.

Microsoft, by contrast, has made just a few baby steps in the direction of open source. Its most free license, the Microsoft Public License (MS-Pl), allows for code sharing. Otherwise, the company typically charges royalties for code use. In a major step in February, Microsoft opened up API code documentation for many of its core products to better enable interoperability with other vendors' software.

"Google gets it, and Microsoft doesn't," said one person commenting on open source software at Hanselman's blog. In reply, Hanselman suggested that Microsoft is taking a different direction now.

"Believe me, there are lots of people inside Microsoft who's [sic] knee-jerk reaction is to release code as Open Source," Hanselman wrote. "That's their *first* reaction, myself included. It's happening, give it time."