Planet Chromium

October 29, 2014

Google Chrome Releases

Beta Channel Update

The beta channel has been updated to 39.0.2171.42 for Windows, Mac and Linux.

A full list of changes is available in the log. Interested in switching release channels? Find out how. If you find a new issue, please let us know by filing a bug.

Alex Mineer
Google Chrome

by Alex Mineer (noreply@blogger.com) at October 29, 2014 09:41 AM

October 28, 2014

Igalia Chromium

Manuel Rego: Presenting the Web Engines Hackfest

After the Google’s fork back in April 2013, WebKit and Blink communities have been working independently, however patches often move from one project to another. In addition, a fair amount of the source code continues to be similar. Thus, it seems interesting to have a common place to discuss topics of shared interest and make plans for the future.

For that reason, Igalia is announcing the Web Engines Hackfest that would happen in December 7-10 in our main office in A Coruña (Spain). This is like a new edition of the WebKitGTK+ Hackfest that we’ve been organizing since 2009, but this year changing the focus in order to make a more inclusive event.

The Hackfest

The new event will include members from all parts of the Web Platform community, not restricted to WebKit and Blink, but open to the different Web (Gecko and Servo) and JavaScript (V8, JavaScriptCore and SpiderMoney) free software engines.

Past year hackfest picture by Claudio Saavedra

Past year hackfest picture by Claudio Saavedra

The idea is to bring together implementors from the Open Web Platform community in a 4-day hacking/discussion/unconference event with the goal of moving forward different topics, discuss common issues, make plans for the future, etc.

And that’s what makes this event something different. It’s a completely hacking oriented event, where developers sit together in small groups to work for a few days pursuing some specific goals. These groups of interest are defined at the beginning of the hackfest and they agree the different tasks to be done on during the event.
Thereby, don’t expect a full scheduling in advance with a list of talks and speakers like in a regular conference, this is something totally different focused on real hacking.

Join us

After the first round of invitations we’ve already a nice list of people from different companies that will be attending the hackfest this year.
The good news is that we still have room for a few more people, so if you’re interested in coming to the event please contact us.

Adobe and Igalia are sponsoring the Web Engines Hackfest 2014

Adobe and Igalia are sponsoring the Web Engines Hackfest 2014

Thanks to Adobe and Igalia for sponsoring the Web Engines Hackfest and make possible such an exciting event.

Looking forward to meet you there!

by Manuel Rego Casasnovas at October 28, 2014 01:29 PM

Google Chrome Releases

Dev Channel Update

The dev channel has been updated to 40.0.2202.3  for Windows, Mac and Linux.

A full list of changes is available in the log. Interested in switching release channels? Find out how. If you find a new issue, please let us know by filing a bug.

Karen Grünberg
Google Chrome

by Karen (noreply@blogger.com) at October 28, 2014 10:28 AM

October 27, 2014

Google Chrome Releases

Chrome for Android Update

Chrome for Android has been updated to 38.0.2125.114 and will be available in Google Play over the next few days. This release fixes:
  • [422246] SSL Issue causes blank pages
If you find a new issue, please let us know by filing a bug. More information about Chrome for Android is available on the Chrome site.

Jason Kersey
Google Chrome

by Jason Kersey (noreply@blogger.com) at October 27, 2014 05:26 PM

Stable Channel Update

The stable channel has been updated to 38.0.2125.111 for Windows, Mac and Linux.  A full list of changes is available in the log.

Interested in switching release channels? Find out how. If you find a new issue, please let us know by filing a bug.


Matthew Yuan
Google Chrome

by matthewyuan@chromium.org (noreply@blogger.com) at October 27, 2014 12:53 PM

Chrome for iOS Update

Chrome for iOS has been updated to 38.0.2125.67. This release contains bug fixes and stability improvements. The update will be rolling out in the App Store over the next few hours. Known issues are available on the Chrome support site. If you find a new issue, please let us know by filing a bug.

Jason Kersey
Google Chrome

by Jason Kersey (noreply@blogger.com) at October 27, 2014 11:31 AM

October 23, 2014

Google Chrome Releases

Beta Channel Update for Chrome OS

The Beta channel has been updated to 39.0.2171.38 (Platform version: 6310.23.0) for all Chrome OS devices except Asus Chromebox, Dell Chromebox and Samsung Chromebox. This build contains a number of bug fixes, security updates and feature enhancements. Here is a list of Chromium changes.
If you find new issues, please let us know by visiting our forum or filing a bug. Interested in switching channels? Find out how. You can submit feedback using ‘Report an issue...’ in the Chrome menu (3 horizontal bars in the upper right corner of the browser).

Josafat Garcia
Google Chrome

by Josafat (noreply@blogger.com) at October 23, 2014 08:13 PM

Stable Channel Update for Chrome OS

The Stable channel has been updated to 38.0.2125.110 (Platform version: 6158.70.0) for all Chrome OS devices except Asus, Dell, and Samsung Chromeboxes. This build contains number of bug fixes and security updates. Systems will be receiving updates over the next several days. Here is a list of Chromium changes.

If you find new issues, please let us know by visiting our forum or filing a bug. Interested in switching channels? Find out how. You can submit feedback using ‘Report an issue...’ in the Chrome menu (3 horizontal bars in the upper right corner of the browser).

Dharani Govindan
Google Chrome

by Dharani (noreply@blogger.com) at October 23, 2014 07:27 AM

October 22, 2014

Google Chrome Releases

Chrome Beta for Android Update

Chrome Beta for Android has been updated to 39.0.2171.37 and will be available in Google Play over the next few hours. This release fixes various stability and performance bugs.  A partial list of changes in this build is available in the Git log. If you find a new issue, please let us know by filing a bug. More information about Chrome for Android is available on the Chrome site.

Alex Mineer
Google Chrome

by Alex Mineer (noreply@blogger.com) at October 22, 2014 05:16 PM

Dev Channel Update for Chrome OS

The Dev channel has been updated to 40.0.2194.3 (Platform version: 6388.0.0) for all Chrome OS devices. This build contains a number of bug fixes, security updates and feature enhancements. A list of changes can be found here.

If you find new issues, please let us know by visiting our forum or filing a bug. Interested in switching channels? Find out how. You can submit feedback using ‘Report an issue...’ in the Chrome menu (3 horizontal bars in the upper right corner of the browser).

Daniel Xie
Google Chrome

by Daniel xie (noreply@blogger.com) at October 22, 2014 01:05 PM

Beta Channel Update

The beta channel has been updated to 39.0.2171.36 for Windows, Mac and Linux.

A full list of changes is available in the log. Interested in switching release channels? Find out how. If you find a new issue, please let us know by filing a bug.

Alex Mineer
Google Chrome

by Alex Mineer (noreply@blogger.com) at October 22, 2014 12:02 PM

October 21, 2014

Google Chrome Releases

Dev Channel Update

The dev channel has been updated to 40.0.2194.2  for Windows, Mac and Linux.

A full list of changes is available in the log. Interested in switching release channels? Find out how. If you find a new issue, please let us know by filing a bug.

Karen Grünberg
Google Chrome

by Karen (noreply@blogger.com) at October 21, 2014 11:40 AM

October 17, 2014

Igalia Chromium

Enrique Ocaña: Hacking on Chromium for Android from Eclipse (part 3)

In the previous posts we learnt how to code and debug Chromium for Android C++ code from Eclipse. In this post I’m going to explain how to open the ChromeShell Java code, so that you will be able to hack on it like you would in a normal Android app project. Remember, you will need to install the ADT plugin in Eclipse  and the full featured adb which comes with the standalone SDK from the official pageDon’t try to reuse the android sdk in “third_party/android_tools/sdk”.

Creating the Java project in Eclipse

Follow these instructions to create the Java project for ChromeShell (for instance):

  • File, New, Project…, Android, Android project from existing code
  • Choose “src/chrome/android/shell/java” as project root, because there’s where the AndroidManifest.xml is. Don’t copy anything to the workspace.
  • The project will have a lot of unmet package dependencies. You have to manually import some jars:
    • Right click on the project, Properties, Java build path, Libraries, Add external Jars…
    • Then browse to “src/out/Debug/lib.java” (assuming a debug build) and import these jars (use CTRL+click for multiple selection in the file chooser):
      • base_java.jar, chrome_java.jar, content_java.jar, dom_distiller_core_java.jar, guava_javalib.jar,
      • jsr_305_javalib.jar, net_java.jar, printing_java.jar, sync_java.jar, ui_java.jar, web_contents_delegate_android.jar
    • If you keep having problems, go to “lib.java”, run this script and find in which jar is the class you’re missing:
for i in *.jar; do echo "--- $i ---------------------"; unzip -l $i; done | most
  • The generated resources directory “gen” produced by Eclipse is going to lack a lot of stuff.
    • It’s better to make it point to the “right” gen directory used by the native build scripts.
    • Delete the “gen” directory in “src/chrome/android/shell/java” and make a symbolic link:
ln -s ../../../../out/Debug/chrome_shell_apk/gen .
    • If you ever “clean project” by mistake, delete the chrome_shell_apk/gen directory and regenerate it using the standard ninja build command
  • The same for the “res” directory. From “src/chrome/android/shell/java”, do this (and ignore the errors):
cp -sr $PWD/../res ./
cp -sr $PWD/../../java/res ./
  • I haven’t been able to solve the problem of integrating all the string definitions. A lot of string related errors will appear in files under “res”. By the moment, just ignore those errors.
  • Remember to use a fresh standalone sdk. Install support for Android 4.4.2. Also, you will probably need to modify the project properties to match the same 4.4.2 version you have support for.

And that’s all. Now you can use all the Java code indexing features of Eclipse. By the moment, you still need to build and install to the device using the command line recipe, though:

 ninja -C out/Debug chrome_shell_apk
 build/android/adb_install_apk.py --apk ChromeShell.apk --debug

Debugging Java code

To debug the Java side of the app running in the device, follow the same approach that you would if you had a normal Java Android app:

  • Launch the ChromeShell app manually from the device.
  • In Eclipse, use the DDMS perspective to locate the org.chromium.chrome.shell process. Select it in the Devices panel and connect the debugger using the “light green bug” icon (not to be mistaken with the normal debug icon available from the other perspectives).
  • Change to the Debug perspective and set breakpoints as usual.

Enjoy!

chromium_android_eclipse_java

by eocanha at October 17, 2014 06:00 AM

October 16, 2014

Google Chrome Releases

Stable Channel Update for Chrome OS

The Stable channel has been updated to 38.0.2125.108 (Platform version: 6158.64.0) for all Chrome OS devices except Asus and Samsung Chromeboxes. This build contains an update to Adobe flash along with number of bug fixes and security updates. Systems will be receiving updates over the next several days. Here is a list of Chromium changes.

If you find new issues, please let us know by visiting our forum or filing a bug. Interested in switching channels? Find out how. You can submit feedback using ‘Report an issue...’ in the Chrome menu (3 horizontal bars in the upper right corner of the browser).

Dharani Govindan
Google Chrome

by Dharani (noreply@blogger.com) at October 16, 2014 08:41 PM

Beta Channel Update for Chrome OS

The Beta channel has been updated to 39.0.2171.25 (Platform version: 6310.14.0) for all Chrome OS devices except Lenovo Chromebook N20 and 11e, Acer Chromebook 11,  Asus Chromebook C200 and  C300, Toshiba Chromebook 2 and Google Pixel. This build contains a number of bug fixes, security updates and feature enhancements. Systems will be receiving updates over the next several days. Here is a list of Chromium changes.

Some highlights of these changes are:
  • Enable Chromecast support for media files stored on Google Drive
  • Update Network Error page design
  • Display apps installed in Google Drive in the Chrome OS Launcher

If you find new issues, please let us know by visiting our forum or filing a bug. Interested in switching channels? Find out how. You can submit feedback using ‘Report an issue...’ in the Chrome menu (3 horizontal bars in the upper right corner of the browser).

Ben Henry
Google Chrome

by Josafat (noreply@blogger.com) at October 16, 2014 08:25 PM

Dev Channel Update for Chrome OS

The Dev channel has been updated to 40.0.2188.1 (Platform version: 6366.0.0) for all Chrome OS devices. This build contains a number of bug fixes, security updates and feature enhancements. A list of changes can be found here.

If you find new issues, please let us know by visiting our forum or filing a bug. Interested in switching channels? Find out how. You can submit feedback using ‘Report an issue...’ in the Chrome menu (3 horizontal bars in the upper right corner of the browser).

Daniel Xie
Google Chrome

by Daniel xie (noreply@blogger.com) at October 16, 2014 05:08 PM

October 15, 2014

Google Chrome Blog

Translate web pages more easily with the new Google Translate Chrome Extension

[Cross-posted on the Google Translate blog]

When you're browsing the web, you might come across a page where some of the text is in a different language. With the new update to the Google Translate Chrome extension, you can translate just that piece of text, without worrying about the rest of the page.

Simply highlight the text that you want to translate, and then click the Translate icon that appears. You can also right click and choose "Google Translate". If you click the icon in the upper right of your browser window, with no text highlighted, you can translate the entire web page.
You can download and try the Translate extension from the Chrome Web Store; if you already have the extension installed, it will be updated automatically.

The Translate team is working hard to connect people by breaking language barriers across computers, mobile devices and Internet browsers. Our users make more than 1 billion translations a day, and we hope that our recent update will make their translation tasks a little easier!

Posted by Chao Tian, Software Engineer

by Google Chrome Blog (noreply@blogger.com) at October 15, 2014 04:34 PM

Google Chrome Releases

Beta Channel Update

The beta channel has been updated to 39.0.2171.27 for Windows, Mac and Linux.

A full list of changes is available in the log. Interested in switching release channels? Find out how. If you find a new issue, please let us know by filing a bug.

Alex Mineer
Google Chrome

by Alex Mineer (noreply@blogger.com) at October 15, 2014 10:26 AM

Chromium Blog

Noto on ChromeOS: No More “Tofu”

Every so often when reading a page written in a different language—especially Chinese, Korean, or Japanese (CJK) pages—you might see little boxes where letters should be, something that we call “tofu”. What's happened is that some of the characters are not supported by your computer. In July Google released Noto Sans CJK, the newest font in a family designed to cover 200+ languages in a harmonious way. As of Chrome OS 38, Noto is now the default sans serif and UI font for CJK languages.


Noto supports major living languages such as English, Russian, Greek, Arabic, and Hebrew, as well as widely supported languages such as Cherokee and Sinhala, and even ancient languages like Egyptian hieroglyphics and Imperial Aramaic. The ultimate goal is for Noto to support every character for every language in the world—which will make tofu a thing of the past.

Noto has many advanced features:
  • Pan-CJK: Simplified and Traditional Chinese, Japanese, and Korean, all in a single font.
  • Seven weights: Thin, Light, DemiLight, Regular, Medium, Bold, Black. ChromeOS has default support for Regular and Bold, with more coming soon.
  • Free and open source: Freely available for everyone under the Apache License, v2.0.
  • Comprehensive character coverage: Covers all the CJK Ideographs in the Unicode Basic Multilingual Plane and a few hundred Ideographs in Unicode Plane 2. Also covered are over twelve thousand Korean Hangul characters with full support for Old Hangul. The total number of glyphs in each font instance is exactly 65,536, the maximum number of glyphs allowed by the OpenType font specification. 
  • Region-appropriate glyph forms: CJK-shared ideographic characters follow region writing conventions to look appropriate to Chinese, Japanese, and Korean users. 
  • Harmony: Noto Sans CJK and all other members of the Noto family are visually compatible with Noto Sans for English, so that text mixing English with another language looks harmonious.


In ChromeOS, Noto is now the default “sans serif” font. Developers that want to use Noto on platforms other than ChromeOS can load them as web fonts from Google Fonts: Early Access.

Although Noto's Latin, Greek, and Cryllic (LGC) characters are designed to harmonize with the CJK characters, developers might still want to use more familiar fonts for the LGC text. To support that, Noto is available in different subsets including Japanese, Korean, Simplified Chinese, Traditional Chinese, and all of CJK. Developers can then use CSS's font fallback mechanism to specify a LGC font ahead of a Noto Sans subset.

For example, if you're targeting devices that don't have Noto installed, want to use Arial for LGC characters, and want to use Noto for Japanese characters, you can include the following in your stylesheet:
@import url(http://fonts.googleapis.com/earlyaccess/notosansjapanese.css); 
 body {
font-family: Arial, 'Noto Sans Japanese', sans-serif;
}
Shipping Noto by default on ChromeOS is one step towards making “tofu” a thing of the past. You can learn more at the Noto homepage.

Jungshik Shin, Font Harmony Master

by Google Chrome Blog (noreply@blogger.com) at October 15, 2014 08:50 AM

October 14, 2014

Google Chrome Releases

Chrome Beta for Android Update

The Chrome Team is excited to announce the beta release of Chrome 39 for Android. Chrome 39.0.2171.25 will be available in Google Play over the next few hours. This release contains lots of bug fixes and performance improvements. A partial list of changes in this build are available in the Git log. If you find a new issue, please let us know by filing a bug. More information about Chrome for Android is available on the Chrome site.

Jason Kersey
Google Chrome

by Jason Kersey (noreply@blogger.com) at October 14, 2014 05:30 PM

Dev Channel Update

The dev channel has been updated to 40.0.2188.2 for Windows, Mac and Linux.

A full list of changes is available in the log. Interested in switching release channels? Find out how. If you find a new issue, please let us know by filing a bug.

Karen Grünberg
Google Chrome

by Karen (noreply@blogger.com) at October 14, 2014 03:46 PM

Stable Channel Update

The stable channel has been updated to 38.0.2125.104 for Windows, Mac and Linux.

This release contains an update for Adobe Flash as well as a number of other fixes. A full list of changes is available in the log.

Interested in switching release channels? Find out how. If you find a new issue, please let us know by filing a bug.


Matthew Yuan
Google Chrome

by matthewyuan@chromium.org (noreply@blogger.com) at October 14, 2014 01:52 PM

Dev Channel Update for Chrome OS

The Dev channel has been updated to 39.0.2171.25 (Platform version: 6310.14.0) for all Chrome OS devices except Lenovo N20 and ThinkPad 11e Chromebooks, the Acer Chromebook 11, Asus Chromebooks C300 and C200, the HP Chromebook 14 WP2, the Toshiba Chromebook 2 and the Samsung Chromebook 2 11 - XE500C12 . This build contains a number of bug fixes, security updates and feature enhancements. A list of changes can be found here.

If you find new issues, please let us know by visiting our forum or filing a bug. Interested in switching channels? Find out how. You can submit feedback using ‘Report an issue...’ in the Chrome menu (3 horizontal bars in the upper right corner of the browser).

Ben Henry
Google Chrome

by Ben Henry (noreply@blogger.com) at October 14, 2014 10:46 AM

Igalia Chromium

Enrique Ocaña: Hacking on Chromium for Android from Eclipse (part 2)

In the previous post, I showed all the references to get the Chromium for Android source code, setup Eclipse and build the ChromeShell app. Today I’m going to explain how to debug that app running in the device.

Debugging from command line

This is the first step that we must ensure to have working before trying to debug directly from Eclipse. The steps are explained in the debugging-on-android howto, but I’m showing them here for reference.

Perform the “build Chrome shell” steps but using debug parameters:

 ninja -C out/Debug chrome_shell_apk
 build/android/adb_install_apk.py --apk ChromeShell.apk --debug

To avoid the need of having a rooted Android device, setup ChromeShell as the app to be debugged going to Android Settings, Debugging in your device. Now, to launch a gdb debugging session from a console:

 cd ~/ANDROID/src
 . build/android/envsetup.sh
 ./build/android/adb_gdb_chrome_shell --start

You will see that the adb_gdb script called by adb_gdb_chrome_shell pulls some libraries from your device to /tmp. If everything goes fine, gdb shouldn’t have any problem finding all the symbols of the source code. If not, please check your setup again before trying to debug in Eclipse.

Debugging from Eclipse

Ok, this is going to be hacky. Hold on your hat!

Eclipse can’t use adb_gdb_chrome_shell and adb_gdb “as is”, because they don’t allow gdb command line parameters. We must create some wrappers in $HOME/ANDROID, our working dir. This means “/home/enrique/ANDROID/” for me. The wrappers are:

Wrapper 1: adb_gdb

This is a copy of  ~/ANDROID/src/build/android/adb_gdb with some modifications. It calculates the same as the original, but doesn’t launch gdb. Instead, it creates two symbolic links in ~/ANDROID:

  • gdb is a link to the arm-linux-androideabi-gdb command used internally.
  • gdb.init is a link to the temporary gdb config file created internally.

These two files will make the life simpler for Eclipse. After that, the script prints the actual gdb command that it would have executed (but has not), and reads a line waiting for ENTER. After the user presses ENTER, it just kills everything. Here are the modifications that you have to do to the original adb_gdb you’ve copied. Note that my $HOME (~) is “/home/enrique”:

 # In the begining:
 CHROMIUM_SRC=/home/enrique/ANDROID/src
 ...
 # At the end:
 log "Launching gdb client: $GDB $GDB_ARGS -x $COMMANDS"

 rm /home/enrique/ANDROID/gdb
 ln -s "$GDB" /home/enrique/ANDROID/gdb
 rm /home/enrique/ANDROID/gdb.init
 ln -s "$COMMANDS" /home/enrique/ANDROID/gdb.init
 echo
 echo "---------------------------"
 echo "$GDB $GDB_ARGS -x $COMMANDS"
 read

 exit 0
 $GDB $GDB_ARGS -x $COMMANDS &&
 rm -f "$GDBSERVER_PIDFILE"

Wrapper 2: adb_gdb_chrome_shell

It’s a copy of ~/ANDROID/src/build/android/adb_gdb_chrome_shell with a simple modification in PROGDIR:

 PROGDIR=/home/enrique/ANDROID

Wrapper 3: gdbwrapper.sh

Loads envsetup, returns the gdb version for Eclipse if asked, and invokes adb_gdb_chrome_shell. This is the script to be run in the console before starting the debug session in Eclipse. It will invoke the other scripts and wait for ENTER.

 #!/bin/bash
 cd /home/enrique/ANDROID/src
 . build/android/envsetup.sh
 if [ "X$1" = "X--version" ]
 then
  exec /home/enrique/ANDROID/src/third_party/android_tools/ndk/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gdb --version
  exit 0
 fi
 exec ../adb_gdb_chrome_shell --start --debug
 #exec ./build/android/adb_gdb_chrome_shell --start --debug

Setting up Eclipse to connect to the wrapper

Now, the Eclipse part. From the “Run, Debug configurations” screen, create a new “C/C++ Application” configuration with these features:

  • Name: ChromiumAndroid 1 (name it as you wish)
  • Main:
    • C/C++ Application: /home/enrique/ANDROID/src/out/Debug/chrome_shell_apk/libs/armeabi-v7a/libchromeshell.so
    • IMPORTANT: From time to time, libchromeshell.so gets corrupted and is truncated to zero size. You must regenerate it by doing:

rm -rf /home/enrique/ANDROID/src/out/Debug/chrome_shell_apk
ninja -C out/Debug chrome_shell_apk

    • Project: ChromiumAndroid (the name of your project)
    • Build config: Use active
    • Uncheck “Select config using C/C++ Application”
    • Disable auto build
    • Connect process IO to a terminal
  • IMPORTANT: Change “Using GDB (DSF) Create Process Launcher” and use “Legacy Create Process Launcher” instead. This will enable “gdb/mi” and allow us to set the timeouts to connect to gdb.
  • Arguments: No changes
  • Environment: No changes
  • Debugger:
    • Debugger: gdb/mi
    • Uncheck “Stop on startup at”
    • Main:
      • GDB debugger: /home/enrique/ANDROID/gdb (IMPORTANT!)
      • GDB command file: /home/enrique/ANDROID/gdb.init (IMPORANT!)
      • GDB command set: Standard (Linux)
      • Protocol: mi2
      • Uncheck: “Verbose console”
      • Check: “Use full file path to set breakpoints”
    • Shared libs:
      • Check: Load shared lib symbols automatically
  • Source: Use the default values without modification (absolute file path, program relative file path, ChromiumAndroid (your project name)).
  • Refresh: Uncheck “Refresh resources upon completion”
  • Common: No changes.

When you have everything: apply (to save), close and reopen.

Running a debug session

Now, run gdbwrapper.sh in an independent console. When it pauses and starts waiting for ENTER, change to Eclipse, press the Debug button and wait for Eclipse to attach to the debugger. The execution will briefly pause in an ioctl() call and then continue.

To test that the debugging session is really working, set a breakpoint in content/browser/renderer_host/render_message_filter.cc, at content::RenderMessageFilter::OnMessageReceived and continue the execution. It should break there. Now, from the Debug perspective, you should be able to see the stacktrace and access to the local variables.

Welcome to the wonderful world of Android native code debugging from Eclipse! It’s a bit slow, though.

This completes the C++ side of this series of posts. In the next post, I will explain how to open the Java code of ChromeShellActivity, so that you will be able to hack on it like you would in a normal Android app project.

chromium_android_eclipse

by eocanha at October 14, 2014 06:00 AM

October 11, 2014

Igalia Chromium

Enrique Ocaña: Hacking on Chromium for Android from Eclipse (part 1)

In the Chromium Developers website has some excellent resources on how to setup an environment to build Chromium for Linux desktop and for Android. There’s also a detailed guide on how to setup Eclipse as your development environment, enabling you to take advantage of code indexing and enjoy features such as type hierarchy, call hierarchy, macro expansion, references and a lot of tools much better than the poor man’s trick of grepping the code.

Unfortunately, there are some integration aspects not covered by those guides, so joining all the dots is not a smooth task. In this series of posts, I’m going to explain the missing parts to setup a working environment to code and debug Chromium for Android from Eclipse, both C++ and Java code. All the steps and commands from this series of posts have been tested in an Ubuntu Saucy chroot. See my previous post on how to setup a chroot if you want to know how to do this.

Get the source code

See the get-the-code guide. Don’t try to reconvert a normal Desktop build into an Android build. It just doesn’t work. The detailed steps to get the code from scratch and prepare the dependencies are the following:

 cd ANDROID # Or the directory you want
 fetch --nohooks android --nosvn=True
 cd src
 git checkout master
 build/install-build-deps.sh
 build/install-build-deps-android.sh
 gclient sync --nohooks

Configure and generate the project (see AndroidBuildInstructions), from src:

 # Make sure that ANDROID/.gclient has this line:
 # target_os = [u'android']
 # And ANDROID/chromium.gyp_env has this line:
 # { 'GYP_DEFINES': 'OS=android', }
 gclient runhooks

Build Chrome shell, from src:

 # This builds
 ninja -C out/Release chrome_shell_apk
 # This installs in the device
 # Remember the usual stuff to use a new device with adb:
 # http://developer.android.com/tools/device.html 
 # http://developer.android.com/tools/help/adb.html#Enabling
 # Ensure that you can adb shell into the device
 build/android/adb_install_apk.py --apk ChromeShell.apk --release

If you ever need to update the source code, follow this recipe and use Release or Debug at your convenience:

 git pull origin master
 gclient sync
 # ninja -C out/Release chrome_shell_apk
 ninja -C out/Debug chrome_shell_apk
 # build/android/adb_install_apk.py --apk ChromeShell.apk --release
 build/android/adb_install_apk.py --apk ChromeShell.apk --debug

As a curiosity, it’s worth to mention that adb is installed on third_party/android_tools/sdk/platform-tools/adb.

Configure Eclipse

To configure Eclipse, follow the instructions in LinuxEclipseDev. They work nice with Eclipse Kepler.

In order to open and debug the Java code properly, it’s also interesting to install the ADT plugin in Eclipse too. Don’t try to reuse the Android SDK in “third_party/android_tools/sdk”. It seems to lack some things. Download a fresh standalone SDK from the official page instead and tell the ADT plugin to use it.

In the next post, I will explain how to debug C++ code running in the device, both from the command line and from Eclipse.

chromium_android_eclipse_cpp

by eocanha at October 11, 2014 12:46 AM

October 09, 2014

Google Chrome Releases

Dev Channel Update for Chrome OS

The Dev channel has been updated to 39.0.2171.14 (Platform version: 6310.9.0) for all Chrome OS devices except Lenovo N20 and ThinkPad 11e Chromebooks, the Acer Chromebook 11, Asus Chromebooks C300 and C200, the HP Chromebook 14 WP2, the Toshiba Chromebook 2 and the Samsung Chromebook 2 11 - XE500C12 . This build contains a number of bug fixes, security updates and feature enhancements. A list of changes can be found here.

If you find new issues, please let us know by visiting our forum or filing a bug. Interested in switching channels? Find out how. You can submit feedback using ‘Report an issue...’ in the Chrome menu (3 horizontal bars in the upper right corner of the browser).

Ben Henry
Google Chrome

by Ben Henry (noreply@blogger.com) at October 09, 2014 07:42 PM

Beta Channel Update

The Chrome team is excited to announce the promotion of Chrome 39 to the beta channel with 39.0.2171.19 for Linux.

A full list of changes is available in the log. Interested in switching release channels? Find out how. If you find a new issue, please let us know by filing a bug.

Alex Mineer
Google Chrome

by Alex Mineer (noreply@blogger.com) at October 09, 2014 03:16 PM

Dev Channel Update

Note: We've now updated Mac only to 40.0.2182.4 which has a fix for bug 421919

The dev channel has been updated to 40.0.2182.3 for Windows, Mac and Linux.

A full list of changes is available in the log. Interested in switching release channels? Find out how. If you find a new issue, please let us know by filing a bug.

Karen Grünberg
Google Chrome

by Karen (noreply@blogger.com) at October 09, 2014 02:56 PM

Beta Channel Update

The Chrome team is excited to announce the promotion of Chrome 39 to the beta channel with 39.0.2171.13 for Windows and Mac.

This release contains many stability and developer improvements including: 
  • 64-bit support for Mac
  • A number of new apps/extension APIs 
  • Lots of under the hood changes for stability and performance 
A full list of changes is available in the log. Interested in switching release channels? Find out how. If you find a new issue, please let us know by filing a bug.

Alex Mineer
Google Chrome

by Alex Mineer (noreply@blogger.com) at October 09, 2014 12:10 PM

Chromium Blog

Chrome 39 Beta: JS Generators, Animation Playback Control, and the WebApp Manifest

Today’s Chrome Beta channel release includes new tools to make web application development simpler and more powerful. Unless otherwise noted, changes described below apply to Chrome for Android, Windows, Mac, Linux, and Chrome OS.

JavaScript Generators

Writing asynchronous code in JavaScript can be less than straightforward. It often involves several nested functions and non-linear program execution, making it hard to develop, maintain and debug. This is such a common pain point for developers that they've given it a name: callback soup.

Starting today, Chrome Beta supports ES6 Generators. They allow developers to create iterators that pause their execution after yielding a value, and resume again when later invoked. This greatly simplifies the process of developing asynchronous code and reduces dependence on callback functions.

For additional information about Generators, read more about them or see them in action.

Web Animation Playback Control

Web Animations is a powerful new API that unifies all of the animation APIs on the web. We shipped basic support in May with Chrome 36. In this release we've added playback control, with methods such as play(), pause(),  and reverse(), and the ability to jump to a specific point in an animation's timeline. With our initial support, developers could create animations but not precisely control their playback. This next iteration enables animations that can react in real time to user input - as well as a variety of other creative uses.

Web Application Manifest

Previously when developers wanted to allow their web applications to be added to the home screen from Chrome for Android, they had to use a variety of <meta> and <link> tags to trigger this behavior and deliver relevant resources such as icons. Having this embedded in every page was not only repetitive, but was a waste of bandwidth and put extra bits on the critical path.

Starting in Chrome 39, Manifests provide a way to wrap metadata about a web application into a single file, reducing duplication. Developers seeking to enable "add to homescreen" can define a title, landing page, default orientation, and different icons depending on size and screen density. You can see how it works today, but stay tuned for more properties to be added in later releases.

Other updates in this release
  • The Beacon API enables developers to queue asynchronous network requests that will be sent, regardless of whether the user navigates to a new page
  • Scroll offsets (scrollTop, scrollLeft) now return high-precision fractional values in preparation for high-DPI support
  • XMLHttpRequest progress event properties position and totalSize are now deprecated in favor of the loaded and total properties
As always, visit chromestatus.com/features for a complete overview of Chrome’s developer features, and circle +Google Chrome Developers for more frequent updates.

Posted by Mounir Lamouri, the Manifestation of a Software Engineer

by Google Chrome Blog (noreply@blogger.com) at October 09, 2014 11:00 AM

Google Chrome Blog

A simpler, faster way to use Hangouts on your desktop

When you’re chatting with your friends and family, you want your conversations easily accessible, not buried in browser windows. Today, we’re introducing the Hangouts Chrome App for Chrome OS and Windows -- a simpler, faster way to use Hangouts on your computer alongside whatever else you’re doing.

The new app brings the best of Hangouts to your desktop, plus some improvements we think you’ll love:
Keep the conversation going, without taking over your desktop. The app has a streamlined design that keeps your chats accessible without getting in the way of everything else. Your contact list and all your chats are condensed into one easy to toggle window. Also, you’ll get integrated notifications that alert you to new messages, so you can quickly find the conversation you’re looking for.

More app, less Chrome. It works outside of your browser so your chats are always available, not tucked away inside a window. You’ll get all your messages as long as you have the app running, and your chats will sync across Hangouts on all your devices.

Voice calling from your desktop. The app now has all the video and voice features you’re used to in Hangouts. We recently announced you can make phone calls to any number in the world (via Hangouts dialer) and now you can do this right from your desktop.  If you use Google Voice, the app includes complete Google Voice support, so you can make and receive calls, and get your voicemails and SMS messages directly in Hangouts.

Download the Hangouts Chrome App today and get started with a new experience tailor-made for your desktop.  If you’re already using the Hangouts Chrome extension on your ChromeOS or Windows computer, you’ll also see a promo to try the new app over the next few weeks. To learn more, visit the Hangouts Help Center.

Posted by David Levin, Software Engineer, and the very model of a modern Hangout Handler

by Google Chrome Blog (noreply@blogger.com) at October 09, 2014 09:00 AM