PWebBrowserPersistSerialize.ipdl (1187B)
1 /* -*- Mode: IDL; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 2 /* This Source Code Form is subject to the terms of the Mozilla Public 3 * License, v. 2.0. If a copy of the MPL was not distributed with this 4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 5 6 include protocol PWebBrowserPersistDocument; 7 8 namespace mozilla { 9 10 // This actor represents both an nsIWebBrowserPersistWriteCompletion 11 // and the nsIOutputStream passed with it to the writeContent method. 12 [ManualDealloc, ChildImpl=virtual, ParentImpl=virtual] 13 protocol PWebBrowserPersistSerialize { 14 manager PWebBrowserPersistDocument; 15 16 parent: 17 // This sends the data with no flow control, so the parent could 18 // wind up buffering an arbitrarily large amount of data... but 19 // it's a serialized DOM that's already in memory as DOM nodes, so 20 // this is at worst just a constant-factor increase in memory usage. 21 // Also, Chromium does the same thing; see 22 // content::RenderViewImpl::didSerializeDataForFrame. 23 async WriteData(uint8_t[] aData); 24 25 // This is the onFinish method. 26 async __delete__(nsCString aContentType, 27 nsresult aStatus); 28 }; 29 30 } // namespace mozilla