blob: e4717b1636805ef0d58c9997e094cc25a35b8791 [file] [log] [blame]
// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/ui/webui/hats/hats_page_handler.h"
#include <string>
#include "base/json/json_writer.h"
#include "google_apis/google_api_keys.h"
HatsPageHandler::HatsPageHandler(
mojo::PendingReceiver<hats::mojom::PageHandler> receiver,
mojo::PendingRemote<hats::mojom::Page> page,
HatsPageHandlerDelegate* delegate)
: receiver_(this, std::move(receiver)),
page_(std::move(page)),
delegate_(delegate) {
CHECK(delegate_ != nullptr);
std::string product_specific_data_json;
base::JSONWriter::Write(delegate_->GetProductSpecificDataJson(),
&product_specific_data_json);
page_->RequestSurvey(google_apis::GetHatsAPIKey(), delegate_->GetTriggerId(),
delegate_->GetEnableTesting(),
delegate_->GetLanguageList(),
product_specific_data_json);
}
// Triggered by onSurveyLoaded() call in TS.
void HatsPageHandler::OnSurveyLoaded() {
delegate_->OnSurveyLoaded();
}
// Triggered by onSurveyClosed() call in TS.
void HatsPageHandler::OnSurveyClosed() {
delegate_->OnSurveyClosed();
}
HatsPageHandler::~HatsPageHandler() = default;