1<h2 id="code">Implemention of the Chrome [OS] Feedback UI</h2> 2 3<p> 4The Chrome [OS] Feedback UI is invoked when the user clicks 5the Report an Issue button in the wrench->tools menu (wrench 6menu if on Chrome OS). This triggers the onFeedbackRequested event 7with a feedbackInfo object with the URL of the current page 8(determined by the active tab) and if available, the email of the 9logged in user filled in. On Chrome OS, the system information field 10in the feedbackInfo object may also contain relevent data <i>(for 11example, as of now it is populated with a TIMESTAMP key containing 12the timestamp of when the user invoked feedback</i>). 13</p> 14 15<p> 16The UI first takes a screenshot, then displays itself. It uses the 17provided API's to get system information and provides the user with 18fields to fill out feedback. 19</p> 20 21<p> 22Once the user is done, the UI uses the sendFeedback API to send the 23feedback to the feedback servers. 24</p> 25 26<p> 27The sendFeedback API gathers the feedback data and starts a post to 28the feedback servers. If the post is successful, a 'success' status 29is returned to the Feedback UI, otherwise a 'delayed' status is 30returned and Chrome continues to try to send the feedback every 4 hours 31for up to a day. 32</p> 33 34 35<p class="note"> 36<b>Note:</b> 37The feedbackPrivate API can also be used by whitelisted apps to provide 38a custom feedback UI and send Chrome Feedback. The productId field in 39the feedbackInfo structure can be given to override the product ID to 40be sent with the feedback report. This will allow the app to send 41feedback to it's own feedback bucket instead of the default Chrome [OS] 42one. 43</p> 44