OLD | NEW |
(Empty) | |
| 1 // Copyright 2014 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 "base/logging.h" |
| 6 #include "base/strings/utf_string_conversions.h" |
| 7 #include "content/renderer/render_thread_impl.h" |
| 8 #include "content/renderer/installedapp/web_installed_app_impl.h" |
| 9 |
| 10 namespace content { |
| 11 |
| 12 WebInstalledAppImpl::WebInstalledAppImpl() {} |
| 13 |
| 14 WebInstalledAppImpl::~WebInstalledAppImpl() {} |
| 15 |
| 16 void WebInstalledAppImpl::isAppInstalled( |
| 17 const blink::WebString& asset1, |
| 18 const blink::WebString& asset2, |
| 19 const blink::WebString& origin, |
| 20 blink::AppInstalledCallbacks* raw_callbacks) { |
| 21 scoped_ptr<blink::AppInstalledCallbacks> callbacks(raw_callbacks); |
| 22 LOG(WARNING) << asset1.utf8(); |
| 23 LOG(WARNING) << asset2.utf8(); |
| 24 |
| 25 GetProvider()->IsAppInstalled( |
| 26 mojo::String(asset1.utf8()), mojo::String(asset2.utf8()), |
| 27 mojo::String(origin.utf8()), |
| 28 base::Bind(&WebInstalledAppImpl::OnIsAppInstalled, base::Unretained(this), |
| 29 base::Passed(&callbacks))); |
| 30 } |
| 31 |
| 32 void WebInstalledAppImpl::isNativeAppInstalled( |
| 33 const blink::WebInstalledAppVerificationManager& manager, |
| 34 const blink::WebString& origin, |
| 35 blink::AppInstalledCallbacks* raw_callbacks) { |
| 36 scoped_ptr<blink::AppInstalledCallbacks> callbacks(raw_callbacks); |
| 37 mojo::Map<mojo::String, mojo::Array<mojo::String>> validStrings; |
| 38 // We can collate these into just an array of interesting string names. |
| 39 // This will allow us to send a smaller Mojo map into Mojo. |
| 40 blink::WebString packageName = manager.androidPackageName(); |
| 41 mojo::Array<mojo::String> androidPackageName; |
| 42 androidPackageName.push_back(mojo::String(packageName.utf8())); |
| 43 validStrings.insert(mojo::String("packageName"), |
| 44 std::move(androidPackageName)); |
| 45 |
| 46 blink::WebVector<blink::WebString> signingKeyArray = |
| 47 manager.androidSigningKeys(); |
| 48 mojo::Array<mojo::String> keys; |
| 49 for (blink::WebVector<blink::WebString>::iterator it = |
| 50 signingKeyArray.begin(); |
| 51 it != signingKeyArray.end(); ++it) { |
| 52 keys.push_back(it->utf8()); |
| 53 LOG(WARNING) << it->utf8(); |
| 54 } |
| 55 validStrings.insert(mojo::String("signingKey"), std::move(keys)); |
| 56 // // We need to make this able to handle the possibility of it being an |
| 57 // array. |
| 58 // if (manager.get("packageName", packageName)) { |
| 59 // LOG(WARNING) << packageName.utf8(); |
| 60 // mojo::Array<mojo::String> keys; |
| 61 // keys.push_back(mojo::String(packageName.utf8())); |
| 62 // validStrings.insert(mojo::String("packageName"), std::move(keys)); |
| 63 // } |
| 64 // |
| 65 // blink::WebString signingKey; |
| 66 // blink::WebVector<blink::WebString> signingKeyArray; |
| 67 // if (manager.get("signingKey", signingKeyArray)) { |
| 68 // LOG(WARNING) << "Found a signing key array."; |
| 69 // mojo::Array<mojo::String> keys; |
| 70 // for (blink::WebVector<blink::WebString>::iterator it = |
| 71 // signingKeyArray.begin(); it != signingKeyArray.end(); ++it) { |
| 72 // keys.push_back(it->utf8()); |
| 73 // LOG(WARNING) << it->utf8(); |
| 74 // } |
| 75 // validStrings.insert(mojo::String("signingKey"), std::move(keys)); |
| 76 // } |
| 77 // else if (manager.get("signingKey", signingKey)) { |
| 78 // LOG(WARNING) << signingKey.utf8(); |
| 79 // mojo::Array<mojo::String> keys; |
| 80 // keys.push_back(mojo::String(signingKey.utf8())); |
| 81 // validStrings.insert(mojo::String("signingKey"), std::move(keys)); |
| 82 // } |
| 83 // |
| 84 // LOG(WARNING) << packageName.utf8(); |
| 85 // LOG(WARNING) << signingKey.utf8(); |
| 86 |
| 87 GetProvider()->IsNativeAppInstalled( |
| 88 std::move(validStrings), mojo::String(origin.utf8()), |
| 89 base::Bind(&WebInstalledAppImpl::OnIsNativeAppInstalled, |
| 90 base::Unretained(this), base::Passed(&callbacks))); |
| 91 } |
| 92 |
| 93 components::InstalledAppProviderPtr& WebInstalledAppImpl::GetProvider() { |
| 94 if (!provider_) { |
| 95 RenderThread::Get()->GetServiceRegistry()->ConnectToRemoteService( |
| 96 mojo::GetProxy(&provider_)); |
| 97 } |
| 98 return provider_; |
| 99 } |
| 100 |
| 101 void WebInstalledAppImpl::OnIsAppInstalled( |
| 102 scoped_ptr<blink::AppInstalledCallbacks> callbacks, |
| 103 bool result) { |
| 104 callbacks->onSuccess(result); |
| 105 } |
| 106 |
| 107 void WebInstalledAppImpl::OnIsNativeAppInstalled( |
| 108 scoped_ptr<blink::AppInstalledCallbacks> callbacks, |
| 109 bool result) { |
| 110 LOG(WARNING) << "aww yeah"; |
| 111 callbacks->onSuccess(result); |
| 112 } |
| 113 |
| 114 } // namespace content |
OLD | NEW |