// 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. #ifndef CHROME_BROWSER_UI_WEBUI_CHROMEOS_SALSA_UI_H_ #define CHROME_BROWSER_UI_WEBUI_CHROMEOS_SALSA_UI_H_ #include <map> #include "base/values.h" #include "chrome/browser/profiles/profile.h" #include "content/public/browser/web_ui_controller.h" namespace base { class ListValue; class Value; } // namespace base // The WebUI for 'chrome://salsa' -- a user front end for the touch UI // blind user studies. I does this by setting gesture preference values // without the user knowing which ones and having them try out various // settings to see which results in a better experience for them. class SalsaUI : public content::WebUIController { public: // Constructs a new GestureConfig for the specified |web_ui|. explicit SalsaUI(content::WebUI* web_ui); virtual ~SalsaUI(); private: // Set a preference setting's value. // Two parameters are provided in a JS list: prefName and value, the // key of the preference value to be set, and the value it's to be set to. void SetPreferenceValue(const base::ListValue* args); // Record the current value for a preference key and store the key/value pair // in the member variable orig_values_. void BackupPreferenceValue(const base::ListValue* args); // Check and see if a key is on the whitelist. Returns the index into // the whitelist on success and -1 on failure. int WhitelistIndex(const char* key) const; std::map<int, const base::Value*> orig_values_; DISALLOW_COPY_AND_ASSIGN(SalsaUI); }; #endif // CHROME_BROWSER_UI_WEBUI_CHROMEOS_SALSA_UI_H_