| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef COMPONENTS_ARC_INTENT_HELPER_ARC_INTENT_HELPER_BRIDGE_H_ | 5 #ifndef COMPONENTS_ARC_INTENT_HELPER_ARC_INTENT_HELPER_BRIDGE_H_ |
| 6 #define COMPONENTS_ARC_INTENT_HELPER_ARC_INTENT_HELPER_BRIDGE_H_ | 6 #define COMPONENTS_ARC_INTENT_HELPER_ARC_INTENT_HELPER_BRIDGE_H_ |
| 7 | 7 |
| 8 #include <memory> | 8 #include <memory> |
| 9 #include <string> | 9 #include <string> |
| 10 | 10 |
| (...skipping 19 matching lines...) Expand all Loading... |
| 30 class LocalActivityResolver; | 30 class LocalActivityResolver; |
| 31 class SetWallpaperDelegate; | 31 class SetWallpaperDelegate; |
| 32 | 32 |
| 33 // Receives intents from ARC. | 33 // Receives intents from ARC. |
| 34 class ArcIntentHelperBridge | 34 class ArcIntentHelperBridge |
| 35 : public ArcService, | 35 : public ArcService, |
| 36 public InstanceHolder<mojom::IntentHelperInstance>::Observer, | 36 public InstanceHolder<mojom::IntentHelperInstance>::Observer, |
| 37 public mojom::IntentHelperHost, | 37 public mojom::IntentHelperHost, |
| 38 public ash::LinkHandlerModelFactory { | 38 public ash::LinkHandlerModelFactory { |
| 39 public: | 39 public: |
| 40 enum class GetResult { |
| 41 // Failed. The intent_helper instance is not yet ready. This is a temporary |
| 42 // error. |
| 43 FAILED_ARC_NOT_READY, |
| 44 // Failed. Either ARC is not supported at all or intent_helper instance |
| 45 // version is too old. |
| 46 FAILED_ARC_NOT_SUPPORTED, |
| 47 }; |
| 48 |
| 40 ArcIntentHelperBridge( | 49 ArcIntentHelperBridge( |
| 41 ArcBridgeService* bridge_service, | 50 ArcBridgeService* bridge_service, |
| 42 const scoped_refptr<ActivityIconLoader>& icon_loader, | 51 const scoped_refptr<ActivityIconLoader>& icon_loader, |
| 43 const scoped_refptr<LocalActivityResolver>& activity_resolver); | 52 const scoped_refptr<LocalActivityResolver>& activity_resolver); |
| 44 ~ArcIntentHelperBridge() override; | 53 ~ArcIntentHelperBridge() override; |
| 45 | 54 |
| 46 // InstanceHolder<mojom::IntentHelperInstance>::Observer | 55 // InstanceHolder<mojom::IntentHelperInstance>::Observer |
| 47 void OnInstanceReady() override; | 56 void OnInstanceReady() override; |
| 48 void OnInstanceClosed() override; | 57 void OnInstanceClosed() override; |
| 49 | 58 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 60 std::unique_ptr<ash::LinkHandlerModel> CreateModel(const GURL& url) override; | 69 std::unique_ptr<ash::LinkHandlerModel> CreateModel(const GURL& url) override; |
| 61 | 70 |
| 62 // Returns false if |package_name| is for the intent_helper apk. | 71 // Returns false if |package_name| is for the intent_helper apk. |
| 63 static bool IsIntentHelperPackage(const std::string& package_name); | 72 static bool IsIntentHelperPackage(const std::string& package_name); |
| 64 | 73 |
| 65 // Filters out handlers that belong to the intent_helper apk and returns | 74 // Filters out handlers that belong to the intent_helper apk and returns |
| 66 // a new array. | 75 // a new array. |
| 67 static mojo::Array<mojom::UrlHandlerInfoPtr> FilterOutIntentHelper( | 76 static mojo::Array<mojom::UrlHandlerInfoPtr> FilterOutIntentHelper( |
| 68 mojo::Array<mojom::UrlHandlerInfoPtr> handlers); | 77 mojo::Array<mojom::UrlHandlerInfoPtr> handlers); |
| 69 | 78 |
| 79 // Gets the mojo instance if it's available. On failure, returns nullptr and |
| 80 // updates |out_error_code| if it's not nullptr. |
| 81 static mojom::IntentHelperInstance* GetIntentHelperInstanceWithErrorCode( |
| 82 int min_instance_version, |
| 83 GetResult* out_error_code); |
| 84 |
| 85 // Does the same as above without asking for the error code. |
| 86 static mojom::IntentHelperInstance* GetIntentHelperInstance( |
| 87 int min_instance_version); |
| 88 |
| 70 private: | 89 private: |
| 71 mojo::Binding<mojom::IntentHelperHost> binding_; | 90 mojo::Binding<mojom::IntentHelperHost> binding_; |
| 72 scoped_refptr<ActivityIconLoader> icon_loader_; | 91 scoped_refptr<ActivityIconLoader> icon_loader_; |
| 73 scoped_refptr<LocalActivityResolver> activity_resolver_; | 92 scoped_refptr<LocalActivityResolver> activity_resolver_; |
| 74 | 93 |
| 75 base::ThreadChecker thread_checker_; | 94 base::ThreadChecker thread_checker_; |
| 76 | 95 |
| 77 DISALLOW_COPY_AND_ASSIGN(ArcIntentHelperBridge); | 96 DISALLOW_COPY_AND_ASSIGN(ArcIntentHelperBridge); |
| 78 }; | 97 }; |
| 79 | 98 |
| 80 } // namespace arc | 99 } // namespace arc |
| 81 | 100 |
| 82 #endif // COMPONENTS_ARC_INTENT_HELPER_ARC_INTENT_HELPER_BRIDGE_H_ | 101 #endif // COMPONENTS_ARC_INTENT_HELPER_ARC_INTENT_HELPER_BRIDGE_H_ |
| OLD | NEW |