Tuesday, September 20, 2011

Translation with Google Chrome

Today, we’re excited to make a nifty feature widely available in today’s new Chrome stable release: speech input through HTML.

Curious about how speech input can be used in real life? Here’s one example: Using Chrome, you can now translate what you say into other languages with Google Translate. If you’re translating from English, just click on the microphone on the bottom right of the input box, speak your text, and choose the language you want to translate to. In fact, you can even click on the “Listen” feature to hear the translated words spoken back to you!

Speech input through HTML is one of many new web technologies in the browser that help make innovative and useful web applications like Google Translate’s speech feature possible. If you’d like to check out more examples of applications built using the latest and greatest web technologies in the browser, you can check out more than 200 submissions by web developers onchromeexperiments.com. If you’re not already using Chrome, don’t forget to first download Chrome at google.com/chrome.

3D Graphic with Google Chrome

Some of the most compelling experiences on the web come when inspirations of old are brought to life with modern technologies. Last August, “The Wilderness Downtown” brought the wistful feeling of nostalgia to the browser as you run down the streets where you used to live in an HTML5music experience based on the Arcade Fire song “We Used to Wait.”

3 Dreams of Black” is our newest music experience for the web browser, written and directed by Chris Milk and developed with a few folks here at Google. The song, “Black,” comes off the albumROME, presented by Danger Mouse & Daniele Luppi, featuring Jack White and Norah Jones on vocals and soon to be released on the record label Parlophone/EMI. ROME is inspired by Italian soundtracks from the 1960s and the classic Italian Western genre. In fact, the album was recorded with the original orchestra from Italian director Sergio Leone’s westerns (remember The Good, The Bad & The Ugly?).

“3 Dreams of Black” is a visual voyage through three dream worlds, told through rich 2D drawings and animations that are interspersed with interactive 3D sequences. At various points in this web experience, you can take control with your computer’s mouse and guide your journey through the unfolding narrative. You can even contribute to the dream by creating your own relics using a 3D model creator. Some of the best user creations will be integrated into the experience and become a part of others’ “3 Dreams” exploration.

In “3 Dreams in Black”, the browser is transformed into a theater for these lucid virtual dreams through WebGL, a new technology which brings hardware-accelerated 3D graphics to the browser. With WebGL in modern browsers like Google Chrome, you can interact with 3D experiences with no need for additional software. For curious web developers out there, we’ve made all the code completely open and available so that you can dig in, have a look around and try it out for yourself.

Because “3 Dreams in Black” is an experiment built with the latest web technologies, it requires a browser that supports WebGL like Chrome, and Windows Vista / Mac OS X 10.6 or above to help ensure that your computer has up-to-date graphics drivers. For those of you who may have hardware constraints, we’ve put together a short video that we hope will provide a glimpse into this unique experience. To explore these dreamscapes, visit www.ro.me.

All Google Chrome starup switches - Part 2

Here a complete list of all startup switches in Chrome ad what they do:
// Allow third party content included on a page to prompt for a HTTP
// basic auth username/password pair.
const char kAllowCrossOriginAuthPrompt[]    = "allow-cross-origin-auth-prompt";

// On ChromeOS, file:// access is disabled except for certain whitelisted
// directories. This switch re-enables file:// for testing.
const char kAllowFileAccess[]               = "allow-file-access";

// Allow non-https URL for background_page for hosted apps.
const char kAllowHTTPBackgroundPage[]       = "allow-http-background-page";

// Don't block outdated plugins.
const char kAllowOutdatedPlugins[]          = "allow-outdated-plugins";

// Allows injecting extensions and user scripts on the extensions
// gallery site. Normally prevented for security reasons, but can be
// useful for automation testing of the gallery.
const char kAllowScriptingGallery[]         = "allow-scripting-gallery";

// Specifies comma separated list of extension ids to grant access to local
// websocket proxy.
const char kAllowWebSocketProxy[]           = "allow-websocket-proxy";

// Allow compositing on chrome:// pages.
const char kAllowWebUICompositing[]         = "allow-webui-compositing";

// This prevents Chrome from requiring authorization to run certain widely
// installed but less commonly used plug-ins.
const char kAlwaysAuthorizePlugins[]        = "always-authorize-plugins";

// Specifies that the associated value should be launched in "application" mode.
const char kApp[]                           = "app";

// Specifies that the extension-app with the specified id should be launched
// according to its configuration.
const char kAppId[]                         = "app-id";

// Override the apps checkout URL, which is used to determine when to expose
// some private APIs.
const char kAppsCheckoutURL[]               = "apps-checkout-url";

// Specifying this flag allows the webstorePrivate APIs to return browser (aka
// sync) login tokens to be used for auto-login in the Web Store (normally they
// do not).
const char kAppsGalleryReturnTokens[]       = "apps-gallery-return-tokens";

// The URL to use for the gallery link in the app launcher.
const char kAppsGalleryURL[]                = "apps-gallery-url";

// The update url used by gallery/webstore extensions.
const char kAppsGalleryUpdateURL[]          = "apps-gallery-update-url";

// Whether to always use the new app install bubble when installing an app.
const char kAppsNewInstallBubble[]          = "apps-new-install-bubble";

// Disable throbber for extension apps.
const char kAppsNoThrob[]                   = "apps-no-throb";

// Whitelist of servers that Negotiate will generate delegated Kerberos tickets
// for.
const char kAuthNegotiateDelegateWhitelist[] =

// HTTP authentication schemes to enable. This is a comma separated list
// of authentication schemes (basic, digest, ntlm, and negotiate). By default
// all schemes are enabled. The primary use of this command line flag is to help
// triage autentication-related issues reported by end-users.
const char kAuthSchemes[]                   = "auth-schemes";

// Whitelist of servers which NTLM and Negotiate can automatically authenticate
// with using the default credentials of the currently logged in user.
const char kAuthServerWhitelist[]           = "auth-server-whitelist";

// The value of this switch tells the app to listen for and broadcast
// automation-related messages on IPC channel with the given ID.
const char kAutomationClientChannelID[]     = "automation-channel";

// Causes the automation provider to reinitialize its IPC channel instead of
// shutting down when a client disconnects.
const char kAutomationReinitializeOnChannelError[] =

// When the option to block third-party cookies from being set is enabled,
// also block third-party cookies from being read.
const char kBlockReadingThirdPartyCookies[] =

// How often (in seconds) to check for updates. Should only be used for
// testing purposes.
const char kCheckForUpdateIntervalSec[]     = "check-for-update-interval";

// Tells chrome to load the specified version of chrome.dll on Windows. If
// this version cannot be loaded, Chrome will exit.
const char kChromeVersion[]                 = "chrome-version";

// Comma-separated list of SSL cipher suites to disable.
const char kCipherSuiteBlacklist[]          = "cipher-suite-blacklist";

// Used with kCloudPrintFile.  Tells Chrome to delete the file when
// finished displaying the print dialog.
const char kCloudPrintDeleteFile[]          = "cloud-print-delete-file";

// Tells chrome to display the cloud print dialog and upload the
// specified file for printing.
const char kCloudPrintFile[]                = "cloud-print-file";

// Specifies the mime type to be used when uploading data from the
// file referenced by cloud-print-file.
// Defaults to "application/pdf" if unspecified.
const char kCloudPrintFileType[]            = "cloud-print-file-type";

// Used with kCloudPrintFile to specify a JSON print ticket for the resulting
// print job.
// Defaults to null if unspecified.
const char kCloudPrintPrintTicket[]            = "cloud-print-print-ticket";

// Used with kCloudPrintFile to specify a title for the resulting print
// job.
const char kCloudPrintJobTitle[]            = "cloud-print-job-title";

// The unique id to be used for this cloud print proxy instance.
const char kCloudPrintProxyId[]             = "cloud-print-proxy-id";

// The URL of the cloud print service to use, overrides any value
// stored in preferences, and the default.  Only used if the cloud
// print service has been enabled (see enable-cloud-print).
const char kCloudPrintServiceURL[]          = "cloud-print-service";

// Comma-separated options to troubleshoot the component updater.
// Only valid for the browser process.
const char kComponentUpdaterDebug[]         = "component-updater-debug";

// Causes the browser process to inspect loaded and registered DLLs for
// known conflicts and warn the user.
const char kConflictingModulesCheck[]       = "conflicting-modules-check";

// The Country we should use.  This is normally obtained from the operating
// system during first run and cached in the preferences afterwards.  This is a
// string value, the 2 letter code from ISO 3166-1.
const char kCountry[]                       = "country";

// Causes the browser process to crash if browser threads are not responding for
// the given number of seconds.
const char kCrashOnHangSeconds[]            = "crash-on-hang-seconds";

// Comma separated list of BrowserThreads that cause browser process to crash if
// the given browser thread is not responsive. UI,IO,DB,FILE,CACHE are the list
// of BrowserThreads that are supported.
// For example:
//    --crash-on-hang-threads=UI,IO --> Crash the browser if UI or IO thread is
//                                      not responsive.
const char kCrashOnHangThreads[]            = "crash-on-hang-threads";

// Causes the browser process to crash if the number of browser threads that are
// responding is equal to the given number.
// For example:
//    --crash-on-live=1 --> Crash if only one thread is responsive and all other
//                          threads are not responsive.
const char kCrashOnLive[]                   = "crash-on-live";

// Path to the inspector files on disk (allows reloading of devtool files
// without having to restart the browser).
const char kDebugDevToolsFrontend[]         = "debug-devtools-frontend";

// Enables a frame context menu item that toggles the frame in and out of glass
// mode (Windows Vista and up only).
const char kDebugEnableFrameToggle[]        = "debug-enable-frame-toggle";

// Enables support to debug printing subsystem.
const char kDebugPrint[]                    = "debug-print";

// Specifies the URL at which to fetch configuration policy from the device
// management backend. Specifying this switch turns on managed policy from the
// device management backend.
const char kDeviceManagementUrl[]           = "device-management-url";

// Triggers a pletora of diagnostic modes.
const char kDiagnostics[]                   = "diagnostics";

// Replaces the audio IPC layer for 

How to build Chrome Apps

Today’s new Beta channel release brings big improvements to Chrome’s web platform capabilities, enabling developers to build more powerful and more immersive apps and games for the web.

First, we’re pleased to announce the integration of Native Client into Chrome. Native Client allows C and C++ code to be seamlessly executed inside the browser with security restrictions similar to JavaScript. Native Client apps use Pepper, a set of interfaces that provide C and C++ bindings to the capabilities of HTML5. As a result, developers can now leverage their native code libraries and expertise to deliver portable, high performance web apps.

Another cool feature is the Web Audio API, a new JavaScript API offering advanced audio capabilities. The Web Audio API supports audio effects such as room simulation and spatialization, allowing web developers to create even more interactive experiences and games. Here are some examples you can play with, but we’re looking forward to seeing what other people build!

Update 8/14: Native Client is currently only available for apps in the Chrome Web Store, but we plan to change this in the future. Keep an eye on the Chromium blog for updates.

Web API Examples
Go to Beta Channel

Activate GMail Offline with Chrome

Today’s world doesn’t slow down when you’re offline, so it’s a great feeling to be productive from anywhere, on any device, at any time. We recognize that offline access is important to many of you--especially for Chromebook users who spend most of their time living on the web. We talked about bringing this functionality to Google web apps at Google I/O 2011 and today, the Google Apps team is releasing Gmail Offline.

 Gmail Offline is a Chrome Web Store app that helps you read, respond to, organize and archive email when you don’t have an internet connection. Google Calendar and Google Docs offline will also be rolling out over the next week. To get started using Google Calendar or Google Docs offline, just click the gear icon at the top right corner of the web app and select the option for offline access.

  Download Gmail Offline App

The great thing about web apps is that you can access all of your information on the go, and we’ve introduced ways to use Google Apps on a variety of devices like mobile phones and tablets. But it’s inevitable that you’ll occasionally find yourself in situations when you don’t have an Internet connection, like planes, trains and carpools. When we announced Chromebooks at Google I/O 2011, we talked about bringing offline access to our web apps, and now we’re taking our first steps in that direction. Gmail offline will be available today, and offline for Google Calendar and Google Docs will be rolling out over the next week, starting today.

Gmail Offline is a Chrome Web Store app that’s intended for situations when you need to read, respond to, organize and archive email without an internet connection. This HTML5-powered app is based on the Gmail web app for tablets, which was built to function with or without web access. After you install the Gmail Offline app from the Chrome Web Store, you can continue using Gmail when you lose your connection by clicking the Gmail Offline icon on Chrome’s “new tab” page.

Google Calendar and Google Docs let you seamlessly transition between on- and offline modes. When you’re offline in Google Calendar, you can view events from your calendars and RSVP to appointments. With Google Docs you can view documents and spreadsheets when you don’t have a connection. Offline editing isn’t ready yet, but we know it’s important to many of you, and we’re working hard to make it a reality. To get started using Google Calendar or Google Docs offline, just click the gear icon at the top right corner of the web app and select the option for offline access.

IT administrators can deploy Chrome Web Store apps to users en masse by setting up organizational policies for Chrome.

Today’s world doesn’t slow down when you’re offline and it’s a great feeling to be productive from anywhere, on any device, at any time. We’re pushing the boundaries of modern browsers to make this possible, and while we hope that many users will already find today’s offline functionality useful, this is only the beginning. Support for offline document editing and customizing the amount of email to be synchronized will be coming in the future. We also look forward to making offline access more widely available when other browsers support advanced functionality (like background pages).