Google Reverse Engineered Vista Code to Write Chrome
It’s no big surprise that Google makes a superior web product for a lot of our day-to-day needs. Recently, Google announced their new web browser called Google Chrome. It’s code is based on Mozilla Firefox and Apple’s Web Kit used in Safari (on Mac, PC, and iPhone). There are several suspicious lines in the code, according to Ars Technica, that mention having tried documented API’s first, and after that didn’t work trying undocumented APIs. In order to do that, they’d have to have reverse-engineered certain Windows APIs that have only been available since Vista SP1 and Server 2008, in direct violation of the EULA.
Now before the flamers get up-in-arms and the fanboys jump to defend, Google did all of this for a good reason, if it was intentional. The way DEP (Data Execution Prevention) works in practice in current Windows systems is sort of, shall we say, optional. Programmers can choose to implement it, but it’s not forced unless they’re writing 64-bit code. Google actually re-wrote portions of DEP as it works in Windows and made it more secure.
Basically, each tab in Chrome is a separate process. Formerly, if you crashed one tab in a browser you crashed the whole browser. Now, if you crash one tab you only crash that one tab. Google figured, hey, if there’s no need for that process to talk to the part of the OS (Operating System) that has access to files on the computer, then let’s sandbox it off on it’s own. Another part of the browser can handle things like file downloads and accessing settings on the computer, and it can have a different security setting altogether. It’s really a smart strategy, this sandboxing.
Ars Technica seems to think Microsoft won’t call foul, because in the end the reverse engineering was all for good. In several state laws, reverse engineering is actually allowed in circumstances where proper documentation is not provided. Of course, this doesn’t account for what might happen to Google’s new baby browser when Microsoft releases a patch that breaks the whole thing. Also, this browser is specifically coded to Windows, and short of using Chromium Crossover you’re not going to see Chrome on the Mac or Linux unless they recode it from scratch to use different low-level APIs. Will Google code each version of Chrome completely from scratch for each OS?