Chromium Blog
News and developments from the open source browser project
Native Client support on ARM
Tuesday, January 22, 2013
Native Client
(NaCl) enables Chrome to run high-performance apps compiled from your C and C++ code. One of the main
goals
of Native Client is to be architecture-independent, so that all machines can run NaCl content. Today we’re taking another step toward that goal: our
Native Client SDK
now supports ARM devices, from
version 25
and onwards.
If your app uses Native Client and newlib, you’ll now be able to reach users on ARM devices by simply adding an ARM
.nexe
to your app and making a small adjustment to the Native Client
manifest
. Just get the newest SDK, and you’ll have all the tools you need.
While this will help provide more apps to users with ARM devices, we’re far from done. In 2013 the next generation of Native Client, called
Portable Native Client
, will introduce true architecture-independence by using
LLVM
bitcode as the wire format. With Portable Native Client, we’ll be able to support not just today’s architectures, but also those of tomorrow – and developers won’t have to recompile their app.
We look forward to your technical questions on
Stack Overflow
as well as comments in the discussion
forum
.
Posted by David Sehr, Software Engineer
Chrome@GDC Recap
Friday, March 16, 2012
Last week, the Chrome team participated in the
Game Developers Conference
in San Francisco. We all enjoyed talking to attendees about how game developers can benefit from the latest browser technologies such as
Native Client
and HTML5.
For those of you who were not able to attend, we recorded videos of our talks. Check them out and let us know what you think.
During GDC, several developers presented some new and upcoming games for the Chrome Web Store. From
AirMech
to the highly anticipated
From Dust
, these games provided a sneak peek to the future of browser-based games.
Besides being able to use the latest technology the web has to offer, creating a game for Chrome means you can distribute and monetize your game successfully. This is evidenced by our
4 brand new case studies
with Kabam, Hlafbrick, Game Salad, and Limex Games.
To learn how you too can develop games for Chrome, start by visiting our
game developer site
.
Posted by Christian Stefansen, Product Manager
Game On
Monday, March 5, 2012
Hundreds of millions play games on the web everyday - including most of us on the Chrome team. Between building new virtual cities and slaying dragons, we’re also working on making the web a better platform for game developers. With
GDC
about to start, we wanted to give you a quick update on these efforts.
First, we’re collaborating with all browser vendors to give you access to exciting new HTML5 APIs such as
Gamepad
,
Mouse Lock
and
Fullscreen
. These can help you create more immersive experiences for your users.
Second,
Native Client
continues to gain momentum. Today, the
BlitzTech Gaming engine
and the
Havok Physics Engine
announced support for Native Client, enriching an
ecosystem
that includes Unity, Moai, Bullet and other leading middleware providers. Already many game developers have been using NaCl to bring their games to Chrome’s hundreds of millions of users including brand new titles from
Ubisoft
,
Carbon Games
,
Spacetime Studios
,
FuzzyCube Software
,
Klei Entertainment
and
Fire Hose Games
.
Third, we’re working closely with other teams at Google to improve and simplify distribution and monetization for game developers. All games in the
Chrome Web Store
now have access to an improved
In-App Payments solution
that
includes
support for more currencies and an optimized payment flow. This includes all Google+ games that will soon be listed in the store.
To learn more on how you can also benefit from the emergence of the browser as a game platform, visit us at
developers.google.com/games
. And if you are attending GDC this week, come and say hi.
Posted by Christian Stefansen, Product Manager
Games, apps and runtimes come to Native Client
Friday, December 9, 2011
Updated on December 14th with the video of the event.
Since we
launched
Native Client late last summer, our team has been working hard to make the technology more useful to developers. Yesterday at an event held at Google we shared the progress we’ve made towards this goal and showcased work from some of the early adopters of the technology, including
Square Enix
,
Unity Technologies
, and
Bungie
.
One code base for all OSs
In September, we started supporting a set of core Pepper interfaces, suited for 2D graphics, audio, and compute-intensive applications. Since that release, we’ve shipped additional APIs and capabilities, providing native code with more of the capabilities available from JavaScript. These include hardware-accelerated 3D graphics via OpenGL ES 2.0, a mouse lock API, a full-screen API, and much more. One example of the kind of experience Native Client can currently support is
Bastion
, an award-winning role-playing game from Supergiant Games. Previously limited to Microsoft Windows® and Xbox® systems, the Native Client port of Bastion allows Supergiant to reach users on all popular desktop operating systems, with the safety and simplicity of the web.
Easy porting of previous work
If you have existing code bases in C, C++, or C#, Native Client now allows you to port your existing apps to the web while maintaining just one code base. This was particularly appealing to Spacetime Studios. They ported their multiplayer online game
Star Legends
to the web in less than two weeks from an existing code base of more than half a million lines of code. The side benefit of being able to maintain their existing development and testing infrastructure further accelerated their delivery of a shipping title.
More choices of programming languages
The community is actively involved in Native Client, porting some of the most popular application middleware. Ports include
Unity
and
Moai
game engines, programming language environments
Mono
and
Lua
, audio middleware such as
fmod
and
Wwise
, as well as the
Bullet physics engine
. These Native Client ports make the web more accessible to hundreds of thousands of application developers. At the event, we showcased upcoming applications from
Heartwood
,
Silvertree
,
Exit Strategy
, and
Dedalord
, who used those tools to bring their apps to the web with very little effort. We’ll continue to work with the community to get even more languages and middleware systems ported to Native Client.
We recognize that building a Native Client app is only the start of a successful app. That’s why we’ve enabled distribution of Native Client-based apps via the
Chrome Web Store
. The Chrome Web Store gives developers a simple, effective strategy to reach over 200 million active users of Google Chrome.
If all this sounds exciting, please visit our new documentation site at
gonacl.com
. There you’ll find a growing collection of tutorials, examples, videos, reference documentation, and much more.
Questions or suggestions? Join us in the
discussion forums
. We look forward to seeing some great new apps from Native Client developers.
Posted by Christian Stefansen, Product Manager
Google @ GDC Online Oct. 10th-12th
Wednesday, August 31, 2011
Cross posted at the
Google Code blog
This year at the
Game Developers Conference
(GDC) Online we have organized a
Developer Day
on Oct. 10th full of Google information for game developers. It will feature hardcore technical information on Google products and platforms delivered by Google
engineers and developer advocates
. We’ll discuss the latest projects we’re working on and how our online technologies can help you better create, distribute, and monetize games that reach a larger audience than ever before. We’ll present everything from how developers can build hardware accelerated 3D games for the browser with WebGL to the game framework used to bring Angry Birds to the Web.
In addition to the Developer Day, we will also have a booth on the Expo floor on Oct. 11th-12th where we’ll have representatives from the
Chrome Web Store
,
Native Client
, WebGL,
App Engine
, Google+,
In-App Payments
,
Google TV
, and
AdSense
/
AdMob
demoing technologies and platforms for game developers. Come by booth 503 to try out Google products and ask questions, or hang out in our Google TV lounge.
For more information on our presence at
GDC Online
, including session and speaker details, please visit
http://www.google.com/events/gdc/2011
. Hope to see you in Austin!
Not able to attend GDC? Check out
Google Game Developer Central
to get an overview of Google products and services that are particularly relevant to game developers.
Posted by Amy Walgenbach, Developer Marketing
Native Client Brings Sandboxed Native Code to Chrome Web Store Apps
Thursday, August 18, 2011
Wouldn’t it be great if you could create web apps using your existing C and C++ code?
Native Client
lets you do just that, and it is now enabled for Chrome Web Store apps in Google Chrome’s
beta channel
.
Native Client apps live on the web platform, so you don’t need to create separate versions of your app for each operating system. Rather than relying on OS-specific APIs, Native Client apps use Pepper, a set of interfaces that provide C and C++ bindings to the capabilities of HTML5. This means that once you’ve ported your code to Native Client, it will work across different operating systems, and you only need to maintain one code base.
Today Native Client supports the Pepper APIs for 2D graphics, stereo audio, URL fetching, sandboxed local file access (
File API
), and asynchronous message passing to and from JavaScript. In future releases we will be adding support for hardware accelerated 3D graphics (OpenGL ES 2.0), fullscreen mode, networking (
WebSockets
and peer-to-peer connections), and much more. As new capabilities are added to HTML5 and Pepper, they will become available to Native Client.
This functionality does not come at the expense of security. To ensure that Native Client is as safe as JavaScript, Native Client code is isolated from the operating system by two nested security sandboxes: the
Native Client sandbox
and the
Chrome sandbox
. And unlike NPAPI plugins or ActiveX controls, Native Client apps do not have access to the underlying OS APIs.
We encourage you to start developing apps with Native Client. You can download the SDK and find tutorials, examples, API documentation, and our
FAQ
on the
Native Client site
. Once version 14 of Chrome hits stable channel, you’ll be able to upload your Native Client apps to the Chrome Web Store, where you can reach Chrome’s 160 million users.
The next milestone for Native Client is architecture independence:
Portable Native Client
(PNaCl) will achieve this by using
LLVM
bitcode as the basis for the distribution format for Native Client content, translating it to the actual target instruction set before running. Until then the Chrome Web Store will be the only distribution channel for Native Client apps. This will help us ensure that all Native Client apps are updated to PNaCl when it’s ready – and in the meantime avoid the spread of instruction set architecture dependent apps on the web. We’ll be providing updates on the progress of PNaCl on this blog.
Posted by Christian Stefansen, Product Manager
Native Client: Getting Ready for Takeoff
Friday, February 18, 2011
Over the last few months we have been hard at work getting
Native Client
ready to support the new
Pepper
plug-in interface. Native Client is an open source technology that allows you to build web applications that seamlessly and safely execute native compiled code inside the browser. Today, we’ve reached an important milestone in our efforts to make Native Client modules as portable and secure as JavaScript, by making available a first release of the revamped
Native Client SDK
.
The SDK now includes support for a comprehensive set of Pepper interfaces for compute, audio, and 2D Native Client modules. These interfaces are close to being stable, with some important exceptions that are listed in the
release notes
.
In addition, we’ve focused on improving security. We have enabled auto-update and an outer sandbox. This allowed us to remove the
expiration date
and localhost security restrictions we had adopted in previous research-focused releases. Beyond security, we’ve also improved the mechanism for fetching Native Client modules based on the instruction set architecture of the target machine, so developers don’t need to worry about this any more.
We are excited to see Native Client progressively evolve into a developer-ready technology. In the coming months we will be adding APIs for 3D graphics, local file storage, WebSockets, peer-to-peer networking, and more. We’ll also be working on Dynamic Shared Objects (DSOs), a feature that will eventually allow us to provide Application Binary Interface (ABI) stability.
Until the ABI becomes stable, Native Client will remain off by default. However, given the progress we’ve made, you can now sticky-enable Native Client in Chrome 10+ through the about:flags dialog. Otherwise, you can continue using a command line flag to enable Native Client when you want to.
A big goal of this release is to enable developers to start building Native Client modules for Chrome applications. Please watch this blog for updates and use our
discussion group
for questions, feedback, and to engage with the Native Client community.
Posted by Christian Stefansen, Product Manager
Native Client and Web Portability
Wednesday, March 17, 2010
One of the most important principles of the web is portability: a web page renders and behaves the same way, regardless of the browser’s operating system or the type of hardware it’s running on. When we first released Native Client a year ago, we supported all popular operating systems (Windows, Mac OS X, and Linux) but only on machines with x86 processors. Today, we’re happy to say that you can build and run Native Client binaries for all of the most popular processor architectures: x86-32, x86-64, and ARM. Even better, our
initial benchmarks
indicate that Native Client executables perform at 97% of the speed of an unmodified executable on both ARM and x86-64 processors. These results indicate that a browser running on virtually any modern computer or cell phone could run a fast, performance-sensitive Native Client application.
However, we recognize that just running on today’s most popular architectures isn’t enough; if a new processor architecture emerges, it should be able to run all Native Client modules already released without requiring developers to recompile their code. That’s why we’re also
developing technology
that will enable developers to distribute a portable representation of Native Client programs using LLVM bitcode. Using this technology, a browser running on any type of processor could translate the portable representation into a native binary without access to the source code of the program.
If you’d like to review our instruction-set support or give us feedback about the technology, please visit our
project on Google Code
and join our
Google Group
.
Posted by Brad Chen, Native Client Team
Labels
$200K
1
10th birthday
4
abusive ads
1
abusive notifications
2
accessibility
3
ad blockers
1
ad blocking
2
advanced capabilities
1
android
2
anti abuse
1
anti-deception
1
background periodic sync
1
badging
1
benchmarks
1
beta
83
better ads standards
1
billing
1
birthday
4
blink
2
browser
2
browser interoperability
1
bundles
1
capabilities
6
capable web
1
cds
1
cds18
2
cds2018
1
chrome
35
chrome 81
1
chrome 83
2
chrome 84
2
chrome ads
1
chrome apps
5
Chrome dev
1
chrome dev summit
1
chrome dev summit 2018
1
chrome dev summit 2019
1
chrome developer
1
Chrome Developer Center
1
chrome developer summit
1
chrome devtools
1
Chrome extension
1
chrome extensions
3
Chrome Frame
1
Chrome lite
1
Chrome on Android
2
chrome on ios
1
Chrome on Mac
1
Chrome OS
1
chrome privacy
4
chrome releases
1
chrome security
10
chrome web store
32
chromedevtools
1
chromeframe
3
chromeos
4
chromeos.dev
1
chromium
9
cloud print
1
coalition
1
coalition for better ads
1
contact picker
1
content indexing
1
cookies
1
core web vitals
2
csrf
1
css
1
cumulative layout shift
1
custom tabs
1
dart
8
dashboard
1
Data Saver
3
Data saver desktop extension
1
day 2
1
deceptive installation
1
declarative net request api
1
design
2
developer dashboard
1
Developer Program Policy
2
developer website
1
devtools
13
digital event
1
discoverability
1
DNS-over-HTTPS
4
DoH
4
emoji
1
emscriptem
1
enterprise
1
extensions
27
Fast badging
1
faster web
1
features
1
feedback
2
field data
1
first input delay
1
Follow
1
fonts
1
form controls
1
frameworks
1
fugu
2
fund
1
funding
1
gdd
1
google earth
1
google event
1
google io 2019
1
google web developer
1
googlechrome
12
harmful ads
1
html5
11
HTTP/3
1
HTTPS
4
iframes
1
images
1
incognito
1
insecure forms
1
intent to explain
1
ios
1
ios Chrome
1
issue tracker
3
jank
1
javascript
5
lab data
1
labelling
1
largest contentful paint
1
launch
1
lazy-loading
1
lighthouse
2
linux
2
Lite Mode
2
Lite pages
1
loading interventions
1
loading optimizations
1
lock icon
1
long-tail
1
mac
1
manifest v3
2
metrics
2
microsoft edge
1
mixed forms
1
mobile
2
na
1
native client
8
native file system
1
New Features
5
notifications
1
octane
1
open web
4
origin trials
2
pagespeed insights
1
pagespeedinsights
1
passwords
1
payment handler
1
payment request
1
payments
2
performance
20
performance tools
1
permission UI
1
permissions
1
play store
1
portals
3
prefetching
1
privacy
2
privacy sandbox
4
private prefetch proxy
1
profile guided optimization
1
progressive web apps
2
Project Strobe
1
protection
1
pwa
1
QUIC
1
quieter permissions
1
releases
3
removals
1
rlz
1
root program
1
safe browsing
2
Secure DNS
2
security
36
site isolation
1
slow loading
1
sms receiver
1
spam policy
1
spdy
2
spectre
1
speed
4
ssl
2
store listing
1
strobe
2
subscription pages
1
suspicious site reporter extension
1
TCP
1
the fast and the curious
23
TLS
1
tools
1
tracing
1
transparency
1
trusted web activities
1
twa
2
user agent string
1
user data policy
1
v8
6
video
2
wasm
1
web
1
web apps
1
web assembly
2
web developers
1
web intents
1
web packaging
1
web payments
1
web platform
1
web request api
1
web vitals
1
web.dev
1
web.dev live
1
webapi
1
webassembly
1
webaudio
3
webgl
7
webkit
5
WebM
1
webmaster
1
webp
5
webrtc
6
websockets
5
webtiming
1
writable-files
1
yerba beuna center for the arts
1
Archive
2024
Aug
Jun
May
Apr
Mar
Feb
2023
Nov
Oct
Sep
Aug
Jun
May
Apr
Feb
2022
Dec
Sep
Aug
Jun
May
Apr
Mar
Feb
Jan
2021
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2020
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2019
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2018
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2017
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2016
Dec
Nov
Oct
Sep
Aug
Jun
May
Apr
Mar
Feb
Jan
2015
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2014
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2013
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2012
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2011
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2010
Dec
Nov
Oct
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2009
Dec
Nov
Sep
Aug
Jul
Jun
May
Apr
Mar
Feb
Jan
2008
Dec
Nov
Oct
Sep
Feed
Follow @ChromiumDev
Give us feedback in our
Product Forums
.