User:Minooz/OSD600/FF

From CDOT Wiki
< User:Minooz‎ | OSD600
Revision as of 21:45, 6 April 2011 by Minooz (talk | contribs) (Firefox practice (Tabs))
Jump to: navigation, search

FIREFOX

My works on firefox stuff

Firefox Build

For building firefox I followed the instructions on annasob's blogon how to build firefox on different platforms, also looked at build instructions and prerequisites @Mozilla Developing Center(MDC). I didn't figure out why it was so slow though on both Vista and Win 7.

First, I tried to build firefox on Vista:

Intel(R) Processor D CPU 2.17 GHz
2GB DDR2 memory
Windows Vista 32bit
Visual Studio 2010

and this was my .mozconfig:

. $topsrcdir/browser/config/mozconfig
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/objdir-ff-release
mk_add_options MOZ_MAKE_FLAGS="-j2"
mk_add_options MOZ_CO_PROJECT=browser
ac_add_options --enable-application=browser
ac_add_options --disable-optimize
ac_add_options --enable-debug

Then I started to build it on Windows 7:

Intel(R) Processor D CPU 3.20 GHz
4GB DDR2 memory
Windows 7 64bit
Visual Studio 2008

I tried to build based on the same .mozconfig file, but the first error I got was related to SDK. I needed to upgrade SDK version based on these recommendations to SDK 7, and the .Net Framework to 4. Also I needed to change the SDK version in the SDK configuration tool to 7.1.

At the end, the build was successfully done after 2 hours on Win 7 and more than 4 hours on Vista!

Minefield final.jpg

Firefox practice (Tabs)

Source Control: mercurial
Blog: @ wordpress
  • problem
Open a new tab right beside the selected tab.
Target file to be changed @mozilla-central
  • Patches
1- patchMoz_Mar
diff -r cd84bf75a03a browser/base/content/tabbrowser.xml
--- a/browser/base/content/tabbrowser.xml	Wed Mar 30 17:41:25 2011 -0400
+++ b/browser/base/content/tabbrowser.xml	Wed Mar 30 17:52:21 2011 -0400
@@ -1335,27 +1335,24 @@
             // activeness in the tab switcher.


-            if ((aRelatedToCurrent == null ? aReferrerURI : aRelatedToCurrent) &&
-                Services.prefs.getBoolPref("browser.tabs.insertRelatedAfterCurrent")) {
               let newTabPos = (this._lastRelatedTab ||
                                this.selectedTab)._tPos + 1;
               if (this._lastRelatedTab)
                 this._lastRelatedTab.owner = null;
               else
                 t.owner = this.selectedTab;
               this.moveTabTo(t, newTabPos);
               this._lastRelatedTab = t;
-            }

Firefox Bug (WhiteSpaces)

Source Control: mercurial
BugTracker: bugzilla
Blog: @ wordpress
  • Bugs
Make is_space() in nsImageMap.cpp HTML5-compliant. Ticket @bugzilla #565031
Target file to be changed @ mozilla-central
  • Documentation
  • Helpful tips
  • Patches
1- patchMoz_Apr6
diff -r ec44e31cc46b layout/generic/nsImageMap.cpp
--- a/layout/generic/nsImageMap.cpp	Wed Mar 30 20:48:32 2011 -0400
+++ b/layout/generic/nsImageMap.cpp	Wed Apr 06 22:11:22 2011 -0400
@@ -107,18 +107,21 @@ Area::~Area()
   delete [] mCoords;
 }
 
 #include <stdlib.h>
 
 inline PRBool
 is_space(char c)
 {
-  return (c == ' ' ||
-          c == '\f' ||
+  return (c == ' '); 
+}
+not_space(char c)
+{
+  return (c == '\f' ||
           c == '\n' ||
           c == '\r' ||
           c == '\t' ||
           c == '\v');
 }
 
 static void logMessage(nsIContent*      aContent,
                        const nsAString& aCoordsSpec,
@@ -181,21 +184,33 @@ void Area::ParseCoords(const nsAString& 
     while (*n_str != '\0')
     {
       PRBool has_comma;
 
       /*
        * Skip to a separator
        */
       tptr = n_str;
-      while (!is_space(*tptr) && *tptr != ',' && *tptr != '\0')
+      while (!is_space(*tptr) && *tptr != ',' && *tptr != ';' && *tptr != '\0')
       {
-        tptr++;
+        if (not_space(*tptr))
+        {
+          break;
+        }
+        else 
+        {
+          tptr++;
+        }
       }
       n_str = tptr;
+      
+      if (*tptr == ';')
+      {
+        *tptr = ',';
+      }
 
       /*
        * If no more entries, break out here
        */
       if (*n_str == '\0')
       {
         break;
       }
@@ -256,17 +271,17 @@ void Area::ParseCoords(const nsAString& 
     {
       return;
     }
 
     /*
      * Second pass to copy integer values into list.
      */
     tptr = cp;
-    for (i=0; i<cnt; i++)
+    for (i = 0; i < cnt; i++)
     {
       char *ptr;
 
       ptr = strchr(tptr, ',');
       if (ptr)
       {
         *ptr = '\0';
       }