summaryrefslogtreecommitdiffstats
path: root/chrome/common/extensions/api/streams_private.idl
blob: ed24130849d4bdc651d5c3629e2d511153989ae3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
// 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);
  };
};