summaryrefslogtreecommitdiff
path: root/chromium/chrome/browser/resources/feedback/js/event_handler.js
diff options
context:
space:
mode:
authorAndras Becsi <andras.becsi@digia.com>2014-03-18 13:16:26 +0100
committerFrederik Gladhorn <frederik.gladhorn@digia.com>2014-03-20 15:55:39 +0100
commit3f0f86b0caed75241fa71c95a5d73bc0164348c5 (patch)
tree92b9fb00f2e9e90b0be2262093876d4f43b6cd13 /chromium/chrome/browser/resources/feedback/js/event_handler.js
parente90d7c4b152c56919d963987e2503f9909a666d2 (diff)
downloadqtwebengine-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.js91
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);