Home | History | Annotate | Download | only in api
      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 };
     71