Commit Graph

40 Commits

Author SHA1 Message Date
Mike Hommey
3b0b47d020 Bug 1355661 - Add support for brotli streams in Jar archives. r=aklotz
Modern compression algorithms are better than zlib both in terms of
space and time. The jar format, used for e.g. omni.ja, addons, etc.
could benefit from using such modern algorithms, but the format only
allows a limited set of compression algorithms.

However, the format in itself is flexible, in that it can be extended
with arbitrary compression algorithms. This breaks compatibility with
programs like unzip, obviously, but we've never promised the files
shipped with Firefox will always remain "valid" zips (which they already
aren't, but they currently work with most zip readers).

With this change, we allow those archives to contain brotli streams,
using an arbitrary large value for the compression type in the Zip local
file header. This only allows to read such archives, but not to produce
them, and, for now, support for brotli streams is kept Nightly-only,
until everything is pieced together and we're happy to ship it.
2017-04-07 14:48:25 +09:00
Andrea Marchesini
3f93b1e1a5 Bug 1231378 - part 3 - Fix uninitialized members of classes in modules/libjar and mfbt, r=smaug 2016-01-12 18:16:59 +00:00
Carsten "Tomcat" Book
39bb4e0359 Backed out changeset 138c4e6a9b45 (bug 1231378) 2016-01-12 15:48:55 +01:00
Andrea Marchesini
13fde80164 Bug 1231378 - part 3 - Fix uninitialized members of classes in modules/libjar and mfbt, r=smaug 2016-01-12 13:57:34 +00:00
Nathan Froyd
4e6d8f6705 Bug 1207245 - part 6 - rename nsRefPtr<T> to RefPtr<T>; r=ehsan; a=Tomcat
The bulk of this commit was generated with a script, executed at the top
level of a typical source code checkout.  The only non-machine-generated
part was modifying MFBT's moz.build to reflect the new naming.

CLOSED TREE makes big refactorings like this a piece of cake.

 # The main substitution.
find . -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    xargs perl -p -i -e '
 s/nsRefPtr\.h/RefPtr\.h/g; # handle includes
 s/nsRefPtr ?</RefPtr</g;   # handle declarations and variables
'

 # Handle a special friend declaration in gfx/layers/AtomicRefCountedWithFinalize.h.
perl -p -i -e 's/::nsRefPtr;/::RefPtr;/' gfx/layers/AtomicRefCountedWithFinalize.h

 # Handle nsRefPtr.h itself, a couple places that define constructors
 # from nsRefPtr, and code generators specially.  We do this here, rather
 # than indiscriminantly s/nsRefPtr/RefPtr/, because that would rename
 # things like nsRefPtrHashtable.
perl -p -i -e 's/nsRefPtr/RefPtr/g' \
     mfbt/nsRefPtr.h \
     xpcom/glue/nsCOMPtr.h \
     xpcom/base/OwningNonNull.h \
     ipc/ipdl/ipdl/lower.py \
     ipc/ipdl/ipdl/builtin.py \
     dom/bindings/Codegen.py \
     python/lldbutils/lldbutils/utils.py

 # In our indiscriminate substitution above, we renamed
 # nsRefPtrGetterAddRefs, the class behind getter_AddRefs.  Fix that up.
find . -name '*.cpp' -o -name '*.h' -o -name '*.idl' | \
    xargs perl -p -i -e 's/nsRefPtrGetterAddRefs/RefPtrGetterAddRefs/g'

if [ -d .git ]; then
    git mv mfbt/nsRefPtr.h mfbt/RefPtr.h
else
    hg mv mfbt/nsRefPtr.h mfbt/RefPtr.h
fi
2015-10-18 01:24:48 -04:00
Ehsan Akhgari
ea41d8de48 Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj
This patch was automatically generated using the following script:

function convert() {
echo "Converting $1 to $2..."
find . \
       ! -wholename "*/.git*" \
       ! -wholename "obj-ff-dbg*" \
         -type f \
      \( -iname "*.cpp" \
         -o -iname "*.h" \
         -o -iname "*.c" \
         -o -iname "*.cc" \
         -o -iname "*.idl" \
         -o -iname "*.ipdl" \
         -o -iname "*.ipdlh" \
         -o -iname "*.mm" \) | \
    xargs -n 1 sed -i -e "s/\b$1\b/$2/g"
}

convert MOZ_OVERRIDE override
convert MOZ_FINAL final
2015-03-21 12:28:04 -04:00
Benoit Jacob
6b5f4e8804 Bug 1028588 - Fix dangerous public destructors in libjar/ - r=aklotz 2014-06-24 22:09:14 -04:00
Joshua Cranmer
9b57110864 Bug 884061 - Part 3p: Use NS_DECL_THREADSAFE_ISUPPORTS in modules/, r=taras,bsmedberg 2013-07-18 21:23:44 -05:00
Ehsan Akhgari
243c878d26 Bug 579517 - Part 1: Automated conversion of NSPR numeric types to stdint types in Gecko; r=bsmedberg
This patch was generated by a script.  Here's the source of the script for
future reference:

function convert() {
echo "Converting $1 to $2..."
find . ! -wholename "*nsprpub*" \
       ! -wholename "*security/nss*" \
       ! -wholename "*/.hg*" \
       ! -wholename "obj-ff-dbg*" \
       ! -name nsXPCOMCID.h \
       ! -name prtypes.h \
         -type f \
      \( -iname "*.cpp" \
         -o -iname "*.h" \
         -o -iname "*.c" \
         -o -iname "*.cc" \
         -o -iname "*.idl" \
         -o -iname "*.ipdl" \
         -o -iname "*.ipdlh" \
         -o -iname "*.mm" \) | \
    xargs -n 1 sed -i -e "s/\b$1\b/$2/g"
}

convert PRInt8 int8_t
convert PRUint8 uint8_t
convert PRInt16 int16_t
convert PRUint16 uint16_t
convert PRInt32 int32_t
convert PRUint32 uint32_t
convert PRInt64 int64_t
convert PRUint64 uint64_t

convert PRIntn int
convert PRUintn unsigned

convert PRSize size_t

convert PROffset32 int32_t
convert PROffset64 int64_t

convert PRPtrdiff ptrdiff_t

convert PRFloat64 double
2012-08-22 11:56:38 -04:00
Ehsan Akhgari
929b7a5e8f Bug 758992 - Make the classes which use the XPCOM nsISupports implementation macros final, to avoid the warning about deleting using a pointer to a base class with virtual functions and no virtual dtor (libjar parts); r=glandium 2012-06-12 23:27:07 -04:00
Gervase Markham
cb6a072c2a Bug 716478 - update licence to MPL 2. 2012-05-21 12:12:37 +01:00
Alfred Kayser
c6510b76c7 Bug 510844 - Remove memcpy()s for compressed jar reading. r=taras 2009-10-04 19:20:45 +02:00
Marco Bonardo
8db79d8f43 Backed out changeset 3cab7a0c2c3d due to mochitest timeout. 2009-09-03 14:15:19 +02:00
Alfred Kayser
440b800224 Bug 510844 - "Remove memcpy()s for compressed jar reading" [r=tglek] 2009-09-01 14:47:00 -05:00
Reed Loden
731c6bf35f Backing out 510844 to fix unittest failure on CLOSED TREE. 2009-09-01 16:20:47 -05:00
Alfred Kayser
d67483290b Bug 510844 - "Remove memcpy()s for compressed jar reading" [r=tglek] 2009-09-01 14:47:00 -05:00
Taras Glek
438a96d9ae Bug 504864: mmap io for JARs r=bsmedberg 2009-08-12 13:50:12 -07:00
Serge Gautherie
512b325a93 Backed out "changeset: ff9eba3f8224" of
Bug 504864 - mmap io for JARs; r=benjamin
which does not compile on Windows
2009-08-08 12:40:50 +02:00
Taras Glek
fd006379ec Bug 504864 - mmap io for JARs; r=benjamin 2009-08-08 12:07:39 +02:00
Fred Jendrzejewski
cbc6639bab Bug 466622. Replace nsCStringArray with nsTArray<nsCString> for more consistent code and fewer heap allocations. r+sr=roc,r=bsmedberg 2009-01-22 17:15:34 +13:00
17259f0581 Bug 416998: Fix the order of member variable initializers for a few constructors. sr=bz, a=schrep 2008-02-18 23:36:50 -08:00
dbaron@dbaron.org
552c7ce66f Don't close the same file descriptors twice. b=367817 r+sr=darin 2007-01-25 23:05:22 +00:00
gavin@gavinsharp.com
65ab2a8390 Bug 337561: Merge nsJARDirectoryInputStream into nsJARInputStream, patch by Alfred Kayser <alfredkayser@nl.ibm.com>, r+sr=darin 2006-10-10 13:24:57 +00:00
gavin@gavinsharp.com
4c84b9ad50 back out bug 337561 2006-09-24 16:23:31 +00:00
gavin@gavinsharp.com
666a38da70 Bug 337561: Merge nsJARDirectoryInputStream into nsJARInputStream, patch by Alfred Kayser <alfredkayser@nl.ibm.com>, r+sr=darin 2006-09-24 15:13:57 +00:00
darin@meer.net
5477d3ad91 fixes bug 214672 "Further optimization and correctness improvements of libjar: streamlining nsJarInputStream" patch by Alfred Kayser <alfredkayser@nl.ibm.com>, r=jwalden, sr=darin 2006-05-02 19:33:09 +00:00
jwalden@mit.edu
8bc6ad24eb Bug 309296 - RFE: directory listing for jar:. r=darin, sr=bzbarsky 2006-03-29 22:10:37 +00:00
gerv@gerv.net
0deb44e215 Bug 320174: correct malformed licence headers. Patch by Jeff Walden <jwalden@mit.edu>, r=gerv. 2005-12-15 13:48:48 +00:00
gerv@gerv.net
4ba0518141 Bug 236613: change to MPL/LGPL/GPL tri-license. 2004-04-18 22:01:16 +00:00
alecf@netscape.com
c0b42cfec2 fix for bug 189528 - do on-demand decompression of items in a .jar file
instead of allocating all the data into one big buffer, keep a small input buffer around and decompress directly into a client's read buffer..
r=dougt, sr=darin
2003-03-14 18:59:51 +00:00
dp@netscape.com
cac665d103 bug 116191 Making nsZipItem a member of nsJarInputStream rather than a
pointer. Saves a 16 byte allocation on per jar file read. r=darin, sr=dveditz
2001-12-21 05:57:39 +00:00
dveditz@netscape.com
40e2497954 Fix 72551 speed up zip archive opening. r=ssu,sr=waterson 2001-04-03 06:35:13 +00:00
warren@netscape.com
0aaf97b668 Bug 46777. Redesigned stream interfaces to allows stream observers to be decoupled from pipe implementation. Needed for embedding to fix 'spin' problem. r=rpotts,valeski,ruslan 2000-08-22 07:03:33 +00:00
mstoltz@netscape.com
2e7105225d Fixing 40159 and 44822, both [nsbeta2+] regressions on signed scripts. r=sgehani 2000-07-12 03:10:33 +00:00
mstoltz@netscape.com
d1b2e2d50b Fixed crash when calling nsJARInputStream from nsJARChannel. 2000-04-05 00:12:20 +00:00
warren@netscape.com
3bf4525cba Fixing bugs in jar input streams for jar: protocol. 2000-03-30 07:41:37 +00:00
mstoltz@netscape.com
a62840198e Crasher fixes and optimizations to jar signature verification. bug=7270 r=norris 2000-02-14 01:57:01 +00:00
mstoltz@netscape.com
4fe3cd03f0 Implementation of JAR manifest parser, part of signature verification for signed scripts. bug=7270 r=norris 2000-01-29 00:03:57 +00:00
mstoltz@netscape.com
ac937eb412 Created helper class nsZipRead to hold read state information. That way
one nsJAR can support multiple input streams. r=norris
1999-11-02 23:46:09 +00:00
mstoltz@netscape.com
2490cfc917 Added GetInputStream function to nsJAR in order to extract files into memory rather than to disk. Created nsJARInputStream to carry this data. Most of the code for this change went into nsZipArchive, which now handles either file output or output to memory. bug=16077 r=dveditz 1999-10-26 19:43:26 +00:00