// 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); }; };