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(
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
);
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