[Sync] Componentize UIModelWorker.
[chromium-blink-merge.git] / components / test_runner / app_banner_client.cc
blob6e3afbddf45e7d3245f0efc285144ee2b7e22f89
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.
5 #include "components/test_runner/app_banner_client.h"
7 #include "base/logging.h"
8 #include "base/memory/scoped_ptr.h"
9 #include "third_party/WebKit/public/platform/modules/app_banner/WebAppBannerPromptResult.h"
11 namespace test_runner {
13 AppBannerClient::AppBannerClient() {
16 AppBannerClient::~AppBannerClient() {
19 void AppBannerClient::registerBannerCallbacks(
20 int requestId,
21 blink::WebAppBannerCallbacks* callbacks) {
22 callbacks_map_.AddWithID(callbacks, requestId);
25 void AppBannerClient::ResolvePromise(int request_id,
26 const std::string& resolve_platform) {
27 blink::WebAppBannerCallbacks* callbacks = callbacks_map_.Lookup(request_id);
28 if (!callbacks)
29 return;
31 scoped_ptr<blink::WebAppBannerPromptResult> result(
32 new blink::WebAppBannerPromptResult(
33 blink::WebString::fromUTF8(resolve_platform),
34 blink::WebAppBannerPromptResult::Outcome::Accepted));
36 // If no platform has been set, treat it as dismissal.
37 if (resolve_platform.empty())
38 result->outcome = blink::WebAppBannerPromptResult::Outcome::Dismissed;
40 callbacks->onSuccess(result.release());
41 callbacks_map_.Remove(request_id);
44 } // namespace test_runner