Hello community,

here is the log from the commit of package MozillaFirefox for openSUSE:11.4
checked in at Sun Feb 27 12:37:46 CET 2011.



--------
--- old-versions/11.4/all/MozillaFirefox/MozillaFirefox.changes 2011-02-09 
08:47:19.000000000 +0100
+++ 11.4/MozillaFirefox/MozillaFirefox.changes  2011-02-23 10:27:44.000000000 
+0100
@@ -1,0 +2,6 @@
+Wed Feb 23 07:52:04 UTC 2011 - [email protected]
+
+- update to version 4.0b12
+- rebased patches
+
+-------------------------------------------------------------------

calling whatdependson for 11.4-i586


Old:
----
  firefox-4.0b11-source.tar.bz2
  l10n-4.0b11.tar.bz2

New:
----
  firefox-4.0b12-source.tar.bz2
  l10n-4.0b12.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ MozillaFirefox.spec ++++++
--- /var/tmp/diff_new_pack.SVvCIb/_old  2011-02-27 12:36:30.000000000 +0100
+++ /var/tmp/diff_new_pack.SVvCIb/_new  2011-02-27 12:36:30.000000000 +0100
@@ -31,15 +31,15 @@
 BuildRequires:  wireless-tools
 %endif
 %if 0%{?use_xulrunner}
-BuildRequires:  %{xulrunner}-devel = 2.0b11
+BuildRequires:  %{xulrunner}-devel = 2.0b12
 %endif
 License:        GPLv2+ ; LGPLv2.1+ ; MPLv1.1+
-Version:        %{mainver}b11
-Release:        1
+Version:        %{mainver}b12
+Release:        1.<RELEASE2>
 Provides:       web_browser
 Provides:       firefox = %{version}-%{release}
 Provides:       firefox = %{mainver}
-%define         releasedate 2011020300
+%define         releasedate 2011022200
 Summary:        Mozilla Firefox Web Browser
 Url:            http://www.mozilla.org/
 Group:          Productivity/Networking/Web/Browsers
@@ -137,7 +137,7 @@
 %package translations-other
 Summary:        Extra translations for MozillaFirefox
 License:        GPLv2+ ; LGPLv2.1+ ; MPLv1.1+
-Provides:       
locale(%{name}:af;ak;ast;be;bg;bn_BD;br;cy;el;en_ZA;eo;et;eu;fy_NL;ga_IE;gd;gu_IN;he;hi_IN;hr;hy_AM;id;is;kk;kn;ku;lg;lt;lv;mai;mk;ml;mr;nn_NO;nso;or;pa_IN;rm;ro;si;sk;sl;son;sq;sr;ta;ta_LK;te;th;tr;uk)
+Provides:       
locale(%{name}:af;ak;ast;be;bg;bn_BD;br;bs;cy;el;en_ZA;eo;es_MX;et;eu;fy_NL;ga_IE;gd;gl;gu_IN;he;hi_IN;hr;hy_AM;id;is;kk;kn;ku;lg;lt;lv;mai;mk;ml;mr;nn_NO;nso;or;pa_IN;rm;ro;si;sk;sl;son;sq;sr;ta;ta_LK;te;th;tr;uk;zu)
 Group:          System/Localization
 Requires:       %{name} = %{version}
 Obsoletes:      %{name}-translations < %{version}-%{release}

++++++ compare-locales.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/compare-locales/lib/Mozilla/Checks.py 
new/compare-locales/lib/Mozilla/Checks.py
--- old/compare-locales/lib/Mozilla/Checks.py   2011-02-04 10:10:07.000000000 
+0100
+++ new/compare-locales/lib/Mozilla/Checks.py   2011-02-23 09:14:08.000000000 
+0100
@@ -37,6 +37,7 @@
 
 import re
 import itertools
+import codecs
 from difflib import SequenceMatcher
 from xml import sax
 try:
@@ -52,7 +53,7 @@
     pattern = None
 
     def use(self, file):
-        return self.pattern.match(file)
+        return self.pattern.match(file.file)
 
     def check(self, refEnt, l10nEnt):
         '''Given the reference and localized Entities, performs checks.
@@ -187,30 +188,40 @@
 
 
 class DTDChecker(Checker):
-    '''Tests to run on DTD files.
+    """Tests to run on DTD files.
 
     Uses xml.sax for the heavy lifting of xml parsing.
 
     The code tries to parse until it doesn't find any unresolved entities
     anymore. If it finds one, it tries to grab the key, and adds an empty
     <!ENTITY key ""> definition to the header.
-    '''
+    """
     pattern = re.compile('.*\.dtd$')
 
     eref = re.compile('&(%s);' % DTDParser.Name)
     tmpl = '''<!DOCTYPE elem [%s]>
-<elem>
-%s
-</elem>
+<elem>%s</elem>
 '''
     xmllist = set(('amp', 'lt', 'gt', 'apos', 'quot'))
 
+    # Setup for XML parser, with default and text-only content handler
+    parser = sax.make_parser()
+    class TextContent(sax.handler.ContentHandler):
+        textcontent = ''
+        def characters(self, content):
+            self.textcontent += content
+
+    defaulthandler = sax.handler.ContentHandler()
+    texthandler = TextContent()
+
+    processContent = None
+
     def check(self, refEnt, l10nEnt):
-        '''Try to parse the refvalue inside a dummy element, and keep
+        """Try to parse the refvalue inside a dummy element, and keep
         track of entities that we need to define to make that work.
 
         Return a checker that offers just those entities.
-        '''
+        """
         refValue, l10nValue = refEnt.val, l10nEnt.val
         # find entities the refValue references,
         # reusing markup from DTDParser.
@@ -218,9 +229,13 @@
                       for m in self.eref.finditer(refValue)) \
                       - self.xmllist
         entities = ''.join('<!ENTITY %s "">' % s for s in sorted(reflist))
-        parser = sax.make_parser()
+        if self.processContent is None:
+            self.parser.setContentHandler(self.defaulthandler)
+        else:
+            self.texthandler.textcontent = ''
+            self.parser.setContentHandler(self.texthandler)
         try:
-            parser.parse(StringIO(self.tmpl % (entities, 
refValue.encode('utf-8'))))
+            self.parser.parse(StringIO(self.tmpl % (entities, 
refValue.encode('utf-8'))))
         except sax.SAXParseException, e:
             yield ('warning',
                    (0,0),
@@ -237,29 +252,106 @@
         if reflist:
             warntmpl += ' (%s known)' % ', '.join(sorted(reflist))
         try:
-            parser.parse(StringIO(self.tmpl % (_entities, 
l10nValue.encode('utf-8'))))
+            if self.processContent is not None:
+                self.texthandler.textcontent = ''
+            self.parser.parse(StringIO(self.tmpl % (_entities, 
l10nValue.encode('utf-8'))))
         except sax.SAXParseException, e:
             # xml parse error, yield error
             # sometimes, the error is reported on our fake closing
             # element, make that the end of the last line
-            lnr = e.getLineNumber() - 2
+            lnr = e.getLineNumber() - 1
             lines = l10nValue.splitlines()
             if lnr > len(lines):
                 lnr = len(lines)
                 col = len(lines[lnr-1])
             else:
                 col = e.getColumnNumber()
+                if lnr == 1:
+                    col -= len("<elem>") # first line starts with <elem>, 
substract
             yield ('error', (lnr, col), ' '.join(e.args))
 
         for key in missing:
             yield ('warning', (0,0), warntmpl % key)
 
+        if self.processContent is not None:
+            for t in self.processContent(self.texthandler.textcontent):
+                yield t
 
-__checks = [DTDChecker(), PropertiesChecker()]
+
+class PrincessAndroid(DTDChecker):
+    """Checker for the string values that Android puts into an XML container.
+
+    
http://developer.android.com/guide/topics/resources/string-resource.html#FormattingAndStyling
+    has more info. Check for unescaped apostrophes and bad unicode escapes.
+    """
+    quoted = re.compile("(?P<q>[\"']).*(?P=q)$")
+    def unicode_escape(self, str):
+        """Helper method to try to decode all unicode escapes in a string.
+
+        This code uses the standard python decode for unicode-escape, but 
that's
+        somewhat tricky, as its input needs to be ascii. To get to ascii, the
+        unicode string gets converted to ascii with backslashreplace, i.e.,
+        all non-ascii unicode chars get unicode escaped. And then we try to 
roll
+        all of that back.
+        Now, when that hits an error, that's from the original string, and we 
need
+        to search for the actual error position in the original string, as the
+        backslashreplace code changes string positions quite badly. See also 
the
+        last check in TestAndroid.test_android_dtd, with a lengthy chinese 
string.
+        """
+        val = str.encode('ascii', 'backslashreplace')
+        try:
+            val.decode('unicode-escape')
+        except UnicodeDecodeError, e:
+            args = list(e.args)
+            badstring = args[1][args[2]:args[3]]
+            i = str.rindex(badstring, 0, args[3])
+            args[2] = i
+            args[3] = i + len(badstring)
+            raise UnicodeDecodeError(*args)
+    def use(self, file):
+        """Use this Checker only for DTD files in embedding/android."""
+        return (file.module == "embedding/android") and 
DTDChecker.pattern.match(file.file)
+    def processContent(self, val):
+        """Actual check code.
+        Check for unicode escapes and unescaped quotes and apostrophes, if 
string's not quoted.
+        """
+        # first, try to decode unicode escapes
+        try:
+            self.unicode_escape(val)
+        except UnicodeDecodeError, e:
+            yield ('error', e.args[2], e.args[4])
+        # check for unescaped single or double quotes.
+        # first, see if the complete string is single or double quoted, that 
changes the rules
+        m = self.quoted.match(val)
+        if m:
+            q = m.group('q')
+            offset = 0
+            val = val[1:-1] # strip quotes
+        else:
+            q = "[\"']"
+            offset = -1
+        stray_quot = re.compile(r"[\\\\]*(%s)" % q)
+            
+        for m in stray_quot.finditer(val):
+            if len(m.group(0)) % 2:
+                # found an unescaped single or double quote, which message?
+                msg = m.group(1) == '"' and u"Quotes in Android DTDs need 
escaping with \\\" or \\u0022, or put string in apostrophes." \
+                      or u"Apostrophes in Android DTDs need escaping with \\' 
or \\u0027, or use \u2019, or put string in quotes."
+                yield ('error', m.end(0)+offset, msg)
+
+
+class __checks:
+    props = PropertiesChecker()
+    android_dtd = PrincessAndroid()
+    dtd = DTDChecker()
 
 def getChecks(file):
-    checks = map(lambda c: c.check, filter(lambda c: c.use(file), __checks))
-    def _checks(refEnt, l10nEnt):
-        return itertools.chain(*[c(refEnt, l10nEnt) for c in checks])
-    return _checks
+    check = None
+    if __checks.props.use(file):
+        check = __checks.props.check
+    elif __checks.android_dtd.use(file):
+        check = __checks.android_dtd.check
+    elif __checks.dtd.use(file):
+        check = __checks.dtd.check
+    return check
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/compare-locales/lib/Mozilla/CompareLocales.py 
new/compare-locales/lib/Mozilla/CompareLocales.py
--- old/compare-locales/lib/Mozilla/CompareLocales.py   2011-02-04 
10:10:07.000000000 +0100
+++ new/compare-locales/lib/Mozilla/CompareLocales.py   2011-02-23 
09:14:08.000000000 +0100
@@ -425,9 +425,9 @@
     f.write(''.join(map(ensureNewline,trailing)))
     f.close()
   def notify(self, category, file, data):
-    '''Check filterObserver for the found data, and if it's
+    """Check filterObserver for the found data, and if it's
     not to ignore, notify observers.
-    '''
+    """
     rv = self.filterObserver.notify(category, file, data)
     if rv == 'ignore':
       return rv
@@ -441,7 +441,7 @@
   def compare(self, ref_file, l10n):
     try:
       p = Parser.getParser(ref_file.file)
-      checks = Checks.getChecks(ref_file.file)
+      checks = Checks.getChecks(ref_file)
     except UserWarning:
       # no comparison, XXX report?
       return
@@ -575,7 +575,7 @@
     # overload this if needed
     pass
 
-def compareApp(app, otherObserver = None, merge_stage = None):
+def compareApp(app, otherObserver = None, merge_stage = None, clobber = False):
   '''Compare locales set in app.
 
   Optional arguments are:
@@ -584,6 +584,8 @@
     The return values of that callback are ignored.
   - merge_stage. A directory to be used for staging the output of
     l10n-merge.
+  - clobber. Clobber the module subdirectories of the merge dir as we go.
+    Use wisely, as it might cause data loss.
   '''
   o  = Observer()
   cc = ContentComparer(o)
@@ -592,6 +594,12 @@
   cc.set_merge_stage(merge_stage)
   o.filter = app.filter
   for module, reference, locales in app:
+    if merge_stage is not None and clobber:
+      # if clobber and merge is on, remove the stage for the module if it 
exists
+      clobberdir = os.path.join(merge_stage, module)
+      if os.path.exists(clobberdir):
+        shutil.rmtree(clobberdir)
+        print "clobbered " + clobberdir
     dc = DirectoryCompare(reference)
     dc.setWatcher(cc)
     for locale, localization in locales:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/compare-locales/lib/Mozilla/tests/unitChecks.py 
new/compare-locales/lib/Mozilla/tests/unitChecks.py
--- old/compare-locales/lib/Mozilla/tests/unitChecks.py 2011-02-04 
10:10:07.000000000 +0100
+++ new/compare-locales/lib/Mozilla/tests/unitChecks.py 2011-02-23 
09:14:08.000000000 +0100
@@ -1,29 +1,30 @@
 import unittest
 
 from Mozilla.Checks import getChecks
-from Mozilla.Parser import getParser
+from Mozilla.Parser import getParser, Entity
+from Mozilla.Paths import File
 
 
 class BaseHelper(unittest.TestCase):
-    filename = None
+    file = None
     refContent = None
 
     def setUp(self):
-        p = getParser(self.filename)
+        p = getParser(self.file.file)
         p.readContents(self.refContent)
         self.refs = [e for e in p]
 
     def _test(self, content, refWarnOrErrors):
-        p = getParser(self.filename)
+        p = getParser(self.file.file)
         p.readContents(content)
         l10n = [e for e in p]
-        checks = getChecks(self.filename)
+        checks = getChecks(self.file)
         found = tuple(checks(self.refs[0], l10n[0]))
         self.assertEqual(found, refWarnOrErrors)
 
 
 class TestPlurals(BaseHelper):
-    filename = 'foo.properties'
+    file = File('foo.properties', 'foo.properties')
     refContent = '''# LOCALIZATION NOTE (downloadsTitleFiles): Semi-colon list 
of plural forms.
 # See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
 # #1 number of files
@@ -60,18 +61,147 @@
 
 
 class TestDTDs(BaseHelper):
-    filename = 'foo.dtd'
+    file = File('foo.dtd', 'foo.dtd')
     refContent = '''<!ENTITY foo "This is &apos;good&apos;">
 '''
     def testWarning(self):
         self._test('''<!ENTITY foo "This is &not; good">
 ''',
                    (('warning',(0,0),'Referencing unknown entity `not`'),))
+    def testErrorFirstLine(self):
+        self._test('''<!ENTITY foo "This is </bad> stuff">
+''',
+                   (('error',(1,10),'mismatched tag'),))
+    def testErrorSecondLine(self):
+        self._test('''<!ENTITY foo "This is
+  </bad>
+stuff">
+''',
+                   (('error',(2,4),'mismatched tag'),))
     def testXMLEntity(self):
         self._test('''<!ENTITY foo "This is &quot;good&quot;">
 ''',
                    tuple())
 
+class TestAndroid(unittest.TestCase):
+    """Test Android checker
+
+    Make sure we're hitting our extra rules only if
+    we're passing in a DTD file in the embedding/android module.
+    """
+    apos_msg = u"Apostrophes in Android DTDs need escaping with \\' or 
\\u0027, " + \
+               u"or use \u2019, or put string in quotes."
+    quot_msg = u"Quotes in Android DTDs need escaping with \\\" or \\u0022, " 
+ \
+               u"or put string in apostrophes."
+    def getEntity(self, v):
+        return Entity(v, lambda s: s, (0, len(v)), (), (0, 0), (), (), (0, 
len(v)), ())
+    def test_android_dtd(self):
+        """Testing the actual android checks. The logic is involved, so this 
is a lot
+        of nitty gritty detail tests.
+        """
+        f = File("embedding/android/strings.dtd", "strings.dtd", 
"embedding/android")
+        checks = getChecks(f)
+        # good string
+        ref = self.getEntity("plain string")
+        l10n = self.getEntity("plain localized string")
+        self.assertEqual(tuple(checks(ref, l10n)),
+                         ())
+        # dtd warning
+        l10n = self.getEntity("plain localized string &ref;")
+        self.assertEqual(tuple(checks(ref, l10n)),
+                         (('warning', (0, 0), 'Referencing unknown entity 
`ref`'),))
+        # no report on stray ampersand or quote, if not completely quoted
+        for i in xrange(3):
+            # make sure we're catching unescaped apostrophes, try 0..5 
backticks
+            l10n = self.getEntity("\\"*(2*i) + "'")
+            self.assertEqual(tuple(checks(ref, l10n)),
+                             (('error', 2*i, self.apos_msg),))
+            l10n = self.getEntity("\\"*(2*i + 1) + "'")
+            self.assertEqual(tuple(checks(ref, l10n)),
+                             ())
+            # make sure we don't report if apos string is quoted
+            l10n = self.getEntity('"' + "\\"*(2*i) + "'\"")
+            tpl = tuple(checks(ref, l10n))
+            self.assertEqual(tpl, (), "`%s` shouldn't fail but got %s" % 
(l10n.val, str(tpl)))
+            l10n = self.getEntity('"' + "\\"*(2*i+1) + "'\"")
+            tpl = tuple(checks(ref, l10n))
+            self.assertEqual(tpl, (), "`%s` shouldn't fail but got %s" % 
(l10n.val, str(tpl)))
+            # make sure we're catching unescaped quotes, try 0..5 backticks
+            l10n = self.getEntity("\\"*(2*i) + "\"")
+            self.assertEqual(tuple(checks(ref, l10n)),
+                             (('error', 2*i, self.quot_msg),))
+            l10n = self.getEntity("\\"*(2*i + 1) + "'")
+            self.assertEqual(tuple(checks(ref, l10n)),
+                             ())
+            # make sure we don't report if quote string is single quoted
+            l10n = self.getEntity("'" + "\\"*(2*i) + "\"'")
+            tpl = tuple(checks(ref, l10n))
+            self.assertEqual(tpl, (), "`%s` shouldn't fail but got %s" % 
(l10n.val, str(tpl)))
+            l10n = self.getEntity('"' + "\\"*(2*i+1) + "'\"")
+            tpl = tuple(checks(ref, l10n))
+            self.assertEqual(tpl, (), "`%s` shouldn't fail but got %s" % 
(l10n.val, str(tpl)))
+        # check for mixed quotes and ampersands
+        l10n = self.getEntity("'\"")
+        self.assertEqual(tuple(checks(ref, l10n)),
+                         (('error', 0, self.apos_msg),
+                          ('error', 1, self.quot_msg)))
+        l10n = self.getEntity("''\"'")
+        self.assertEqual(tuple(checks(ref, l10n)),
+                         (('error', 1, self.apos_msg),))
+        l10n = self.getEntity('"\'""')
+        self.assertEqual(tuple(checks(ref, l10n)),
+                         (('error', 2, self.quot_msg),))
+        
+        # broken unicode escape
+        l10n = self.getEntity("Some broken \u098 unicode")
+        self.assertEqual(tuple(checks(ref, l10n)),
+                         (('error', 12, 'truncated \\uXXXX escape'),))
+        # broken unicode escape, try to set the error off
+        l10n = self.getEntity(u"\u9690"*14+"\u006"+"  "+"\u0064")
+        self.assertEqual(tuple(checks(ref, l10n)),
+                         (('error', 14, 'truncated \\uXXXX escape'),))
+    def test_android_prop(self):
+        f = File("embedding/android/strings.properties", "strings.properties", 
"embedding/android")
+        checks = getChecks(f)
+        # good plain string
+        ref = self.getEntity("plain string")
+        l10n = self.getEntity("plain localized string")
+        self.assertEqual(tuple(checks(ref, l10n)),
+                         ())
+        # no dtd warning
+        ref = self.getEntity("plain string")
+        l10n = self.getEntity("plain localized string &ref;")
+        self.assertEqual(tuple(checks(ref, l10n)),
+                         ())
+        # no report on stray ampersand
+        ref = self.getEntity("plain string")
+        l10n = self.getEntity("plain localized string with apos: '")
+        self.assertEqual(tuple(checks(ref, l10n)),
+                         ())
+        # report on bad printf
+        ref = self.getEntity("string with %s")
+        l10n = self.getEntity("string with %S")
+        self.assertEqual(tuple(checks(ref, l10n)),
+                         (('error', 0, 'argument 1 `S` should be `s`'),))
+    def test_non_android_dtd(self):
+        f = File("browser/strings.dtd", "strings.dtd", "browser")
+        checks = getChecks(f)
+        # good string
+        ref = self.getEntity("plain string")
+        l10n = self.getEntity("plain localized string")
+        self.assertEqual(tuple(checks(ref, l10n)),
+                         ())
+        # dtd warning
+        ref = self.getEntity("plain string")
+        l10n = self.getEntity("plain localized string &ref;")
+        self.assertEqual(tuple(checks(ref, l10n)),
+                         (('warning', (0, 0), 'Referencing unknown entity 
`ref`'),))
+        # no report on stray ampersand
+        ref = self.getEntity("plain string")
+        l10n = self.getEntity("plain localized string with apos: '")
+        self.assertEqual(tuple(checks(ref, l10n)),
+                         ())
+
 
 if __name__ == '__main__':
     unittest.main()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/compare-locales/scripts/compare-locales 
new/compare-locales/scripts/compare-locales
--- old/compare-locales/scripts/compare-locales 2011-02-04 10:10:07.000000000 
+0100
+++ new/compare-locales/scripts/compare-locales 2011-02-23 09:14:08.000000000 
+0100
@@ -57,6 +57,12 @@
                   'localization. [default: en-US]')
 parser.add_option('-m', '--merge',
                   help='Use this directory to stage merged files')
+parser.add_option('--clobber-merge', action="store_true", default=False, 
dest='clobber',
+                  help="""WARNING: DATALOSS.
+Use this option with care. If specified, the merge directory will
+be clobbered for each module. That means, the subdirectory will
+be completely removed, any files that were there are lost.
+Be careful to specify the right merge directory when using this option.""")
 parser.add_option('--json', action='store_true', dest='json',
                   help='Dump just summary as exhibit JSON')
 
@@ -73,7 +79,11 @@
 app = EnumerateApp(inipath, l10nbase, locales)
 app.reference = options.reference
 
-o = compareApp(app, merge_stage = options.merge)
+try:
+  o = compareApp(app, merge_stage = options.merge, clobber = options.clobber)
+except (OSError, IOError), e:
+  print "FAIL: " + str(e)
+  parser.exit(2)
 so = {}
 if options.json:
   so['type']='application/json'

++++++ firefox-4.0b11-source.tar.bz2 -> firefox-4.0b12-source.tar.bz2 ++++++
old-versions/11.4/all/MozillaFirefox/firefox-4.0b11-source.tar.bz2 
11.4/MozillaFirefox/firefox-4.0b12-source.tar.bz2 differ: char 11, line 1

++++++ firefox-browser-css.patch ++++++
--- /var/tmp/diff_new_pack.SVvCIb/_old  2011-02-27 12:36:30.000000000 +0100
+++ /var/tmp/diff_new_pack.SVvCIb/_new  2011-02-27 12:36:30.000000000 +0100
@@ -9,13 +9,13 @@
 diff --git a/browser/themes/gnomestripe/browser/browser.css 
b/browser/themes/gnomestripe/browser/browser.css
 --- a/browser/themes/gnomestripe/browser/browser.css
 +++ b/browser/themes/gnomestripe/browser/browser.css
-@@ -990,16 +990,30 @@ toolbar[iconsize="small"] #feed-button {
+@@ -954,16 +954,30 @@ toolbar[iconsize="small"] #feed-button {
  }
  
- .urlbar-over-link-host-label,
- .urlbar-over-link-path-label {
-   padding: 0;
-   margin: 0;
+ #urlbar-display {
+   margin-top: 0;
+   margin-bottom: 0;
+   color: GrayText;
  }
  
 +#PopupAutoCompleteRichResult .autocomplete-richlistitem {

++++++ firefox-kde.patch ++++++
--- /var/tmp/diff_new_pack.SVvCIb/_old  2011-02-27 12:36:31.000000000 +0100
+++ /var/tmp/diff_new_pack.SVvCIb/_new  2011-02-27 12:36:31.000000000 +0100
@@ -23,7 +23,7 @@
 new file mode 100644
 --- /dev/null
 +++ b/browser/base/content/browser-kde.xul
-@@ -0,0 +1,1066 @@
+@@ -0,0 +1,1077 @@
 +#filter substitution
 +<?xml version="1.0"?>
 +# -*- Mode: HTML -*-
@@ -151,7 +151,7 @@
 +      <menu id="context_tabViewMenu" label="&moveToGroup.label;"
 +            accesskey="&moveToGroup.accesskey;">
 +        <menupopup id="context_tabViewMenuPopup"
-+                   onpopupshowing="if (event.target == this) 
TabView.updateContextMenu(TabContextMenu.contextTab, this);">
++                   onpopupshowing="if (event.target == this) 
TabView.moveToGroupPopupShowing(event);">
 +          <menuseparator id="context_tabViewNamedGroups" hidden="true"/>
 +          <menuitem id="context_tabViewNewGroup" 
label="&moveToNewGroup.label;"
 +                    oncommand="TabView.moveTabTo(TabContextMenu.contextTab, 
null);"/>
@@ -493,6 +493,8 @@
 +           defaultmode="icons" mode="icons"
 +#ifdef WINCE
 +           defaulticonsize="small" iconsize="small"
++#else
++           iconsize="large"
 +#endif
 +           tabsontop="true"
 +           persist="tabsontop">
@@ -868,7 +870,16 @@
 +                     tooltiptext="&listAllTabs.label;"
 +                     removable="true">
 +        <menupopup id="alltabs-popup"
-+                   position="after_end"/>
++                   position="after_end">
++          <menuitem id="menu_tabview"
++                    class="menuitem-iconic"
++                    key="key_tabview"
++                    label="&viewTabGroups.label;"
++                    command="Browser:ToggleTabView"
++                    observes="tabviewGroupsNumber"
++                    keepme="true"/>
++          <menuseparator id="alltabs-popup-separator" keepme="true"/>
++        </menupopup>
 +      </toolbarbutton>
 +
 +      <toolbarbutton id="tabs-closebutton"
@@ -1026,7 +1037,7 @@
 +      <toolbarbutton id="addonbar-closebutton"
 +                     tooltiptext="&addonBarCloseButton.tooltip;"
 +                     oncommand="setToolbarVisibility(this.parentNode, 
false);"/>
-+      <statusbar id="status-bar"/>
++      <statusbar id="status-bar" ordinal="1000"/>
 +    </toolbar>
 +  </vbox>
 +
@@ -1096,7 +1107,7 @@
 @@ -22,16 +22,18 @@ browser.jar:
  *       content/browser/aboutHome.css                 (content/aboutHome.css)
          content/browser/aboutHome-restore-icon.png    
(content/aboutHome-restore-icon.png)
-         content/browser/aboutHome-restore-icon-rtl.png 
(content/aboutHome-restore-icon-rtl.png)
+         content/browser/aboutHome-restore-icon-small.png    
(content/aboutHome-restore-icon-small.png)
          content/browser/aboutRobots-icon.png          
(content/aboutRobots-icon.png)
          content/browser/aboutRobots-widget-left.png   
(content/aboutRobots-widget-left.png)
  *       content/browser/browser.css                   (content/browser.css)


++++++ firefox-shellservice.patch ++++++
--- /var/tmp/diff_new_pack.SVvCIb/_old  2011-02-27 12:36:31.000000000 +0100
+++ /var/tmp/diff_new_pack.SVvCIb/_new  2011-02-27 12:36:31.000000000 +0100
@@ -1,5 +1,5 @@
 # HG changeset patch
-# Parent e46704258210bc68bc65773f60a0d32cb2ce767d
+# Parent 948830682920db68e4b039f5babc34dea0040415
 Bug 611953 - GNOME 3.0 readiness (based on patch 3)
 
 diff --git a/browser/components/shell/src/nsGNOMEShellService.cpp 
b/browser/components/shell/src/nsGNOMEShellService.cpp
@@ -217,7 +217,7 @@
      nsresult rv;
 -    nsCOMPtr<nsIGIOService> giovfs =
 -      do_GetService(NS_GIOSERVICE_CONTRACTID, &rv);
--    NS_ENSURE_SUCCESS(rv, rv);
+-    NS_ENSURE_SUCCESS(rv, NS_OK);
 +    unsigned int i;
  
      nsCOMPtr<nsIStringBundleService> bundleService =

++++++ l10n-4.0b11.tar.bz2 -> l10n-4.0b12.tar.bz2 ++++++
old-versions/11.4/all/MozillaFirefox/l10n-4.0b11.tar.bz2 
11.4/MozillaFirefox/l10n-4.0b12.tar.bz2 differ: char 11, line 1


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



Remember to have fun...

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to