Friday, February 8, 2013
Tuesday, January 22, 2013
Mozilla community meeting in Tokyo
Also, New Tokyo office for Mozilla Japan will open at Spring. This place will include MozSpaces.
Thursday, January 17, 2013
Friday, October 14, 2011
HTC touch input w/ Fennec
In this week, I bought HTC Desire Z to debug several input issue on Firefox Mobile. HTC touch input is very buggy implementation as IME (Input Method Editor). Although I turn on IME support on hardware keyboard for Firefox Mobile from version 9 (released at Dec 2011), Touch Input with hardware keyboard doesn't work well.
When I investigate this, a articles of stackoverflow.com is found. But this wasn't good article for workaround and details.
When IME support on android application, onKeyPreIme has to return false. Then, InputConnection.commitText() is called per input. But 1st parameter may be incorrect because it has no meta state (alt/fn or shift). In other word, When you input Shift+[A], we expect "A". But HTC touch input calls commitText("a")....
If you doesn't implement full IME support using BaseInputConnection. this issue doesn't occurs. BaseInputConnection.commitText() has a workaround code for this issue. It generates KeyEvent for input, then it uses InputConnection.sendKeyEvent. Since this event has correct state, onKeyDown can handle correct key event.
I will create new fix for this problem then, I will land this to Firefox 9 and 10.
Wednesday, September 21, 2011
Starting new platform porting
You know, you can build Firefox, Thunderbird, Seamonkey and Xulrunner as Windows x64 binary by my work. Now, Firefox x64 is tier 2. (automation builder builds binary, runs automation test and nightly is available.). I am interested in porting new platforms
Android x86
It already works on gingerbread of Android x86 and will work on Honeybomb. Bug number is 681202. Also, Opera mobile already runs on Android x86
Windows/arm
Required Visual Studio 11. There is a lack of important libraries such as wsock32 to build binaries. I believe that it will be fixed by Visual Studio 11 beta (actually CTP, not beta!). Also, bug number for my status is 686843.
Sunday, September 11, 2011
Fennec for Android on VirtualBox
These are screenshots using Fennec for Android on VirtualBox
APK package is here (this is debug build)
Monday, September 5, 2011
Windows x64 status updated
Today, I have landed bug 663748 to mozilla-inbound. (Also this will be integrated to mozilla-central today or tomorrow). It means that Win64 build will pass all automation tests. But, since this is for test tool, no effect on Firefox package.
Next Step
- To analyze crash data easily, we have to improve google breakpad for Win64. dumpsym.exe has to add unwind information to symbol file.
- PGO using VS2010. We consider to use VS2010 as official build. Now although we uses VS2008SP1 with PGO options, switching to VS2010SP1 means that we can get more performance. Here is a data how improve to switch to VS2010. But, unfortunately, due to a bug of VS2010, we cannot use 64-bit toolchain. Of course, there is a workaround.
Friday, August 5, 2011
Status Win64 build
Mochitest-1 failure
This is WebGL issue. Actually, Win64 build has no ANGLE that is D3D -> OpenGL ES wrapper. ANGLE now supports Win64 building by r697, and I and ransGaming fix a Win64 bug by r707. After merging these into m-c, it will pass mochitest-1.
test failures on jstest
I cannot reproduce this on my development machine. So if you know reproduce step, let me know. I think that this is GC issue, but I am still investigating...
But if this is compiler issue, this will be fixed using VS2010SP1. We have a plan to upgrade toolchains to VS2010SP1 as default.
Wednesday, May 18, 2011
Some browser migrations are gone
Since I landed bug 656205, some old migration (MacIE, Netscape 4 and Firebird / Phoenix) functions is gone. This code was too old and it didn't use async Places APIs.
Also, I am working Chrome migration code. At least, it will be landed on Firefox 7.
Monday, March 21, 2011
Firefox 4 on pandaboard (Ubuntu 10.10)
I got pandaboard to improve ARM code on Firefox. Pandaboard uses TI OMAP4 (Dual-core Cortex-A9 and PowerVR SGX 540), so it is the most powerful ARM board.
This data is sunspider benchmark on Firefox 4 on pandaboard. BTW, my Android phone (HTC Desire HD) is 2800ms.
============================================
RESULTS (means and 95% confidence intervals)
--------------------------------------------
Total: 1984.1ms +/- 0.7%
--------------------------------------------
3d: 354.2ms +/- 1.3%
cube: 139.8ms +/- 2.0%
morph: 65.2ms +/- 5.1%
raytrace: 149.2ms +/- 3.5%
access: 290.7ms +/- 2.5%
binary-trees: 47.1ms +/- 3.5%
fannkuch: 116.6ms +/- 6.9%
nbody: 47.1ms +/- 6.9%
nsieve: 79.9ms +/- 2.0%
bitops: 105.1ms +/- 1.8%
3bit-bits-in-byte: 5.1ms +/- 8.0%
bits-in-byte: 50.4ms +/- 1.2%
bitwise-and: 12.3ms +/- 5.5%
nsieve-bits: 37.3ms +/- 2.9%
controlflow: 21.5ms +/- 7.2%
recursive: 21.5ms +/- 7.2%
crypto: 181.5ms +/- 1.9%
aes: 94.5ms +/- 0.8%
md5: 51.8ms +/- 4.7%
sha1: 35.2ms +/- 5.2%
date: 279.9ms +/- 1.9%
format-tofte: 173.9ms +/- 2.6%
format-xparb: 106.0ms +/- 2.9%
math: 144.1ms +/- 1.2%
cordic: 39.7ms +/- 1.5%
partial-sums: 47.5ms +/- 2.3%
spectral-norm: 56.9ms +/- 1.7%
regexp: 123.1ms +/- 3.9%
dna: 123.1ms +/- 3.9%
string: 484.0ms +/- 1.0%
base64: 44.3ms +/- 3.3%
fasta: 96.4ms +/- 3.1%
tagcloud: 146.4ms +/- 1.5%
unpack-code: 135.5ms +/- 1.7%
validate-input: 61.4ms +/- 3.2%
Although I have already landed ARM optimized NSS code (for crypto) into cvs.mozilla.org, it won't used by Firefox 4 or 5. It is for NSS trunk (NSS version 4). But I am investigate ARM specific optimization for Firefox 5.
Wednesday, December 22, 2010
Running 32-bit plugin on 64-bit Firefox
I am working Bug 595053 and Bug 620888 for 32-bit plugin support on 64-bit Firefox. Today, it is successful that 32-bit plugin (Flash and Sliverlight) runs on 64-bit Firefox.
This screenshot is sliverlight page on Firefox 64-bit (with 32-bit plugin support). Although Firefox process is 64-bit, sliverlight works.
Monday, December 20, 2010
SunSpider on Intel Atom processor
This result of sunspider data is Firefox 4.0b9pre (2010-12-18) vs Google Chrome 10.0.612.1 dev on Ubuntu 10.10 + Intel Atom Z560. This result is interesting. (FROM is Chrome and TO is Firefox)
TEST COMPARISON FROM TO DETAILS
=============================================================================
** TOTAL **: 1.38x as fast 1361.8ms +/- 5.4% 987.8ms +/- 1.0% significant
=============================================================================
3d: 1.41x as fast 224.0ms +/- 11.6% 158.5ms +/- 0.9% significant
cube: ?? 61.7ms +/- 23.3% 64.0ms +/- 1.8% not conclusive: might be *1.037x as slow*
morph: 1.48x as fast 47.2ms +/- 8.7% 31.9ms +/- 3.1% significant
raytrace: 1.84x as fast 115.1ms +/- 9.3% 62.6ms +/- 1.1% significant
access: - 130.6ms +/- 12.0% 128.7ms +/- 2.5%
binary-trees: *2.02x as slow* 9.7ms +/- 42.8% 19.6ms +/- 12.8% significant
fannkuch: 1.42x as fast 53.3ms +/- 18.4% 37.6ms +/- 2.7% significant
nbody: 1.73x as fast 48.4ms +/- 11.9% 27.9ms +/- 2.2% significant
nsieve: *2.27x as slow* 19.2ms +/- 7.6% 43.6ms +/- 2.5% significant
bitops: 1.77x as fast 87.6ms +/- 19.7% 49.5ms +/- 4.9% significant
3bit-bits-in-byte: 2.79x as fast 7.8ms +/- 5.8% 2.8ms +/- 10.8% significant
bits-in-byte: ?? 17.8ms +/- 37.5% 19.6ms +/- 3.1% not conclusive: might be *1.101x as slow*
bitwise-and: 4.19x as fast 30.6ms +/- 22.5% 7.3ms +/- 6.6% significant
nsieve-bits: 1.59x as fast 31.4ms +/- 14.6% 19.8ms +/- 8.3% significant
controlflow: 1.49x as fast 12.7ms +/- 14.0% 8.5ms +/- 5.9% significant
recursive: 1.49x as fast 12.7ms +/- 14.0% 8.5ms +/- 5.9% significant
crypto: 1.65x as fast 111.6ms +/- 6.8% 67.6ms +/- 1.1% significant
aes: 1.61x as fast 59.7ms +/- 14.7% 37.1ms +/- 2.8% significant
md5: 1.64x as fast 26.0ms +/- 7.3% 15.9ms +/- 1.4% significant
sha1: 1.77x as fast 25.9ms +/- 7.1% 14.6ms +/- 3.4% significant
date: 1.50x as fast 241.3ms +/- 3.7% 161.3ms +/- 1.4% significant
format-tofte: *1.116x as slow* 84.7ms +/- 8.2% 94.5ms +/- 1.2% significant
format-xparb: 2.34x as fast 156.6ms +/- 4.6% 66.8ms +/- 4.2% significant
math: ?? 88.1ms +/- 4.4% 91.6ms +/- 1.3% not conclusive: might be *1.040x as slow*
cordic: *1.47x as slow* 19.4ms +/- 10.7% 28.5ms +/- 2.7% significant
partial-sums: 1.27x as fast 51.0ms +/- 5.3% 40.1ms +/- 1.0% significant
spectral-norm: *1.30x as slow* 17.7ms +/- 6.0% 23.0ms +/- 2.1% significant
regexp: 1.34x as fast 50.2ms +/- 8.4% 37.5ms +/- 7.6% significant
dna: 1.34x as fast 50.2ms +/- 8.4% 37.5ms +/- 7.6% significant
string: 1.46x as fast 415.7ms +/- 12.6% 284.6ms +/- 1.9% significant
base64: 1.44x as fast 30.2ms +/- 6.4% 21.0ms +/- 6.2% significant
fasta: 1.25x as fast 60.7ms +/- 5.1% 48.5ms +/- 2.6% significant
tagcloud: 1.31x as fast 114.1ms +/- 9.5% 87.2ms +/- 1.4% significant
unpack-code: 1.60x as fast 137.3ms +/- 22.0% 85.6ms +/- 2.5% significant
validate-input: 1.74x as fast 73.4ms +/- 20.7% 42.3ms +/- 6.5% significant
If you use Intel Core i7, this score is even. Why is V8 engine slow on Intel Atom?
Friday, September 24, 2010
64bit Browser speed by SunSpider
This data is Firefox 4 x64 vs Internet Explorer 9 x64. Firefox 4 is three times faster than IE9。
TEST COMPARISON FROM TO DETAILS
=============================================================================
** TOTAL **: *2.90x as slow* 389.8ms +/- 3.0% 1132.2ms +/- 0.8% significant
=============================================================================
3d: *2.57x as slow* 71.7ms +/- 0.7% 184.0ms +/- 3.9% significant
cube: *1.94x as slow* 27.5ms +/- 1.4% 53.4ms +/- 1.8% significant
morph: *6.11x as slow* 11.0ms +/- 0.0% 67.2ms +/- 2.5% significant
raytrace: *1.91x as slow* 33.2ms +/- 0.9% 63.4ms +/- 9.6% significant
access: *4.97x as slow* 40.5ms +/- 18.4% 201.4ms +/- 1.0% significant
binary-trees: *2.81x as slow* 10.1ms +/- 71.9% 28.4ms +/- 3.4% significant
fannkuch: *4.72x as slow* 17.8ms +/- 1.7% 84.1ms +/- 0.3% significant
nbody: *11.0x as slow* 6.2ms +/- 4.9% 67.9ms +/- 1.3% significant
nsieve: *3.28x as slow* 6.4ms +/- 5.8% 21.0ms +/- 0.0% significant
bitops: *8.29x as slow* 18.9ms +/- 3.3% 156.7ms +/- 0.3% significant
3bit-bits-in-byte: *45.1x as slow* 0.8ms +/- 37.7% 36.1ms +/- 0.6% significant
bits-in-byte: *3.98x as slow* 10.3ms +/- 6.6% 41.0ms +/- 0.0% significant
bitwise-and: *23.3x as slow* 1.7ms +/- 20.3% 39.6ms +/- 0.9% significant
nsieve-bits: *6.56x as slow* 6.1ms +/- 3.7% 40.0ms +/- 0.0% significant
controlflow: *8.30x as slow* 4.7ms +/- 7.3% 39.0ms +/- 0.0% significant
recursive: *8.30x as slow* 4.7ms +/- 7.3% 39.0ms +/- 0.0% significant
crypto: *3.04x as slow* 35.4ms +/- 21.1% 107.5ms +/- 0.7% significant
aes: *1.62x as slow* 21.9ms +/- 33.5% 35.4ms +/- 2.0% significant
md5: *3.65x as slow* 9.6ms +/- 3.8% 35.0ms +/- 0.0% significant
sha1: *9.51x as slow* 3.9ms +/- 5.8% 37.1ms +/- 0.6% significant
date: *1.37x as slow* 58.0ms +/- 19.3% 79.7ms +/- 0.6% significant
format-tofte: *1.62x as slow* 27.4ms +/- 1.3% 44.5ms +/- 0.8% significant
format-xparb: ?? 30.6ms +/- 36.1% 35.2ms +/- 0.9% not conclusive: might be *1.150x as slow*
math: *3.46x as slow* 31.8ms +/- 1.4% 109.9ms +/- 0.9% significant
cordic: 1.28x as fast 13.4ms +/- 3.7% 10.5ms +/- 3.6% significant
partial-sums: *6.56x as slow* 9.0ms +/- 0.0% 59.0ms +/- 1.0% significant
spectral-norm: *4.30x as slow* 9.4ms +/- 3.9% 40.4ms +/- 1.2% significant
regexp: *2.24x as slow* 13.8ms +/- 4.1% 30.9ms +/- 2.3% significant
dna: *2.24x as slow* 13.8ms +/- 4.1% 30.9ms +/- 2.3% significant
string: *1.94x as slow* 115.0ms +/- 11.6% 223.1ms +/- 0.4% significant
base64: *6.18x as slow* 4.4ms +/- 8.4% 27.2ms +/- 1.1% significant
fasta: *2.06x as slow* 23.5ms +/- 31.5% 48.5ms +/- 1.4% significant
tagcloud: *1.99x as slow* 29.1ms +/- 25.9% 57.9ms +/- 0.4% significant
unpack-code: ?? 46.6ms +/- 21.0% 49.8ms +/- 1.1% not conclusive: might be *1.069x as slow*
validate-input: *3.48x as slow* 11.4ms +/- 76.3% 39.7ms +/- 0.9% significant
Thursday, September 23, 2010
Windows x64 version status
- Since there is no build machine, Mozilla doesn't build nightly version for Win64. More detail is Bug 597919. So if this bug is fixed, nightly for Win64 will be built.
- I have fixed JIT engine bugs for Win64. Although current nightly (2010-09-16?) will be crash by V8 benchmark (from browser only), please wait next nightly. it will be fixed.
- Flash Plugin for Win64 is released as preview!. It works fine on Minefield. (64bit browser that uses NPAPI is Firefox/Minefield only!:-))
- Although Internet Explorer 9 for x64 has released as beta, do you test JavaScript benchmark such as SunSpider or Kraken?. Our JIT engine (TraceMonkey + JaegerMonkey) is too faster than IE9 x64 JIT!
Sunday, May 30, 2010
Windows x64 build is available!
Armen announced Windows x64 build available on nightly build.
Also...
- This built on VC++ 2010. (x86 build still uses VC++ 2005SP1)
- installer is 32-bit. So installer path becomes same x86 by default, and registry is 32-bit. I am investigating about workaround for this.
- jemalloc is disable now. Ted is reviewing my patch for VC++ 2005 and VC++ 2008. About for VC++2010, see bug 563316
- comm-central tree is available to build x64 building. I am not owner for Thunderbird and SeaMonkey, so I don't know when they start building x64.
If you found new problem, please file a bug to bugzilla!
Monday, April 5, 2010
structure support on js-ctypes
I posted an article to Japanese Mozilla community site about js-ctypes on Firefox.next (3.7). Firefox.next improves many features such as struct support and callback support for js-ctypes.
This is a sample to use color picker on Windows using js-ctypes. ComDlg32 has color picker API "ChooseColor()". This sample is to access ChooseColor().
Components.utils.import("resource://gre/modules/ctypes.jsm");
var custColors_type = ctypes.ArrayType(ctypes.int32_t, 16);
const CHOOSECOLOR = new ctypes.StructType(
'CHOOSECOLOR',
[
{'lStructSize': ctypes.uint32_t},
{'hwndOwner' : ctypes.uint32_t},
{'hInstance' : ctypes.uint32_t},
{'rgbResult' : ctypes.uint32_t},
{'lpCustColors' : custColors_type.ptr},
{'Flags' : ctypes.uint32_t},
{'lCustData' : ctypes.uint32_t},
{'lpfnHook' : ctypes.uint32_t},
{'lpTemplateName' : ctypes.uint32_t}
]);
var comdlg32 = ctypes.open("comdlg32");
var ChooseColor = comdlg32.declare("ChooseColorW",
ctypes.stdcall_abi,
ctypes.int32_t,
CHOOSECOLOR.ptr);
var custColors = new custColors_type();
var col = new CHOOSECOLOR (CHOOSECOLOR.size, 0, 0, 0,
custColors.address(), 0, 0, 0, 0);
ChooseColor(col.address());
alert(col.rgbResult);
Wednesday, March 31, 2010
JavaScript Performance on Cortex-A8
You know, V8 by Google has the fastest JIT compiler. Many benchmarks get the top score on x86 environment. But how about on other CPU such as ARM? Any web sites don't research the benchmark on ARM.
I have a netbook using Freescale i.MX515. Although this net book "netwalker" is sold ($400?) at Japan market, I have tested Chromium 5.0 and Firefox 3.6 using Ubuntu 10.04 (lucid) beta. This data is on this environment.
This is interesting... V8 on ARM isn't optimized!. They should improve it for mobile market.
Monday, January 25, 2010
Symbian update for xulrunner
Choose Qt as widget
Nokia has a plan to discontinue Avkon (current S60 UI) as default widget. They will move to Qt that Nokia is their owner. For feature, I choose Qt as widget
I consider OpenGL ES for gfx/thebes
As long as I look current port for mobile device such as Windows Mobile and Maemo, graphic performance is poor. Although currently device has Graphics acceleration, xulrunner uses software rendering. I think that this design is bad for mobile. Since mobile device is poor CPU performance, we should use GPU
Compiler
Although RVCT 4.0 is free for Symbian developer, we cannot use for S60 now. S60 SDK only support RVCT 2.2 or GCCE (gcc 3.4). I want to use gcc 4.3 for Symbian build, but I have to modify SDK headers...
Thursday, January 14, 2010
64-bit version Firefox 3.6 RC1
I have uploaded 64-bit version Firefox 3.6 RC1 to http://wiki.mozilla-x86-64.com/Firefox:Download.
Patch (Mercurial Queue format) will be uploaded to http://hg.mozilla-x86-64.com/hgwebdir.cgi/mozilla1.9.2-win64-mq/ at this week.




