| Index: remoting/webapp/survey.js
|
| diff --git a/remoting/webapp/survey.js b/remoting/webapp/survey.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..13954e338aa3c8463392240d48230cbbc1dffabf
|
| --- /dev/null
|
| +++ b/remoting/webapp/survey.js
|
| @@ -0,0 +1,59 @@
|
| +// 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.
|
| +
|
| +/**
|
| + * @fileoverview
|
| + * Functions and event handlers to invite the user to participate in a survey
|
| + * to help improve the product.
|
| + */
|
| +
|
| +'use strict';
|
| +
|
| +/** @suppress {duplicate} */
|
| +var remoting = remoting || {};
|
| +
|
| +var kStorageKey = 'feedback-survey-dismissed';
|
| +var kSurveyDivId = 'survey-opt-in';
|
| +var kSurveyAcceptId = 'survey-accept';
|
| +var kSurveyDeclineId = 'survey-decline';
|
| +
|
| +/**
|
| + * Hide the survey request and record some basic information about the current
|
| + * state of the world in synced storage. This may be useful in the future if we
|
| + * want to show the request again. At the moment, the data itself is ignored;
|
| + * only its presence or absence is important.
|
| + *
|
| + * @param {boolean} optIn True if the user clicked the "Take the survey" link;
|
| + * false if they clicked the close icon.
|
| + */
|
| +remoting.dismissSurvey = function(optIn) {
|
| + var value = {};
|
| + value[kStorageKey] = {
|
| + optIn: optIn,
|
| + date: new Date(),
|
| + version: chrome.runtime.getManifest().version
|
| + };
|
| + chrome.storage.sync.set(value);
|
| + document.getElementById(kSurveyDivId).hidden = true;
|
| +};
|
| +
|
| +/**
|
| + * Show or hide the survey request, depending on whether or not the user has
|
| + * already seen it.
|
| + */
|
| +remoting.initSurvey = function() {
|
| + /** @param {Object} value */
|
| + var onFeedbackSurveyInfo = function(value) {
|
| + /** @type {*} */
|
| + var dismissed = value[kStorageKey];
|
| + document.getElementById(kSurveyDivId).hidden = !!dismissed;
|
| + };
|
| + chrome.storage.sync.get(kStorageKey, onFeedbackSurveyInfo);
|
| + var accept = document.getElementById(kSurveyAcceptId);
|
| + var decline = document.getElementById(kSurveyDeclineId);
|
| + accept.addEventListener(
|
| + 'click', remoting.dismissSurvey.bind(null, true), false);
|
| + decline.addEventListener(
|
| + 'click', remoting.dismissSurvey.bind(null, false), false);
|
| +};
|
|
|