diff options
author | Andras Becsi <andras.becsi@digia.com> | 2014-03-18 13:16:26 +0100 |
---|---|---|
committer | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2014-03-20 15:55:39 +0100 |
commit | 3f0f86b0caed75241fa71c95a5d73bc0164348c5 (patch) | |
tree | 92b9fb00f2e9e90b0be2262093876d4f43b6cd13 /chromium/chrome/browser/resources/feedback/js/event_handler.js | |
parent | e90d7c4b152c56919d963987e2503f9909a666d2 (diff) | |
download | qtwebengine-chromium-3f0f86b0caed75241fa71c95a5d73bc0164348c5.tar.gz |
Update to new stable branch 1750
This also includes an updated ninja and chromium dependencies
needed on Windows.
Change-Id: Icd597d80ed3fa4425933c9f1334c3c2e31291c42
Reviewed-by: Zoltan Arvai <zarvai@inf.u-szeged.hu>
Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
Diffstat (limited to 'chromium/chrome/browser/resources/feedback/js/event_handler.js')
-rw-r--r-- | chromium/chrome/browser/resources/feedback/js/event_handler.js | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/chromium/chrome/browser/resources/feedback/js/event_handler.js b/chromium/chrome/browser/resources/feedback/js/event_handler.js new file mode 100644 index 00000000000..c20ea8c7abc --- /dev/null +++ b/chromium/chrome/browser/resources/feedback/js/event_handler.js @@ -0,0 +1,91 @@ +// 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. + +/** + * @type {number} + * @const + */ +var FEEDBACK_WIDTH = 500; +/** + * @type {number} + * @const + */ +var FEEDBACK_HEIGHT = 625; + +var initialFeedbackInfo = null; + +var whitelistedExtensionIds = [ + 'bpmcpldpdmajfigpchkicefoigmkfalc', // QuickOffice + 'ehibbfinohgbchlgdbfpikodjaojhccn', // QuickOffice + 'gbkeegbaiigmenfmjfclcdgdpimamgkj', // QuickOffice + 'efjnaogkjbogokcnohkmnjdojkikgobo', // G+ Photos + 'ebpbnabdhheoknfklmpddcdijjkmklkp', // G+ Photos + 'endkpmfloggdajndjpoekmkjnkolfdbf', // Feedback Extension + 'mlocfejafidcakdddnndjdngfmncfbeg', // Connectivity Diagnostics + 'ganomidahfnpdchomfgdoppjmmedlhia', // Connectivity Diagnostics + 'eemlkeanncmjljgehlbplemhmdmalhdc', // Connectivity Diagnostics + 'kodldpbjkkmmnilagfdheibampofhaom', // Connectivity Diagnostics + 'kkebgepbbgbcmghedmmdfcbdcodlkngh', // Chrome OS Recovery Tool + 'jndclpdbaamdhonoechobihbbiimdgai' // Chrome OS Recovery Tool +]; + +/** + * Function to determine whether or not a given extension id is whitelisted to + * invoke the feedback UI. + * @param {string} id the id of the sender extension. + * @return {boolean} Whether or not this sender is whitelisted. + */ +function senderWhitelisted(id) { + return id && whitelistedExtensionIds.indexOf(id) != -1; +} + +/** + * Callback which gets notified once our feedback UI has loaded and is ready to + * receive its initial feedback info object. + * @param {Object} request The message request object. + * @param {Object} sender The sender of the message. + * @param {function(Object)} sendResponse Callback for sending a response. + */ +function feedbackReadyHandler(request, sender, sendResponse) { + if (request.ready) { + // TODO(rkc): Remove logging once crbug.com/284662 is closed. + console.log('FEEDBACK_DEBUG: FeedbackUI Ready. Sending feedbackInfo.'); + chrome.runtime.sendMessage( + {sentFromEventPage: true, data: initialFeedbackInfo}); + } +} + + +/** + * Callback which gets notified if another extension is requesting feedback. + * @param {Object} request The message request object. + * @param {Object} sender The sender of the message. + * @param {function(Object)} sendResponse Callback for sending a response. + */ +function requestFeedbackHandler(request, sender, sendResponse) { + if (request.requestFeedback && senderWhitelisted(sender.id)) + startFeedbackUI(request.feedbackInfo); +} + +/** + * Callback which starts up the feedback UI. + * @param {Object} feedbackInfo Object containing any initial feedback info. + */ +function startFeedbackUI(feedbackInfo) { + initialFeedbackInfo = feedbackInfo; + // TODO(rkc): Remove logging once crbug.com/284662 is closed. + console.log('FEEDBACK_DEBUG: Received onFeedbackRequested. Creating Window.'); + chrome.app.window.create('html/default.html', { + frame: 'none', + id: 'default_window', + width: FEEDBACK_WIDTH, + height: FEEDBACK_HEIGHT, + hidden: true, + resizable: false }, + function(appWindow) {}); +} + +chrome.runtime.onMessage.addListener(feedbackReadyHandler); +chrome.runtime.onMessageExternal.addListener(requestFeedbackHandler); +chrome.feedbackPrivate.onFeedbackRequested.addListener(startFeedbackUI); |