// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // Streams Private API. namespace streamsPrivate { dictionary StreamInfo { // The MIME type of the intercepted URL request. DOMString mimeType; // The original URL that was intercepted. DOMString originalUrl; // The URL that the stream can be read from. DOMString streamUrl; // The ID of the tab that opened the stream. If the stream is not opened in // a tab, it will be -1. long tabId; // The ID of the view that will render the stream, if the viewer was opened // in a plugin. DOMString? viewId; // The amount of data the Stream should contain, if known. If there is no // information on the size it will be -1. long expectedContentSize; // The HTTP response headers of the intercepted request stored as a // dictionary mapping header name to header value. If a header name appears // multiple times, the header values are merged in the dictionary and // separated by a ", ". object responseHeaders; // Whether the stream is embedded within another document. boolean embedded; }; callback AbortCallback = void (); interface Functions { // Abort the URL request on the given stream. // |streamUrl| : The URL of the stream to abort. // |callback| : Called when the stream URL is guaranteed to be invalid. The // underlying URL request may not yet have been aborted when this is run. static void abort(DOMString streamUrl, optional AbortCallback callback); }; interface Events { // Fired when a resource is fetched which matches a mime type handled by // this extension. The resource request is cancelled, and the extension is // expected to handle the request. The event is restricted to a small number // of white-listed extensions. static void onExecuteMimeTypeHandler(StreamInfo streamInfo); }; };