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

Side by Side Diff: chrome/browser/chromeos/arc/arc_external_protocol_dialog.cc

Issue 2443313002: Add more tests to arc_navigation_throttle.cc (Closed)
Patch Set: address comments Created 4 years, 1 month 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
« no previous file with comments | « no previous file | chrome/browser/chromeos/arc/arc_navigation_throttle.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "chrome/browser/chromeos/arc/arc_external_protocol_dialog.h" 5 #include "chrome/browser/chromeos/arc/arc_external_protocol_dialog.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <string> 8 #include <string>
9 #include <utility> 9 #include <utility>
10 #include <vector> 10 #include <vector>
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 67
68 // Called when the dialog is closed. 68 // Called when the dialog is closed.
69 void OnIntentPickerClosed(int render_process_host_id, 69 void OnIntentPickerClosed(int render_process_host_id,
70 int routing_id, 70 int routing_id,
71 const GURL& url, 71 const GURL& url,
72 mojo::Array<mojom::IntentHandlerInfoPtr> handlers, 72 mojo::Array<mojom::IntentHandlerInfoPtr> handlers,
73 std::string selected_app_package, 73 std::string selected_app_package,
74 ArcNavigationThrottle::CloseReason close_reason) { 74 ArcNavigationThrottle::CloseReason close_reason) {
75 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 75 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
76 76
77 size_t selected_app_index = handlers.size(); 77 // If the user selected an app to continue the navigation, confirm that the
78 // |package_name| matches a valid option and return the index.
79 const size_t selected_app_index =
80 ArcNavigationThrottle::GetAppIndex(handlers, selected_app_package);
78 // Make sure that the instance at least supports HandleUrl. 81 // Make sure that the instance at least supports HandleUrl.
79 auto* instance = ArcIntentHelperBridge::GetIntentHelperInstance( 82 auto* instance = ArcIntentHelperBridge::GetIntentHelperInstance(
80 "HandleUrl", kMinVersionForHandleUrl); 83 "HandleUrl", kMinVersionForHandleUrl);
81 if (!instance) { 84 if (!instance) {
82 close_reason = ArcNavigationThrottle::CloseReason::ERROR; 85 close_reason = ArcNavigationThrottle::CloseReason::ERROR;
83 } else if (close_reason == 86 } else if (close_reason ==
84 ArcNavigationThrottle::CloseReason::JUST_ONCE_PRESSED || 87 ArcNavigationThrottle::CloseReason::JUST_ONCE_PRESSED ||
85 close_reason == 88 close_reason ==
86 ArcNavigationThrottle::CloseReason::ALWAYS_PRESSED) { 89 ArcNavigationThrottle::CloseReason::ALWAYS_PRESSED) {
87 // If the user selected an app to continue the navigation, confirm that the
88 // |package_name| matches a valid option and return the index.
89 for (size_t i = 0; i < handlers.size(); ++i) {
90 if (handlers[i]->package_name == selected_app_package) {
91 selected_app_index = i;
92 break;
93 }
94 }
95
96 if (selected_app_index == handlers.size()) 90 if (selected_app_index == handlers.size())
97 close_reason = ArcNavigationThrottle::CloseReason::ERROR; 91 close_reason = ArcNavigationThrottle::CloseReason::ERROR;
98 } 92 }
99 93
100 switch (close_reason) { 94 switch (close_reason) {
101 case ArcNavigationThrottle::CloseReason::ALWAYS_PRESSED: { 95 case ArcNavigationThrottle::CloseReason::ALWAYS_PRESSED: {
102 if (ArcIntentHelperBridge::GetIntentHelperInstance( 96 if (ArcIntentHelperBridge::GetIntentHelperInstance(
103 "AddPreferredPackage", kMinVersionForAddPreferredPackage)) { 97 "AddPreferredPackage", kMinVersionForAddPreferredPackage)) {
104 instance->AddPreferredPackage( 98 instance->AddPreferredPackage(
105 handlers[selected_app_index]->package_name); 99 handlers[selected_app_index]->package_name);
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
229 223
230 // Show ARC version of the dialog, which is IntentPickerBubbleView. To show 224 // Show ARC version of the dialog, which is IntentPickerBubbleView. To show
231 // the bubble view, we need to ask ARC for a handler list first. 225 // the bubble view, we need to ask ARC for a handler list first.
232 instance->RequestUrlHandlerList( 226 instance->RequestUrlHandlerList(
233 url.spec(), 227 url.spec(),
234 base::Bind(OnUrlHandlerList, render_process_host_id, routing_id, url)); 228 base::Bind(OnUrlHandlerList, render_process_host_id, routing_id, url));
235 return true; 229 return true;
236 } 230 }
237 231
238 } // namespace arc 232 } // namespace arc
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/chromeos/arc/arc_navigation_throttle.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698