Closed Bug 430413 Opened 18 years ago Closed 4 years ago

Port Mozilla to GDK

Categories

(Core :: Widget: Gtk, defect)

x86
Linux
defect
Not set
normal

Tracking

()

RESOLVED WONTFIX

People

(Reporter: jh0421.sung, Unassigned)

Details

Attachments

(1 file, 2 obsolete files)

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.2; .NET CLR 1.1.4322) Build Identifier: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9b5) Gecko/2008032619 Firefox/3.0b5 If you look into Firefox3's APIs, you can find out that some of them directly use GDK/X11 methods. It generates dependency with X11. Actually Firefox3 supports only X11 backend on Linux platform. However, there is a possibility that several different back-end are supported. This bug intends to port Mozilla regardless of back-end. Therefore, we need to remove specific X dependency and raise it to GDK which acts as a wrapper around the low-level drawing and windowing functions provided by the underlying graphics system. By converting X APIs to GDK's, it will be more flexible. A wiki page (http://wiki.mozilla.org/Mobile/DFBPorting) and bug 422221 explaining DirectFB porting strategy have been opened by my coworker, Mohan Reddy Duggi. Compared with previous bug, this bug makes Firefox act under GDK (DirectFB as well as X11) without defects. Reproducible: Always
Attached patch gfx.patch for GDK porting (obsolete) — Splinter Review
Three files (nsSystemFontsGTK2.cpp, nsThebesDeviceContext.cpp and gfxPlatformGtk.h) in gfx (except surface) module are modified in order to remove direct X dependency.
Attached patch toolkit.patch for GDK porting (obsolete) — Splinter Review
This patch will be cleaned up X dependency of the two files (nsGTKRemoteService.h and nsGTKRemote.cpp) in toolkit module.
Attachment #317215 - Flags: superreview?(vladimir)
Attachment #317215 - Flags: review?(rbs)
Attachment #317234 - Flags: superreview?(benjamin)
Attachment #317234 - Flags: review?(mconnor)
Comment on attachment 317215 [details] [diff] [review] gfx.patch for GDK porting This looks fine, but please don't nest the #ifdefs.. e.g., #ifdef MOZ_ENABLE_GTK2 #ifdef MOZ_X11 should just be #if defined(MOZ_ENABLE_GTK2) && defined(MOZ_X11) I'll take a look at the other patch in a bit.
Attachment #317215 - Flags: superreview?(vladimir)
Attachment #317215 - Flags: superreview+
Attachment #317215 - Flags: review?(rbs)
Attachment #317215 - Flags: review+
Comment on attachment 317234 [details] [diff] [review] toolkit.patch for GDK porting Caillon, could you look at this? I don't know much about gdk, and I want to make sure that switching from X to GDK will retain backwards compatibility with older clients.
Attachment #317234 - Flags: superreview?(benjamin)
Attachment #317234 - Flags: review?(mconnor)
Attachment #317234 - Flags: review?(caillon)
Assignee: nobody → jh0421.sung
Status: UNCONFIRMED → NEW
Ever confirmed: true
Comment on attachment 317234 [details] [diff] [review] toolkit.patch for GDK porting >- XInternAtoms(GDK_DISPLAY(), XAtomNames, NS_ARRAY_LENGTH(XAtomNames), >- False, XAtoms); >+ for(int i=0 ; i<NS_ARRAY_LENGTH(GdkAtomNames) ; i++) >+ { >+ GdkAtoms[i] = gdk_atom_intern_static_string(GdkAtomNames[i]); >+ } So, there is no GDK equivalent to XInternAtoms. This change specifically will regress us in terms of roundtrips to the X server, not to mention the additional calls to gdk_intern_atom() below. On the local machine, this is probably not too bad. But a big use case of the remote service is from remote machines, and this will significantly hurt performance where roundtrips are not cheap...
As pointed out above, it's better to leave original source code in case of using X backend. So, I tried to divide this part into two branches (when using X11 or not). However, I wonder whether it demands our serious consideration or not. Because Firefox's remote control feature seems to be only effective through X properties. This feature is included in 'toolkit.patch for GDK porting'. Without using X backend, I guess that 'remote' directory which is a higher rank of 'nsGTKRemoteService.cpp' and 'nsGTKRemoteService.h' is excluded.
Comment on attachment 317215 [details] [diff] [review] gfx.patch for GDK porting In order to make the patch be coincident with Bugzilla's rules
Attachment #317215 - Attachment is obsolete: true
The previous patch was modified with Bugzilla's style. You can simply comfirm the details of the changed part. ***Old version*** #ifdef MOZ_ENABLE_GTK2 #ifdef MOZ_X11 ***New version*** #if defined(MOZ_ENABLE_GTK2) && defined(MOZ_X11)
Attachment #320147 - Flags: superreview?(vladimir)
Attachment #320147 - Flags: review?(vladimir)
Comment on attachment 320147 [details] [diff] [review] The patch was modified with Bugzilla's style. This looks fine, thanks!
Attachment #320147 - Flags: superreview?(vladimir)
Attachment #320147 - Flags: superreview+
Attachment #320147 - Flags: review?(vladimir)
Attachment #320147 - Flags: review+
Comment on attachment 317234 [details] [diff] [review] toolkit.patch for GDK porting minusing based on my previous comment 5
Attachment #317234 - Flags: review?(caillon) → review-
Comment on attachment 317234 [details] [diff] [review] toolkit.patch for GDK porting Consider 'XRemote' service
Attachment #317234 - Attachment is obsolete: true
I'm guessing at a better component here.
Component: General → Widget: Gtk

The bug assignee didn't login in Bugzilla in the last 7 months.
:stransky, could you have a look please?
For more information, please visit auto_nag documentation.

Assignee: jh0421.sung → nobody
Flags: needinfo?(stransky)
Status: NEW → RESOLVED
Closed: 4 years ago
Flags: needinfo?(stransky)
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: