16 Commits

Author SHA1 Message Date
brendan%mozilla.org
6abf5e7f73 Bit checkin for bug 68045, r/sr=waterson&shaver, second attempt. It all works
for me on optimized and debug gcc2.96, rh7.1.

- Better failure codes from nsXULPrototypeScript::Deserialize.

- Call nsXULDocument::AbortFastLoads after nsXULPrototypeScript::Serialize
  failure, instead of just nulling the FastLoad service's output stream.

- Expose nsXULDocument::AbortFastLoads via nsIXULPrototypeCache, for use from
  nsChromeProtocolHandler.cpp.  AbortFastLoads flushes the XUL cache now, for
  good measure.

- The needless "Current" adjective in nsIFastLoadService attribute and method
  names is no more.

- Add a do_GetFastLoadService() helper, to use CID instead of contractid, and
  to let the compiler consolidate the static inline CID.

- Add "nglayout.debug.checksum_xul_fastload_file" pref so people can do without
  the checksum verification step when reading a FastLoad file.

- Verify the FastLoad file checksum, by default.  Also, cache it in the FastLoad
  service so we don't recompute it when re-opening the FastLoad file as mailnews
  and other top-levels start up.  Fill the checksum cache in EndFastLoad, when
  the last pseudo-concurrent top-level finishes loading.

  My hope to compute the checksum while writing the FastLoad file ran afoul of
  misordered writes.  The old code to checksum the in-memory nsFastLoadHeader
  also was broken on little endian platforms.  Now all checksumming is done via
  a separate read pass over the complete file, save for the header's checksum
  field, which is summed as if it contained zero.

- Track and check FastLoad file dependencies.  This required groveling with a
  bunch of Necko interfaces in nsChromeProtocolHandler::NewChannel -- read it
  and weep.  Dependency checking, as well as checksum access and computation,
  use better-factored nsIFastLoad{File,Read,Write}Control interfaces.

- nsBufferedStream::Seek wasn't flushing the buffer when seeking backward
  within the buffer, but it must, because mCursor bounds the amount to write
  if the buffer contains the end of file.

- Add an unbufferedStream readonly attribute to nsIStreamBufferAccess, so we
  don't have to screw around with the bufferying layer when checksumming. Also
  implement nsIStreamBufferAccess in nsBufferedOutputStream.

- nsISeekableOutputStream was bogus, based on a bad state I had put the
  nsBufferedOutputStream code in on its way from being completely broken when
  you seek backwards outside of the buffer.  Removing this interface required
  using nsIFastLoadFileIO in nsFastLoadFileWriter, and it also required careful
  ordering of Close calls (the Reader must close after the Writer or Updater,
  so that the Reader's underlying, unbuffered input stream can be read by
  nsFastLoadFileWriter::Close to compute the checksum.

- Miscellaneous tab/indentation, comment typo, bracing, if( => if ( style,
  nsnull vs. 0, useless variable elimination, tortured control flow,
  AutoString instead of String, and gratuitous ; after nsISupportsUtils.h
  macro call cleanups.


git-svn-id: svn://10.0.0.236/trunk@101544 18797224-902f-48f8-a5cc-f745e15eee43
2001-08-21 20:51:34 +00:00
blizzard%redhat.com
ac9d1a4c2e Back out brendan's checkin to try and get linux starting up again.
git-svn-id: svn://10.0.0.236/trunk@101334 18797224-902f-48f8-a5cc-f745e15eee43
2001-08-17 19:45:11 +00:00
brendan%mozilla.org
cad980f881 - Better failure codes from nsXULPrototypeScript::Deserialize.
- Call nsXULDocument::AbortFastLoads after nsXULPrototypeScript::Serialize
  failure, instead of just nulling the FastLoad service's output stream.

- Expose nsXULDocument::AbortFastLoads via nsIXULPrototypeCache, for use from
  nsChromeProtocolHandler.cpp.  AbortFastLoads flushes the XUL cache now, for
  good measure.

- The needless "Current" adjective in nsIFastLoadService attribute and method
  names is no more.

- Add a do_GetFastLoadService() helper, to use CID instead of contractid, and
  to let the compiler consolidate the static inline CID.

- Add "nglayout.debug.checksum_xul_fastload_file" pref so people can do without
  the checksum verification step when reading a FastLoad file.

- Verify the FastLoad file checksum, by default.  Also, cache it in the FastLoad
  service so we don't recompute it when re-opening the FastLoad file as mailnews
  and other top-levels start up.  Fill the checksum cache in EndFastLoad, when
  the last pseudo-concurrent top-level finishes loading.

  My hope to compute the checksum while writing the FastLoad file ran afoul of
  misordered writes.  The old code to checksum the in-memory nsFastLoadHeader
  also was broken on little endian platforms.  Now all checksumming is done via
  a separate read pass over the complete file, save for the header's checksum
  field, which is summed as if it contained zero.

- Track and check FastLoad file dependencies.  This required groveling with a
  bunch of Necko interfaces in nsChromeProtocolHandler::NewChannel -- read it
  and weep.  Dependency checking, as well as checksum access and computation,
  use better-factored nsIFastLoad{File,Read,Write}Control interfaces.

- nsBufferedStream::Seek wasn't flushing the buffer when seeking backward
  within the buffer, but it must, because mCursor bounds the amount to write
  if the buffer contains the end of file.

- Add an unbufferedStream readonly attribute to nsIStreamBufferAccess, so we
  don't have to screw around with the bufferying layer when checksumming. Also
  implement nsIStreamBufferAccess in nsBufferedOutputStream.

- nsISeekableOutputStream was bogus, based on a bad state I had put the
  nsBufferedOutputStream code in on its way from being completely broken when
  you seek backwards outside of the buffer.  Removing this interface required
  using nsIFastLoadFileIO in nsFastLoadFileWriter, and it also required careful
  ordering of Close calls (the Writer or Updater must close after the Reader,
  so that the Reader's underlying, unbuffered input stream can be read by
  nsFastLoadFileWriter::Close to compute the checksum.

- Miscellaneous tab/indentation, comment typo, bracing, if( => if ( style,
  nsnull vs. 0, useless variable elimination, tortured control flow,
  AutoString instead of String, and gratuitous ; after nsISupportsUtils.h
  macro call cleanups.


git-svn-id: svn://10.0.0.236/trunk@101289 18797224-902f-48f8-a5cc-f745e15eee43
2001-08-17 09:52:55 +00:00
dveditz%netscape.com
efbf1b32a6 Fix 72551 speed up zip archive opening. r=ssu,sr=waterson
git-svn-id: svn://10.0.0.236/trunk@91107 18797224-902f-48f8-a5cc-f745e15eee43
2001-04-03 06:35:13 +00:00
dougt%netscape.com
a48b8d1bf4 Implementing ReadSegments. r/sr=darin@netscape.com
git-svn-id: svn://10.0.0.236/trunk@90767 18797224-902f-48f8-a5cc-f745e15eee43
2001-03-29 07:21:43 +00:00
darin%netscape.com
73495dffa0 Bug 62566. nsIChannel::AsyncWrite interface revision and related cleanup.
r=dougt@netcape.com, sr=mscott@netscape.com.


git-svn-id: svn://10.0.0.236/trunk@85390 18797224-902f-48f8-a5cc-f745e15eee43
2001-01-23 22:10:34 +00:00
warren%netscape.com
a8b9664a8c Bug 47207. Backing out logging/PRINTF changes until we can fix stopwatch.h, introduce double parens, etc.
git-svn-id: svn://10.0.0.236/trunk@81967 18797224-902f-48f8-a5cc-f745e15eee43
2000-10-28 22:17:53 +00:00
warren%netscape.com
c6b67eceeb Bug 47207. Changing printf to PRINTF to use new logging facility. r=valeski,sr=waterson
git-svn-id: svn://10.0.0.236/trunk@81885 18797224-902f-48f8-a5cc-f745e15eee43
2000-10-27 22:43:51 +00:00
warren%netscape.com
f29b00bbe4 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
git-svn-id: svn://10.0.0.236/trunk@76875 18797224-902f-48f8-a5cc-f745e15eee43
2000-08-22 07:03:33 +00:00
mstoltz%netscape.com
9e2ab39e7d Fixing 40159 and 44822, both [nsbeta2+] regressions on signed scripts. r=sgehani
git-svn-id: svn://10.0.0.236/trunk@74078 18797224-902f-48f8-a5cc-f745e15eee43
2000-07-12 03:10:33 +00:00
mstoltz%netscape.com
6477be8ebe Fixed crash when calling nsJARInputStream from nsJARChannel.
git-svn-id: svn://10.0.0.236/trunk@65235 18797224-902f-48f8-a5cc-f745e15eee43
2000-04-05 00:12:20 +00:00
warren%netscape.com
fe40326e73 Fixing bugs in jar input streams for jar: protocol.
git-svn-id: svn://10.0.0.236/trunk@64584 18797224-902f-48f8-a5cc-f745e15eee43
2000-03-30 07:41:37 +00:00
mstoltz%netscape.com
4ed4e15d17 Crasher fixes and optimizations to jar signature verification. bug=7270 r=norris
git-svn-id: svn://10.0.0.236/trunk@60679 18797224-902f-48f8-a5cc-f745e15eee43
2000-02-14 01:57:01 +00:00
mstoltz%netscape.com
cbd5ead858 Implementation of JAR manifest parser, part of signature verification for signed scripts. bug=7270 r=norris
git-svn-id: svn://10.0.0.236/trunk@59132 18797224-902f-48f8-a5cc-f745e15eee43
2000-01-29 00:03:57 +00:00
mstoltz%netscape.com
fc96225344 Created helper class nsZipRead to hold read state information. That way
one nsJAR can support multiple input streams. r=norris


git-svn-id: svn://10.0.0.236/trunk@52616 18797224-902f-48f8-a5cc-f745e15eee43
1999-11-02 23:46:09 +00:00
mstoltz%netscape.com
ea05167e43 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
git-svn-id: svn://10.0.0.236/trunk@51864 18797224-902f-48f8-a5cc-f745e15eee43
1999-10-26 19:43:26 +00:00