Mozilla coder: Chrome violates Google's own Blink principles

Programmer Robert O'Callahan says Google's Native Client technology contradicts laudable Web standards principles the Net giant laid out for Blink, its new browser engine project.

Stephen Shankland Former Principal Writer
Stephen Shankland worked at CNET from 1998 to 2024 and wrote about processors, digital photography, AI, quantum computing, computer science, materials science, supercomputers, drones, browsers, 3D printing, USB, and new computing technology in general. He has a soft spot in his heart for standards groups and I/O interfaces. His first big scoop was about radioactive cat poop.
Expertise Processors | Semiconductors | Web browsers | Quantum computing | Supercomputers | AI | 3D printing | Drones | Computer science | Physics | Programming | Materials science | USB | UWB | Android | Digital photography | Science Credentials
  • Shankland covered the tech industry for more than 25 years and was a science writer for five years before that. He has deep expertise in microprocessors, digital photography, computer hardware and software, internet standards, web technology, and more.
Stephen Shankland
3 min read
Five browser logos

With a project called Portable Native Client now making its way into Chrome and potentially onto the Web itself, Google is violating its own principles for its Blink browser engine, a Mozilla programmer said Friday.

Portable Native Client, or PNaCl, is a Google technology to let Web apps run specially created software at nearly the speed of the native apps that run on operating systems like Windows or iOS. It plugs into the browser with an interface called Pepper.

Mozilla representatives have been frosty toward Native Client for years, but one programmer, Robert O'Callahan, issued a new criticism Friday, arguing that the Blink programming team's admirable Web standards principles take a back seat to Google's priorities with Chrome overall.

"Unfortunately it appears Blink's principles only apply to Blink, not Chrome as a whole," O'Callahan said in a blog post. "I'm sad, because this seriously undermines the value of the Blink team's good intentions; a Google team that doesn't want to be a good Web citizen can probably find a way to be 'not Blink' and run roughshod over the Blink team's good work."

CNET contacted Google for comment and will update this post with its reply.

Google has been developing PNaCl, its less flexible predecessor called Native Client, and Pepper for years, but it has yet to win over any other browser maker about the merits of the approach. The technology is geared for programmers who want to bring C and C++ software such as videogame engines or audio decompression software to Web apps. (Native Client, has the same abbreviation, NaCl, as table salt, whose chemical composition is sodium chloride. Salt, naturally, is paired with Pepper.)

O'Callahan voiced his concern because of two recent Google moves.

The first move was the creation of the Blink browser engine underlying Chrome, a Google change that was accompanied by the publication of principles for deciding what new technologies to add to the browser engine. The second move was the announcement May 15 that Chrome 29 would have PNaCl built in, albeit disabled by default. And unlike how Google treats NaCl, which is only available in apps downloaded through the Chrome Web Store, Google said Chrome will run any PNaCl apps on the Web.

"Once PNaCl is fully released, users will be able to run PNaCl modules on any Web page -- applications will not need to be deployed through the Chrome Web Store in order to run PNaCl modules," Google said in an announcement

O'Callahan argued PNaCl violates Blink principles to favor technology standardized and supported by multiple browsers; to avoid technology that risks compatibility problems that mean Web sites don't work on any browser; and when a technology poses a compatibility risk, Google will propose a draft standard of the technology.

"None of this is happening for PNaCl and Pepper," O'Callahan said.

Mozilla has been developing a technology called ASM.js that accomplishes some of what PNaCl does -- provide a way to C and C++ programmers to bring their code into browsers. Unlike Native Client, though, it doesn't add a new foundation for running Web-based software to the Internet.

Instead, ASM.js relies on programming tools, notably Mozilla's own Emscripten, to convert C or C++ to a special subset of JavaScript, the universal Web programming language. Browsers then are optimized to run this subset of JavaScript particularly fast. Google has shown interest in ASM.js, but adopting one need not necessarily mean avoiding the other.