startupcache/StartupCacheUtils.h
author Hiroyuki Ikezoe <hiikezoe@mozilla-japan.org>
Fri, 14 Oct 2016 07:58:32 +0900
changeset 358465 3c14278bdb4a4c7979be29709410599776cfcaef
parent 323687 14e29cda9552844c1bf593df50ab85c555d345b3
child 370040 4585a7b6f3ce8c8dc7b7e043e0fae86f8e5ee392
permissions -rw-r--r--
Bug 1283754 - Part 4: Split test cases for script animations which can be re-written to synchronous test in test_animation_observers.html. r=boris, a=test-only All of the split out test cases were re-written with synchronous API. Also, cleanup codes in the end of each test cases, e.g. anim.cancel(), were dropped because we now create a new MutationObserver and a new element for each test respectively. MozReview-Commit-ID: 9Bx0OUOU9On

/* -*-  Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2; -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#ifndef nsStartupCacheUtils_h_
#define nsStartupCacheUtils_h_

#include "nsIStorageStream.h"
#include "nsIObjectInputStream.h"
#include "nsIObjectOutputStream.h"
#include "mozilla/UniquePtr.h"

namespace mozilla {
namespace scache {

NS_EXPORT nsresult
NewObjectInputStreamFromBuffer(UniquePtr<char[]> buffer, uint32_t len, 
                               nsIObjectInputStream** stream);

// We can't retrieve the wrapped stream from the objectOutputStream later,
// so we return it here. We give callers in debug builds the option 
// to wrap the outputstream in a debug stream, which will detect if
// non-singleton objects are written out multiple times during a serialization.
// This could cause them to be deserialized incorrectly (as multiple copies
// instead of references).
NS_EXPORT nsresult
NewObjectOutputWrappedStorageStream(nsIObjectOutputStream **wrapperStream,
                                    nsIStorageStream** stream,
                                    bool wantDebugStream);

// Creates a buffer for storing the stream into the cache. The buffer is
// allocated with 'new []'.  After calling this function, the caller would
// typically call nsIStartupCache::PutBuffer with the returned buffer.
NS_EXPORT nsresult
NewBufferFromStorageStream(nsIStorageStream *storageStream, 
                           UniquePtr<char[]>* buffer, uint32_t* len);

NS_EXPORT nsresult
PathifyURI(nsIURI *in, nsACString &out);
} // namespace scache
} // namespace mozilla

#endif //nsStartupCacheUtils_h_