Google Chrome Extensions: A quick recap of our first week in beta
Besides having fun trying out some of the 800+ new extensions in our gallery, we hosted an event for developers on our Mountain View campus to discuss the design principles of the Google Chrome's extensions system and to present the team's roadmap. Approximately 140 developers attended, representing more than 50 companies. Aaron Boodman and Erik Kay, technical leads for the extensions platform, provided insights across several topics, including the UI design and the security model for the extensions system. They also demonstrated the platform's flexibility by building and publishing an "Email this page" extension in less than 5 minutes.
Aaron and Erik were joined on stage by the Xmarks, eBay and Google Translate teams, who discussed their own experiences with Google Chrome Extensions, highlighting the ease of development and the advanced capabilities that HTML5 provides to extension developers. Finally, Nick Baum, product manager for Google Chrome Extensions, closed the event by walking through the extensions gallery approval process, tips for successful extensions, as well as the team's near-term goals.
To learn more on these topics you can check out the videos from the event below:
We also met many extensions developers last week at Add-on Con, an annual conference for browser add-ons. Erik and Aaron presented a quick overview of the extension system's design for those who had missed our earlier event. In addition, Aaron shared his thoughts on a panel about cross-browser extension development while Linus Upson, Google's engineering lead for client products, presented his views on a panel about the future of the browser.
We'd like to thank developers for building and uploading some great extensions in our gallery and for giving us plenty of feedback. This week, we plan to continue our discussions with the developer community by hosting several online tutorial sessions. You can still sign up for one of these sessions, but if you aren't able to attend, we encourage you to submit your questions through our discussion group.
Posted by Arne Kurrik, Developer Advocate, Google Chrome Extensions
Security in Depth: The Extension System
- We expect most users to install extensions from the gallery, where each extension has a reputation. We expect malicious extensions will have a low reputation and will have difficulty attracting many users. If a malicious extension is discovered in the gallery, we will remove it from the gallery.
- When installing extensions outside the gallery, the user experience for installing an extension is very similar to the experience for running a native executable. If an attacker can trick the user into installing a malicious extension, the attacker might as well trick the user into running a malicious executable. In this way, the extension system avoids increasing the attack surface.
New Tech Talks Posted
What's the Difference Between Chromium OS and Google Chrome OS?
- This is not ready for consumers yet — everything you see can and probably will change by the time Google Chrome OS-based devices are available late next year.
- Please note that Google has not released an official binary for Chromium OS and therefore if you download Chromium OS binaries please ensure that you trust the site you are downloading them from.
- While we will try our best to help you through the Chromium discussion forums, we will not be officially supporting any of these builds. Remember that you are downloading that specific site/developer's build of Chromium OS.
WebGL Spec Initial Public Draft Released
- San Angeles futuristic cityscape demo
- Shiny teapot demo illustrating compositing of 3D graphics with the web page
- Particle system demo showing how to use the GPU to animate particles
Web Sockets Now Available In Google Chrome
if ("WebSocket" in window) {
var ws = new WebSocket("ws://example.com/service");
ws. {
// Web Socket is connected. You can send data by send() method.
ws.send("message to send"); ....
};
ws. (evt) { var received_msg = evt.data; ... };
ws. { // websocket is closed. };
} else {
// the browser doesn't support WebSocket.
}Extensions beta launched, with over 300 extensions!
An extension system has been one of our most requested features for Google Chrome. It's a tribute to Mozilla and the Firefox project that nowadays, users just expect all browsers to have built-in extensibility.
We started the project by presenting a design doc that outlined our vision to create an extensions system based on web technologies - a system that is easy to use, stable, more secure and that wouldn't slow down Google Chrome. It wasn't always easy to balance our goals, and sometimes we had to make tough trade-offs.
Since we built all of this in the open, we had tons of help. Developers started using our code shortly after the first check-in, and have been sending us feedback on our mailing list ever since. Being able to see the extensions people were trying to build and the problems they faced made it more fun to design the system, and motivated us to keep fixing the bugs.
Today, we're really happy to release a beta of extensions that begins to deliver on our initial vision. Extensions are as easy to create as webpages. Users can install and uninstall them quickly without restart, and extensions have a great polished look that fits in with Google Chrome's minimalist aesthetic. When developers upload an extension it is available to users immediately, with limited restrictions and manual reviews only in a few situations.
On the technical side, we've been able to use Google Chrome's multiprocess architecture to help keep extensions stable and safe. And Chromium's extensive performance monitoring infrastructure has helped us ensure extensions affect Google Chrome's speed as little as possible. You can learn more details about the internals of our system in the videos below.
We still have a long way to go - next up, we're going to be working hard to get extensions to all Google Chrome users, and we're already brainstorming the next set of API improvements. Oh and, we should also fix some bugs ;-).
For those of you who want to learn more about extensions, let us know if you want to join us in a small get together tomorrow in our campus in Mountain View. Space is limited - we'd love to see many of you there so do RSVP early and we'll email you more information if are selected to attend. You can also meet with our team at Add-on Con, where we are going to participate in a couple of panels. Finally for those of you who are far away, we are planning some online developer tutorial sessions. If you are interested in attending these, please fill in this form.
Posted by Erik Kay and Aaron Boodman, Software Engineers
Google Chrome for Linux goes beta!
But bringing Google Chrome to Linux wasn't just a straight port -- it was a labor of love. Google Chrome works well with both Gnome and KDE, and is updated via the normal system package manager. It has also been developed as a true open source project, using public mailing lists, IRC channels, bug tracker, code repository, and continuous build and test farm -- following in large part the trail blazed by Mozilla. Where we noticed problems in system libraries, we pushed fixes upstream and filed bugs. This open approach to development seems to be working: so far, about 50 developers outside Google have contributed code (for instance, thanks to Ibrar and Paweł for our FTP stack), and several Linux distributions even maintain preliminary open source builds of Google Chromium.
In short, we really love Google Chrome for Linux, and we think you will, too. Please try it and let us know what you think.
(One more thing: if you've already installed the dev channel version, you may need to uninstall that before installing the beta version -- we tried to make that work smoothly, but a few rough edges remain.)
Posted by Dan Kegel and Evan Martin, Software Engineers
Links That Open in New Processes
Technically speaking, what makes Google Chrome fast?
Earlier this year, we heard from many of you on how important speed is to your daily activities on the web. We kicked off a series of discussions with the Internet community on ways to make the web faster: from Internet protocols and best practices in website development, to improvements in the browser itself.
A lot of engineering effort is involved in making sure that a browser continually provides a fast, responsive, and satisfying experience on the web. We're excited to see modern browsers continue to push the envelope in designing and optimizing browser architecture for speed and performance.
We've often been asked what makes Google Chrome so fast -- from its snappy start-up time and fast page-loading, to the ability to run complex web applications quickly. To walk through some of the thought processes and technical decisions involved in making Google Chrome a fast browser, we've put together three technical interviews on DNS pre-resolution, the V8 JavaScript engine, and DOM bindings. In a future post, we'll also cover other important areas like WebKit and UI responsiveness.
DNS pre-resolution
with Jim Roskind
- What is DNS pre-resolution, and how does it make Google Chrome even faster?
- Why is DNS pre-resolution difficult to do?
- Explain in more detail how adaptive pre-resolution works.
- How else is DNS pre-resolution beneficial? Can it help with browser start-up time?
- How do we measure and benchmark the benefits of DNS pre-resolution?
- What's next for DNS pre-resolution?
V8 JavaScript engine
with Mads Ager
- What is V8?
- What are we currently doing to speed up JavaScript performance on V8?
- How do we achieve big boosts in JavaScript speed, such as the recent 150% improvement since our initial launch?
- How do we measure V8's performance?
DOM bindings and more
with Mike Belshe
- What are DOM bindings?
- What are the most recent improvements in DOM bindings, for Google Chrome as well as other browsers?
- The Google Chrome beta release in August 2009 included improvements in DOM bindings. Tell us more.
- How do we measure and benchmark improvements in DOM bindings?
- In general, what are the biggest performance impediments for a browser?
- What are some of the performance benefits of Google Chrome's multiprocess architecture?
Posted by Min Li Chan, Product Marketing Manager