| // Copyright 2013 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. |
| |
| // Use the <code>chrome.feedbackPrivate</code> API to provide Chrome [OS] |
| // feedback to the Google Feedback servers. |
| namespace feedbackPrivate { |
| |
| dictionary AttachedFile { |
| DOMString name; |
| [instanceOf=Blob] object? data; |
| }; |
| |
| dictionary SystemInformation { |
| DOMString key; |
| DOMString value; |
| }; |
| |
| dictionary FeedbackInfo { |
| // File to attach to the feedback report. |
| AttachedFile? attachedFile; |
| |
| // An optional tag to label what type this feedback is. |
| DOMString? categoryTag; |
| |
| // The feedback text describing the user issue. |
| DOMString description; |
| |
| // The e-mail of the user that initiated this feedback. |
| DOMString? email; |
| |
| // The URL of the page that this issue was being experienced on. |
| DOMString? pageUrl; |
| |
| // Optional product ID to override the Chrome [OS] product id that is |
| // usually passed to the feedback server. |
| DOMString? productId; |
| |
| // Screenshot to send with this feedback. |
| [instanceOf=Blob] object? screenshot; |
| |
| // Optional id for performance trace data that can be included in this |
| // report. |
| long? traceId; |
| |
| // An array of key/value pairs providing system information for this |
| // feedback report. |
| SystemInformation[]? systemInformation; |
| |
| // True if we have permission to add histograms to this feedback report. |
| boolean sendHistograms; |
| |
| // TODO(rkc): Remove these once we have bindings to send blobs to Chrome. |
| // Used internally to store the blob uuid after parameter customization. |
| DOMString? attachedFileBlobUuid; |
| DOMString? screenshotBlobUuid; |
| }; |
| |
| // Status of the sending of a feedback report. |
| enum Status {success, delayed}; |
| |
| callback GetUserEmailCallback = void(DOMString email); |
| callback GetSystemInformationCallback = |
| void(SystemInformation[] systemInformation); |
| callback SendFeedbackCallback = void(Status status); |
| callback GetStringsCallback = void(object result); |
| |
| interface Functions { |
| // Returns the email of the currently active or logged in user. |
| static void getUserEmail(GetUserEmailCallback callback); |
| |
| // Returns the system information dictionary. |
| static void getSystemInformation(GetSystemInformationCallback callback); |
| |
| // Sends a feedback report. |
| static void sendFeedback(FeedbackInfo feedback, |
| SendFeedbackCallback callback); |
| |
| // Gets localized translated strings for feedback. It returns the |
| // strings as a dictionary mapping from string identifier to the |
| // translated string to use in the feedback app UI. |
| static void getStrings(GetStringsCallback callback); |
| }; |
| |
| interface Events { |
| // Fired when the a user requests the launch of the feedback UI. We're |
| // using an event for this versus using the override API since we want |
| // to be invoked, but not showing a UI, so the feedback extension can |
| // take a screenshot of the user's desktop. |
| static void onFeedbackRequested(FeedbackInfo feedback); |
| }; |
| }; |