1 // Copyright 2015 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "ios/chrome/browser/ui/webui/version_handler.h" 6 7 #include "base/bind.h" 8 #include "base/callback_helpers.h" 9 #include "base/values.h" 10 #include "components/version_ui/version_handler_helper.h" 11 #include "components/version_ui/version_ui_constants.h" 12 #include "ios/web/public/webui/web_ui_ios.h" 13 #include "ui/base/l10n/l10n_util.h" 14 VersionHandler()15VersionHandler::VersionHandler() {} 16 ~VersionHandler()17VersionHandler::~VersionHandler() {} 18 RegisterMessages()19void VersionHandler::RegisterMessages() { 20 web_ui()->RegisterMessageCallback( 21 version_ui::kRequestVariationInfo, 22 base::BindRepeating(&VersionHandler::HandleRequestVariationInfo, 23 base::Unretained(this))); 24 } 25 HandleRequestVariationInfo(const base::ListValue * args)26void VersionHandler::HandleRequestVariationInfo(const base::ListValue* args) { 27 // Respond with the variations info immediately. 28 std::string callback_id; 29 CHECK_EQ(2U, args->GetSize()); 30 CHECK(args->GetString(0, &callback_id)); 31 32 base::Value response(base::Value::Type::DICTIONARY); 33 response.SetKey(version_ui::kKeyVariationsList, 34 std::move(*version_ui::GetVariationsList())); 35 web_ui()->ResolveJavascriptCallback(base::Value(callback_id), response); 36 } 37