Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(289)

Side by Side Diff: components/arc/intent_helper/activity_icon_loader.cc

Issue 2614173002: Use ARC_GET_INSTANCE_FOR_METHOD for getting intent_helper instance (Closed)
Patch Set: address comment Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 #include "components/arc/intent_helper/activity_icon_loader.h" 5 #include "components/arc/intent_helper/activity_icon_loader.h"
6 6
7 #include <string.h> 7 #include <string.h>
8 8
9 #include <tuple> 9 #include <tuple>
10 #include <utility> 10 #include <utility>
(...skipping 10 matching lines...) Expand all
21 21
22 namespace arc { 22 namespace arc {
23 23
24 namespace { 24 namespace {
25 25
26 constexpr size_t kSmallIconSizeInDip = 16; 26 constexpr size_t kSmallIconSizeInDip = 16;
27 constexpr size_t kLargeIconSizeInDip = 20; 27 constexpr size_t kLargeIconSizeInDip = 20;
28 constexpr size_t kMaxIconSizeInPx = 200; 28 constexpr size_t kMaxIconSizeInPx = 200;
29 constexpr char kPngDataUrlPrefix[] = "data:image/png;base64,"; 29 constexpr char kPngDataUrlPrefix[] = "data:image/png;base64,";
30 30
31 constexpr int kMinInstanceVersion = 3; // see intent_helper.mojom
32
33 ui::ScaleFactor GetSupportedScaleFactor() { 31 ui::ScaleFactor GetSupportedScaleFactor() {
34 std::vector<ui::ScaleFactor> scale_factors = ui::GetSupportedScaleFactors(); 32 std::vector<ui::ScaleFactor> scale_factors = ui::GetSupportedScaleFactors();
35 DCHECK(!scale_factors.empty()); 33 DCHECK(!scale_factors.empty());
36 return scale_factors.back(); 34 return scale_factors.back();
37 } 35 }
38 36
37 // Returns an instance for calling RequestActivityIcons().
38 mojom::IntentHelperInstance* GetInstanceForRequestActivityIcons(
39 ArcIntentHelperBridge::GetResult* out_error_code) {
40 if (!ArcIntentHelperBridge::IsIntentHelperAvailable(out_error_code))
41 return nullptr;
42 auto* instance = ARC_GET_INSTANCE_FOR_METHOD(
43 ArcServiceManager::Get()->arc_bridge_service()->intent_helper(),
44 RequestActivityIcons);
45 if (!instance && out_error_code) {
46 *out_error_code =
47 ArcIntentHelperBridge::GetResult::FAILED_ARC_NOT_SUPPORTED;
48 }
49 return instance;
50 }
51
39 } // namespace 52 } // namespace
40 53
41 ActivityIconLoader::Icons::Icons( 54 ActivityIconLoader::Icons::Icons(
42 const gfx::Image& icon16, 55 const gfx::Image& icon16,
43 const gfx::Image& icon20, 56 const gfx::Image& icon20,
44 const scoped_refptr<base::RefCountedData<GURL>>& icon16_dataurl) 57 const scoped_refptr<base::RefCountedData<GURL>>& icon16_dataurl)
45 : icon16(icon16), icon20(icon20), icon16_dataurl(icon16_dataurl) {} 58 : icon16(icon16), icon20(icon20), icon16_dataurl(icon16_dataurl) {}
46 59
47 ActivityIconLoader::Icons::Icons(const Icons& other) = default; 60 ActivityIconLoader::Icons::Icons(const Icons& other) = default;
48 61
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
90 } 103 }
91 } 104 }
92 105
93 if (activities_to_fetch.empty()) { 106 if (activities_to_fetch.empty()) {
94 // If there's nothing to fetch, run the callback now. 107 // If there's nothing to fetch, run the callback now.
95 cb.Run(std::move(result)); 108 cb.Run(std::move(result));
96 return GetResult::SUCCEEDED_SYNC; 109 return GetResult::SUCCEEDED_SYNC;
97 } 110 }
98 111
99 ArcIntentHelperBridge::GetResult error_code; 112 ArcIntentHelperBridge::GetResult error_code;
100 auto* instance = ArcIntentHelperBridge::GetIntentHelperInstanceWithErrorCode( 113 auto* instance = GetInstanceForRequestActivityIcons(&error_code);
101 "RequestActivityIcons", kMinInstanceVersion, &error_code);
102 if (!instance) { 114 if (!instance) {
103 // The mojo channel is not yet ready (or not supported at all). Run the 115 // The mojo channel is not yet ready (or not supported at all). Run the
104 // callback with |result| that could be empty. 116 // callback with |result| that could be empty.
105 cb.Run(std::move(result)); 117 cb.Run(std::move(result));
106 switch (error_code) { 118 switch (error_code) {
107 case ArcIntentHelperBridge::GetResult::FAILED_ARC_NOT_READY: 119 case ArcIntentHelperBridge::GetResult::FAILED_ARC_NOT_READY:
108 return GetResult(GetResult::FAILED_ARC_NOT_READY); 120 return GetResult(GetResult::FAILED_ARC_NOT_READY);
109 case ArcIntentHelperBridge::GetResult::FAILED_ARC_NOT_SUPPORTED: 121 case ArcIntentHelperBridge::GetResult::FAILED_ARC_NOT_SUPPORTED:
110 return GetResult(GetResult::FAILED_ARC_NOT_SUPPORTED); 122 return GetResult(GetResult::FAILED_ARC_NOT_SUPPORTED);
111 } 123 }
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
222 cached_icons_.erase(kv.first); 234 cached_icons_.erase(kv.first);
223 cached_icons_.insert(std::make_pair(kv.first, kv.second)); 235 cached_icons_.insert(std::make_pair(kv.first, kv.second));
224 } 236 }
225 237
226 // Merge the results that were obtained from cache before doing IPC. 238 // Merge the results that were obtained from cache before doing IPC.
227 result->insert(cached_result->begin(), cached_result->end()); 239 result->insert(cached_result->begin(), cached_result->end());
228 cb.Run(std::move(result)); 240 cb.Run(std::move(result));
229 } 241 }
230 242
231 } // namespace arc 243 } // namespace arc
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/file_manager/arc_file_tasks.cc ('k') | components/arc/intent_helper/arc_intent_helper_bridge.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698