blob: 6e3afbddf45e7d3245f0efc285144ee2b7e22f89 [file] [log] [blame]
// Copyright 2015 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.
#include "components/test_runner/app_banner_client.h"
#include "base/logging.h"
#include "base/memory/scoped_ptr.h"
#include "third_party/WebKit/public/platform/modules/app_banner/WebAppBannerPromptResult.h"
namespace test_runner {
AppBannerClient::AppBannerClient() {
}
AppBannerClient::~AppBannerClient() {
}
void AppBannerClient::registerBannerCallbacks(
int requestId,
blink::WebAppBannerCallbacks* callbacks) {
callbacks_map_.AddWithID(callbacks, requestId);
}
void AppBannerClient::ResolvePromise(int request_id,
const std::string& resolve_platform) {
blink::WebAppBannerCallbacks* callbacks = callbacks_map_.Lookup(request_id);
if (!callbacks)
return;
scoped_ptr<blink::WebAppBannerPromptResult> result(
new blink::WebAppBannerPromptResult(
blink::WebString::fromUTF8(resolve_platform),
blink::WebAppBannerPromptResult::Outcome::Accepted));
// If no platform has been set, treat it as dismissal.
if (resolve_platform.empty())
result->outcome = blink::WebAppBannerPromptResult::Outcome::Dismissed;
callbacks->onSuccess(result.release());
callbacks_map_.Remove(request_id);
}
} // namespace test_runner