Saturday, August 07, 2010

Building Chromium browser on your Mac

Copyright © Chromium Project
Building your own browser is the best way to find bugs and fix them. Now, I'd like to introduce how to build Chromium on your mac. I think that the latest code seems more stable(?) and provides more features.

This is a starting point to build Chromium on Mac OS X.
http://code.google.com/p/chromium/wiki/MacBuildInstructions

Installing the depot-tools

http://dev.chromium.org/developers/how-tos/install-gclient

$ svn co http://src.chromium.org/svn/trunk/tools/depot_tools

Add depot_tools to your PATH:
$ export PATH=`pwd`/depot_tools:"$PATH"

Getting the code

A checkout straight from the Subversion (SVN) repository can take a long time. It would be good to download a tar ball from http://build.chromium.org/buildbot/archives/chromium_tarball.html

Then, you can update the code to the latest revision from the SVN repository.
$ gclient sync

Building from the command line

To build all targets (it takes a long time due to test case builds)
$ cd ~/chromium/src/build
$ xcodebuild -project all.xcodeproj -configuration Debug -target All

To build just chrome:
$ cd ~/chromium/src/chrome
$ xcodebuild -project chrome.xcodeproj -configuration Debug -target chrome

Running Chromium

Run Chromium debug build
$ cd ~/chromium/src/xcodebuild/Debug
$ open ./Chromium.app

Run Chromium release build
$ cd ~/chromium/src/xcodebuild/Release
$ open ./Chromium.app

The latest revision of Chromium looks cool.



Wednesday, August 04, 2010

Feedbacks from the communities on the key events handling in WebKit

I posted an email to the WebKit mailing list on the issue I mentioned in the previous blog.The email introduced a status of the inconsistent event handling during a IME composition on WebKit. Fortunately, I've got quick feedbacks from the communities on each issue as follows,

Issue1) IME Composition events should be handled consistently in all ports of WebKit.
=> "This can't be achieved as it depends on the platform IME system. Therefore, different IMEs making consistent behaviors across multiple platforms is an exercise in futility. However, If we are seeing different behaviour with the same IME on a single platform, that's a bug."

Issue2) The textInput event should be dispatched after a compositionend event.
=> "There's a discussion on www-dom at w3.org about changing the spec because there seems a issue of handling a textInput event. Currently, before the textInput event is dispatched, DOM has been already mutated during a composition. Therefore, If there is to be a textInput event, first, the composition text is removed. And then, if the textEvent is not cancelled, the browser inserts the composition text again. It seems not efficient."

Issue3) While a composition session is active, keyboard events should not be dispatched to the DOM.
=> In relation to keyboard events, WebKit has fired key events during a composition for a long time. Therefore, It can't stop to fire key events in order to avoid site break.

As a result, they agreed that the DOM Level 3 event model for input composition does not match the requirements of actual web content as I have worried. Therefore, in order to avoid the confusion among web developers, the DOM Level3 events spec needs to introduce the reason why each browser handles keyboard events in different ways.

Monday, July 26, 2010

IME composition events are handled inconsistently in WebKit

I have been working on Korean Hangul composition issue in WebKitGtk. By the way, I've noticed that IME Composition events are handled inconsistently in each WebKit port.

According to W3C DOM Level 3 events,
1) A browser should fire compositionstart, compositionupdate, and compositionend event during a composition.
2) The textEvent event should be dispatched after a compositionend event if the composition has not been canceled.
3) While a composition session is active, keyboard events should not be dispatched to the DOM (i.e., the text composition system "swallows" the keyboard events), and only compositionupdate events may be dispatched to indicate the composition process.

However, all WebKit ports handle composition & textEvent events in inconsistent ways. Even keyboard events are still dispatched to the DOM during a composition.

Therefore, it is necessary to fix the problems as follows:
1) IME Composition events should be handled consistently in all WebKit ports.
2) Keyboard events should not be dispatched during a composition.
3) The textInput event should be dispatched after a compositionend event.

The following table shows the status of DOM events of WebKit during a Hangul(Korean Alphabet) composition.
Korean Hangul Composition Event Test in WebKit based browsers
You can find a test case from here.
I filed a bug for this issue in WebKit Bugzilla.

Sunday, October 11, 2009

Debugging Fennec front-end

Fennec is a XUL application, like Firefox based on Mozilla Platform. Therefore, it can be debugged and modified with the Firefox debugging tools you are familiar with.

XUL applications consist of several XUL, JavaScript, and CSS files, which are archived in a Jar file. In the case of Fennec, it has two jar files in fennec/chrome/. en-US.jar which has localization information, chrome.jar which has Fennec front-end code.

To modify them,

1) Extract the chrome.jar in the current path
2) Modify the chrome.manifest as follows
override chrome://global/skin/about.css chrome://browser/skin/about.css
skin browser classic/1.0 content/..
content branding content/branding/
content firstrun content/ contentaccessible=yes
content browser content/
In order to display variable values or simple JavaScript debug message information in the system console, you can use the dump function. Before using this command, it needs to enable browser dump preferences by typing about:config in the URL bar.
browser.dom.window.dump.enabled=true
This is an example of using dump() in the startup() funciton in browser.js

 startup: function() {
    var self = this;

    dump("begin startup\n");

    let container = document.getElementById("tile-container");
   ...

The dump function works well on Linux system, but it doesn't work in Visual Studio in Windows system in order to debug Fennec for Windows Mobile.
It works well in Visual Studio, so I could see debug messages in the output box of Visual Studio using the latest build of Fennec.


References

Thursday, August 27, 2009

Fixing a hardware keyboard problem in Mobile Firefox for Windows Mobile

Finally, my patch was applied to the mainline of Mozilla and this cumbersome bug has been fixed. I am so happy to contribute to Mozilla. Here is the detail what the problem was fixed:

Windows Mobile keeps the status of hardware keyboard in the registry as follows:

"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Shell\HasKeyboard"

A software keyboard can pop-up if a device doesn't have a hardware keyboard. However, in the case that the device has a slide-out keyboard, the value should be changed according to the status of the slide-out keyboard.

For example:

1) When the keyboard does not slide out, the HasKeyboard value has to be "0"
2) Whenthe keyboard slides out, the HasKeyboard value has to be "1"

However, the above registry value, HasKeyboard, always returns 1 because it doesn't consider the status of slide-out keyboard. :-(

Windows Mobile doesn't have a standard API for detecting a status of slide-out keyboard so each device maker has to provide its own hidden or public API. For Samsung Windows Mobile devices, Samsung provides Windows Mobile SDK from the Samsung Mobile Innovator site so we can easily get a state of the slide-out keyboard on Samsung devices. However, HTC doesn't provide any document on how to use device APIs.

As a result, some hackers had tried to find out how to use hidden APIs for accessing hardware features of HTC devices, but there is no API about slide-out keyboard.

Anyway, Fennec has a bug with detecting the state of slide-out keyboard, which seemed easy to solve. At least, it was easy for my i780, but my first patch couldn't support HTC touch pro that has a side-out keyboard.

I tried to check most of the registry values if there is any change. Finally, I found the value from  HKEY_LOCAL_MACHINE\System\GDI\Rotation\Slidekey. That made me fix the bug easily. :-)


Sunday, April 26, 2009

SAMSUNG Windows Mobile SDK 1.0 Released!

SAMSUNG Windows Mobile SDK

Samsung Windows Mobile SDK 1.0 was released!

You can download Samsung Windows Mobile SDK 1.0 from SAMSUNG Mobile Innovator web site, but it needs to be registered for downloading. Of course, it's free.

It consists of API Spec, programming guide, installation guide, header files & library for device APIs, and sample code.

The APIs is used for providing advanced features unique to Samsung phones. You might already have experience using advanced capabilities featured in the Windows Mobile APIs, like GPS, Bluetooth, or multimedia support. In addition to the Microsoft Windows Mobile APIs, you can use Samsung device APIs to access phone features such as the accelerometer, notification LEDs, and haptics feedback.

Fennec team is preparing to support device APIs for Fennec.
Bugzilla Items
Therefore, it would be very helpful to support device APIs exposed to Fennec.

SAMSUNG i780 skin SAMSUNG Omina Skin

In addition, you can download SAMSUNG device emulator skin files from the web site.

The Device Emulator skin archive contains skins for the following phones:
  • SGH-i617 BlackJack II
  • SGH-i907 Epix [and SGH-i780 Mirage] (I own this model)
  • SCH-i760 Robin
  • SCH-i770 Saga
  • SPH-i325 ACE
  • SGH-i900 Omnia [and SCH-i910 Omnia]
Device Emulator skins enable you to change the physical appearance of the Device Emulator in Microsoft Visual Studio. When installed, the Samsung Device Emulator skins will enable you to run the emulator with the appearance of a Samsung phone

Programming Guide of SAMSUNG Windows Mobile SDK

Monday, April 13, 2009

How to make a cab installer of Windows Mobile Fennec build

When you finish building Fennec for Windows Mobile, you can ask "How can I install Fennec on my Windows Mobile handset?"

"Where is the installer?"

Fennec build system creates only a zip file in the path of "objdir/mobile/dist".

You might install Fennec using this zip file. But, it is cumbersome. Fortunately, the Fennnec team has released Fennec for Windows Mobile as a cab install.

"How can they make a cab installer?"

If you want to make a cab installer, move to /objdir/mobile/mobile/installer.
And then, run Makefile as follows,

$make installer

If so, you can find a cab installer in the path of "objdir/mobile/dist".

Friday, March 27, 2009

Fennec is running on SAMSUNG i780

Doug Turner solved the test blocker of Fennec for Windows Mobile.

I was delight to hear the new because I had tried several times to run Fennec on my SAMSUNG i780 (called Mirage in Korea). I had failed to run Fennec.

Fennec1.0 alpha for Windows Mobile

Fennec1.0 alpha for Windows Mobile


Tooday, I tried to build Fennec for Windows Mobile from the trunk of Mozilla.
It is working well, but very slow on i780.

I found several problems as follows,
- Multiple instances
- Long start-up time
- IME button not disappeared
- Broken Hangul(Korean)

I will file up these problems on the Bugzilla and try to fix them.

Thursday, February 19, 2009

Supporting Hildon Menu for Fennec

I implemented the hildon menu for Fennec on Maemo.

Actually, the hildon menu feature has not been decided to be added for 1.0 release.
I'm not sure if this patch could be applied to the mainline.

Mozilla platform already supports the hildon framework so it is easy to add new things for Maemo if you wish.



Monday, February 09, 2009

Mozilla@FOSDEM2009

FOSDEM 2009 finished last week. Although I didn't attend FODSEM, I got a feel for what was going through through blogs and photos on Flikr. FODSEM(Free and Open Source Software Developer’s European Meeting) is a largest occasion for free/open source developers in Europe. It is relevant to various open source projects and it can be compared with OSCON(O’Reilly Open Source Convention) held in the US.


The following projects had their own session:


KDE, GNOME, Mozilla, X.org, Fedora+CentOS, OpenSUSE, BSD+PostgreSQL, GNUStep, Jabber, Debian, Ada, Free Java, OpenOffice, Drupal, Ruby & Rails, MySQL, Linux Kernel
In addition, there were other projects sessions such as OpenMoko, Maemo, CMake, Webkit, Xfce, and OLPC.
In particular, there were Mozilla related sessions as follows:

  • Mozilla Europe
  • Mozilla Foundation
  • Mozilla and Universities
  • What’s after Firefox 3.1
  • Community Sites Project
  • Building XUL communities
  • SeaMonky
  • Overview of Mozilla QA
  • Oni
  • Rising to the Sun(bird)
  • Thunderbird3
  • Prism
  • Fennec
  • Embedding
  • Mozilla headless back-end
  • Events/EduCamp@FOSDEMa2009

Photo: Teemu Mäntynen( An old woman wears a Firefox t-shirts. it's lovely)
For your information, you can find session videos of FOSDEM. They have not open 2009 videos, you can find session videos of the 2008,2007

I hope to attend FOSDEM next year.
References

Sunday, January 11, 2009

Hildon related bugzilla issues

Fennec1.0 alpha3 preview
426291 -- Add support for Hildon (Maemo) application menu
426292 -- Add support for Hildon (Maemo) filepicker
426293 -- Add support for Hildon (Maemo) banner for alerts
426299 -- Create a theme for Hildon (Maemo) platform [tracking bug]

Fennec has some bugs in Hildon integration as you can see the above list, but the Fennec team has not cared about theses bugs, because they seems to focus on implementing the UI features and Windows Mobile port for XULRunner. Therefore, the platform specific features still have not been implemented for the Maemo platform.

Anyway, Hildon menu integration seems easy to implement.

Can I try??

Friday, December 26, 2008

Firefox for Mobile Devices

I'd like to share a little bit old presentation about Mobile Firefox.

From: mobileportland, 2 months ago

Firefox For Mobile Devices
Dietrich Ayala's presentation at May 2008 meeting of Mobile Portland

SlideShare Link

Tuesday, August 19, 2008

Firefox+ Summit




I attended Firefox+ Summit at Whistler, Canada. It was a great time in my life because I met Mozilla folks who I had known the name only and talk about some issues I have wondered.

This occasion was held to celebrate Firefox3 release and talk about the future plan of Firefox3.1 and the current issues.

About 400 Mozilla peoples joined the summit coming from all over the World. They are involved in the various projects such as AMO(Add-ons), QA, Localization, Gecko, JavaScript, Mobile, UX, evangelist, messaging, SVG, MDC, and so on.

How could all peoples come together for Mozilla?

Mozilla is now making an effort to keep the freedom of the Web and Internet, because many companies are trying to change the web in their own unique ways by spreading proprietary technologies. Those approaches look like gorgeous and helpful for the users, but they hurt the Web. Although Mozilla is just a nonprofit corporation, but there are countless contributors and volunteers. So I believe that we can change the Web in a standard and open way although those activities are a little bit slow and require more consensus.

Let's make the Web a better place.

Saturday, May 31, 2008

Firefox Seoul Party for celebrating the release of Firefox3

Mitchell Baker, chair of the Mozilla foundation and Gen Kanai, Asia marketing manager, visited Korea to attend the OECD ministerial meeting during June 17th ~ 18th and give talks in the Future of Global Web Technology conference on June 19th.

Coincidentally, Mozilla had officially released Firefox3 in this period of time, so the Mozilla Korea Community hosted a Firefox Seoul party to celebrate the release of Firefox3. They also attended the party, so it made the event more exciting for the community.

Before the party, I had the opportunity to have dinner with Mitchell Baker and Gen Kanai. I heard about the story of how Mitchell started her career in IT and was involved in the Mozilla project. It was an awesome story. I think she is part of the history of the Web.

I was also pleased to meet Gen, although we had not met each other,  because I had seen his talk in the Lift conference and read his blog. So I felt like I was meeting people I was already acquainted with. In addition, he has already written about the Mozilla Korea Community activities and the unique situation of using ActiveX controls in Korea in  his blog. So I'd like to thank him for his efforts.


There were some events during the party. Firstly, we enjoyed an interesting video of introducing the new features of Firefox3 and some photos of the Mozilla Korea Community activities.

Secondly, we had a Q&A time with Michell Baker. She kindly gave us answers about many questions regarding Mozilla/Firefox despite the late time and busy schedule. It left me wondering where she got her power & passion.

As the chair of the Mozilla foundation, she has striven to make the people all over the world access the Web equally without any restrictions. So I think that those efforts make her more powerful and active.

Thanks, Mozilla for keeping the Web for everyone; I will also help Mozilla spread Firefox.

Photo by Gen Kanai

Sunday, May 18, 2008

Latest looks of Fennec (Mobile Firefox)

The plan of Mobile Firefox was announced in October last year and the Mozilla community is now very busy to develop Mobile Firefox.

Fennec is the code name of Mobile Firefox, which is a desert fox. You may have seen a fennec in TV animation. The size of fennec is smaller than normal fox and it has big ears. So I think the name of Fennec seems to be suited well for Mobile Firefox.

The Mozilla Community opened the source code of Fennec and a guide of how to build it. It is a little bit intricate to build it because it is not merged into the Mozilla trunk.

After build and run, you can see the following appearance.

Fennec (Mobile Firefox) on N810


Flock: Editing Bookmark

The basic features of browser were already implemented such as the navigation bar and bookmark menu. But, panning is a little bit slow and zooming is not working in the latest code.

Fennec can be built in Maemo Scratchbox and run on XULRunner so I'll post a way of how to build and run in N810 later. It would be helpful if you give any feedbacks to the Mozilla community after testing Fennec.

References

Thursday, April 24, 2008

My N810 was delivered from the US.

I bought a Nokia N810 from Amazon. Actually, there are not any shopping malls selling N810 in Korea so I had to buy an N810 from the oversea shopping mall. Anyway, I am very satisfied with N810. It may be my favorite toy.

N810 uses the Maemo platform that is based on Linux 2.6, GTK+, Matchbox and other open source projects. Scratchbox is used for its development environment that supports a cross-platform development environment. So the users can implement an application without knowing how to use a toolchain for specific target devices. In addition, we can easily install applications from the repositories using Debian packaging & repository system.

I think that it's a truly open mobile platform based on Linux. Because Nokia gave their governance of hildon to the GNOME community.

First, I'd like to build XUL Runner and run Fennec (Mozilla Mobile). It seems that it could run on N810 and Windows Mobile 6. So I'll check the status and give my feedback to the community.

:-)

References

Sunday, April 20, 2008

Camera Interface on Mobile Platform

Mozilla platform is trying to support device APIs for mobile environment.
Some people call them native interface

I already posted a blog on device APIs

The Mozilla community started to discuss what the device APIs should be supported through the news group and Mozilla wiki.

Christopher added some information regarding the device APIs in the wiki.
So you can find on-going issues to support the device APIs. They are not confirmed, so you can suggest your idea & opinion to them.

Actually, I'm interested in implementing a camera interface for Mozilla platform. This camera interface is not so important on desktop, but it plays a important role in mobile environment. Because the users can take a photo more easily using their phone.

That is a reason why Mozilla Mobile has been interested in implementing Camera API on Mozilla platform.

I think that implementing Camera API seems to be not difficult, because Mozilla already showed its video playback functionality through HTML5 element, which uses the GStreamer framework. So we can use a camera input instead of network stream. But, you should know how to use the camera input inside Mozilla.

Some of mobile platforms provide a way of using their camera input such as Windows Mobile5.0, Maemo platform. So I'd like to introduce the APIs as follows,

MaemoPlatform
There is an article which introduces how to use the Camera API
According to the article, applications can access the Camera interface through a kernel API called Video4Linux. The built-in camera present in Nokia N810 looks compatible with Video-4-Linux version 2 API from the article.

Fortunately, the Maemo platform delegates all multimedia handling to the GStreamer framework. It means that developers can use the Camera API if they know only how to use the GStreamer framework on Maeme platform.


Windows Mobile 5.0
Windows Mobile developers can manipulate the camera input through DirectShow. But It needs to know some prior knowledge of how to use COM interface.

Mozilla Mobile is planning to support the Camera interface through JavaScript. I'm not sure if Mozilla Mobile will expose the interface for the Web. Someday, the users would be able to upload their photos taken by the camera directly from Mobile Firefox to Flickr in any ways.

Saturday, April 05, 2008

Real Full Browsing in Korea

LG Telelcom, the smallest of three telecom operators in Korea launched mobile full browsing service with an attractive fixed-rate plan that allows unlimited data download within 6 month and 1G bytes after then for 6,000 won ($6) per month.

Other telecom operators also have provided mobile full browsing service, but the rate plan is very expensive. For example, SK telecom charges about 3072Won(3$) per 1MB for data transfer.

The full browser was provided by Infraware that is a Korean company. It features Ajax and zoomo-in/out so the user can use most of features of the Web.

But there are still limitations of using the Internet. This service is only for browsing the Web. Other kinds of network access are limited by expensive rate such as on-line game, Internet accessible applications. There is also limitation of data download although 1G bytes is large size of data.

Anyway, this would be a significant change for mobile web in Korea. Therefore, many of the user will be able to experience real full browsing in mobile environment from now.

I'm looking forward to another new services which provide more open environment at an affordable price for users

* Reference

Wednesday, March 19, 2008

Bangalore is a heaven for software engineers

For a while, I have been to Bangalore before. I had a busy time so I couldn't write blogs during that time.  As you know, there are many IT companies in Bangalore. Most of them are from the United states and Europe. So now, Bangalore is called the Silicon Valley of India. Therefore, excellent SW engineers now have come here from each state of India and even other countries. They are well educated in universities of technology and use English well. Indian software companies also are developed nicely. They are not only carrying on outsourcing, but also exporting their solutions such as banking, accounting, and ERP. InfoSys, WiPro, and TaTa Consulting are the typical companies.
InfoSys,Bangalore
Actually, many IT engineers & researchers moved to the US to get a job in the 80s  and early 90s because there were no good jobs for them in India at that time. So, some Indians had successful results. The founder of hotmail is a good example. And now, they are leading IT in the US. Some people say that Microsoft wouldn’t be able to do anything without Indian engineers. Some of them are returning to India with high technologies and Western corporate culture and distribute advanced software technologies to their country. New engineers are learning and experiencing cutting-edge technologies, process, and management skills from them. I think Bangalore is a heaven for software engineers. There are so many jobs in various areas. So they can find a favored job and be able to go to another country to get a better job if they have enough careers and skills. So IT areas are the most popular for Indian students and many young students want to be a software engineer. I think that the future of Indian IT business is very bright. There are enough human resources and a good education system. They have experienced various business & technologies from the foreign companies that are advanced in India. So I believe Indian software companies would play more important roles in the IT revolution of the World.

Sunday, February 17, 2008

Open Source in Asia


I'd like to introduce a presentation about open source in Asia.

The speaker is Gen Kanai who is working for Mozilla Corporation.
He talked about Mozilla community & open source activities in Asia such as:
  • Situation of Mozilla Community in Korea, China, Japan, and Taiwan
  • Three barriers to participate in Open Source Projects such as culture, language and education
  • Examples of Open Source Project in ASIA (Ruby, Red flag linux, and Dzongkha Debain Linux)
The leader of Korea Mozilla Community, Channy Yun commented the situation of Open Source Activities in Korea.

You can understand the situation of Open source in Korea from this article.

Thanks