1a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch// Use of this source code is governed by a BSD-style license that can be
3a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch// found in the LICENSE file.
4a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch
5a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch'use strict';
6a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch
7a02191e04bc25c4935f804f2c080ae28663d096dBen Murdochvar remoting = remoting || {};
8a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch
9a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch/**
105f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) * Attach appropriate event handlers and show or hide the feedback button based
115f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) * on whether or not the current version of Chrome recognizes Chrome Remote
125f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) * Desktop as an authorized feedback source.
13a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch *
145f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) * @param {HTMLElement} container The menu containing the help and feedback
155f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles) *     items.
16a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch */
175f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)remoting.manageHelpAndFeedback = function(container) {
180529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  var showHelp = function() {
190529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch    window.open('https://www.google.com/support/chrome/bin/answer.py?' +
200529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch                'answer=1649523');
210529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  }
225f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  var helpButton = container.querySelector('.menu-help');
235f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  base.debug.assert(helpButton != null);
240529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch  helpButton.addEventListener('click', showHelp, false);
255f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  var feedbackButton = container.querySelector('.menu-feedback');
265f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  base.debug.assert(feedbackButton != null);
27a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch  var chromeVersion = parseInt(
28a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch      window.navigator.appVersion.match(/Chrome\/(\d+)\./)[1], 10);
29a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch  if (chromeVersion >= 35) {
300529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch    feedbackButton.addEventListener('click',
315f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)                                    remoting.sendFeedback_,
320529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch                                    false);
33a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch  } else {
34a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch    feedbackButton.hidden = true;
35a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch  }
36a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch};
37a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch
38a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch/**
39a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch * Pass the current version of Chrome Remote Desktop to the Google Feedback
40a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch * extension and instruct it to show the feedback dialog.
41a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch */
425f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)remoting.sendFeedback_ = function() {
43a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch  var message = {
44a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch    requestFeedback: true,
45a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch    feedbackInfo: {
46a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch      description: '',
47a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch      systemInformation: [
48a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch        { key: 'version', value: remoting.getExtensionInfo() }
49a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch      ]
50a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch    }
51a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch  };
52a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch  var kFeedbackExtensionId = 'gfdkimpbcpahaombhbimeihdjnejgicl';
53a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch  chrome.runtime.sendMessage(kFeedbackExtensionId, message, function() {});
54a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch};