- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / common / extensions / api / webrtc_logging_private.idl
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 // Use the <code>chrome.webrtcLoggingPrivate</code> API to control diagnostic
6 // WebRTC logging.
7 [nodoc] namespace webrtcLoggingPrivate {
8   dictionary MetaDataEntry {
9     // The meta data entry key.
10     DOMString key;
11
12     // The meta data entry value.
13     DOMString value;
14   };
15
16   dictionary UploadResult {
17     // The report ID for the uploaded log. Will be empty if not successful.
18     DOMString reportId;
19   };
20
21   callback GenericDoneCallback = void ();
22   callback UploadDoneCallback = void (UploadResult result);
23
24   interface Functions {
25     // For all functions, |tabId| determines which render process to apply
26     // the operation on. |tabId| is the identifier from the chrome.tabs API.
27     // |securityOrigin| is the security origin for the tab identified by |tabId|
28     // and is used for verifying that the tab is the correct one and has not
29     // been navigated away from.
30
31     // Sets additional custom meta data that will be uploaded along with the
32     // log. |metaData| is a dictionary of the metadata (key, value).
33     static void setMetaData(long tabId,
34                             DOMString securityOrigin,
35                             MetaDataEntry[] metaData,
36                             GenericDoneCallback callback);
37
38     // Starts logging. If logging has already been started for this render
39     // process, the call will be ignored. |appSessionId| is the unique session
40     // ID which will be added to the log.
41     static void start(long tabId,
42                       DOMString securityOrigin,
43                       GenericDoneCallback callback);
44
45     // Sets whether the log should be uploaded automatically for the case when
46     // the render process goes away (tab is closed or crashes) and stop has not
47     // been called before that. If |shouldUpload| is true it will be uploaded,
48     // otherwise it will be discarded. The default setting is to discard it.
49     static void setUploadOnRenderClose(long tabId,
50                                        DOMString securityOrigin,
51                                        boolean shouldUpload);
52
53     // Stops logging. After stop has finished, either upload() or discard()
54     // should be called, otherwise the log will be kept in memory until the
55     // render process is closed or logging restarted.
56     static void stop(long tabId,
57                      DOMString securityOrigin,
58                      GenericDoneCallback callback);
59
60     // Uploads the log. Logging must be stopped before this function is called.
61     static void upload(long tabId,
62                        DOMString securityOrigin,
63                        UploadDoneCallback callback);
64
65     // Discards the log. Logging must be stopped before this function is called.
66     static void discard(long tabId,
67                         DOMString securityOrigin,
68                         GenericDoneCallback callback);
69   };
70 };