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

Side by Side Diff: chrome/browser/chromeos/note_taking_helper.cc

Issue 2707133006: Start ARC and sign in after Chrome OS login (Closed)
Patch Set: test coverage in chrome_launcher_controller_impl_unittest.cc Created 3 years, 9 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 "chrome/browser/chromeos/note_taking_helper.h" 5 #include "chrome/browser/chromeos/note_taking_helper.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <utility> 8 #include <utility>
9 9
10 #include "apps/launcher.h" 10 #include "apps/launcher.h"
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
179 if (infos.empty()) 179 if (infos.empty())
180 LOG(WARNING) << "Unable to launch note-taking app; none available"; 180 LOG(WARNING) << "Unable to launch note-taking app; none available";
181 else 181 else
182 result = LaunchAppInternal(profile, infos[0].app_id, path); 182 result = LaunchAppInternal(profile, infos[0].app_id, path);
183 UMA_HISTOGRAM_ENUMERATION(kDefaultLaunchResultHistogramName, 183 UMA_HISTOGRAM_ENUMERATION(kDefaultLaunchResultHistogramName,
184 static_cast<int>(result), 184 static_cast<int>(result),
185 static_cast<int>(LaunchResult::MAX)); 185 static_cast<int>(LaunchResult::MAX));
186 } 186 }
187 187
188 void NoteTakingHelper::OnIntentFiltersUpdated() { 188 void NoteTakingHelper::OnIntentFiltersUpdated() {
189 if (android_enabled_) 189 if (play_store_enabled_)
190 UpdateAndroidApps(); 190 UpdateAndroidApps();
191 } 191 }
192 192
193 void NoteTakingHelper::OnArcPlayStoreEnabledChanged(bool enabled) { 193 void NoteTakingHelper::OnArcPlayStoreEnabledChanged(bool enabled) {
194 android_enabled_ = enabled; 194 play_store_enabled_ = enabled;
195 if (!enabled) { 195 if (!enabled) {
196 android_apps_.clear(); 196 android_apps_.clear();
197 android_apps_received_ = false; 197 android_apps_received_ = false;
198 } 198 }
199 for (auto& observer : observers_) 199 for (auto& observer : observers_)
200 observer.OnAvailableNoteTakingAppsUpdated(); 200 observer.OnAvailableNoteTakingAppsUpdated();
201 } 201 }
202 202
203 NoteTakingHelper::NoteTakingHelper() 203 NoteTakingHelper::NoteTakingHelper()
204 : launch_chrome_app_callback_( 204 : launch_chrome_app_callback_(
(...skipping 18 matching lines...) Expand all
223 content::NotificationService::AllBrowserContextsAndSources()); 223 content::NotificationService::AllBrowserContextsAndSources());
224 for (Profile* profile : 224 for (Profile* profile :
225 g_browser_process->profile_manager()->GetLoadedProfiles()) { 225 g_browser_process->profile_manager()->GetLoadedProfiles()) {
226 extension_registry_observer_.Add( 226 extension_registry_observer_.Add(
227 extensions::ExtensionRegistry::Get(profile)); 227 extensions::ExtensionRegistry::Get(profile));
228 } 228 }
229 229
230 // Check if the primary profile has already enabled ARC and watch for changes. 230 // Check if the primary profile has already enabled ARC and watch for changes.
231 auto session_manager = arc::ArcSessionManager::Get(); 231 auto session_manager = arc::ArcSessionManager::Get();
232 session_manager->AddObserver(this); 232 session_manager->AddObserver(this);
233 android_enabled_ = session_manager->IsArcPlayStoreEnabled(); 233 play_store_enabled_ = session_manager->IsArcPlayStoreEnabled();
234 234
235 // ArcIntentHelperBridge will notify us about changes to the list of available 235 // ArcIntentHelperBridge will notify us about changes to the list of available
236 // Android apps. 236 // Android apps.
237 auto intent_helper_bridge = 237 auto intent_helper_bridge =
238 arc::ArcServiceManager::GetGlobalService<arc::ArcIntentHelperBridge>(); 238 arc::ArcServiceManager::GetGlobalService<arc::ArcIntentHelperBridge>();
239 if (intent_helper_bridge) 239 if (intent_helper_bridge)
240 intent_helper_bridge->AddObserver(this); 240 intent_helper_bridge->AddObserver(this);
241 241
242 // If the ARC intent helper is ready, get the Android apps. Otherwise, 242 // If the ARC intent helper is ready, get the Android apps. Otherwise,
243 // UpdateAndroidApps() will be called when ArcServiceManager calls 243 // UpdateAndroidApps() will be called when ArcServiceManager calls
244 // OnIntentFiltersUpdated(). 244 // OnIntentFiltersUpdated().
245 if (android_enabled_ && 245 if (play_store_enabled_ &&
246 arc::ArcServiceManager::Get() 246 arc::ArcServiceManager::Get()
247 ->arc_bridge_service() 247 ->arc_bridge_service()
248 ->intent_helper() 248 ->intent_helper()
249 ->has_instance()) 249 ->has_instance())
250 UpdateAndroidApps(); 250 UpdateAndroidApps();
251 } 251 }
252 252
253 NoteTakingHelper::~NoteTakingHelper() { 253 NoteTakingHelper::~NoteTakingHelper() {
254 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 254 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
255 255
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
307 if (!helper) 307 if (!helper)
308 return; 308 return;
309 helper->RequestIntentHandlerList( 309 helper->RequestIntentHandlerList(
310 CreateIntentInfo(GURL()), base::Bind(&NoteTakingHelper::OnGotAndroidApps, 310 CreateIntentInfo(GURL()), base::Bind(&NoteTakingHelper::OnGotAndroidApps,
311 weak_ptr_factory_.GetWeakPtr())); 311 weak_ptr_factory_.GetWeakPtr()));
312 } 312 }
313 313
314 void NoteTakingHelper::OnGotAndroidApps( 314 void NoteTakingHelper::OnGotAndroidApps(
315 std::vector<arc::mojom::IntentHandlerInfoPtr> handlers) { 315 std::vector<arc::mojom::IntentHandlerInfoPtr> handlers) {
316 DCHECK_CURRENTLY_ON(content::BrowserThread::UI); 316 DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
317 if (!android_enabled_) 317 if (!play_store_enabled_)
318 return; 318 return;
319 319
320 android_apps_.clear(); 320 android_apps_.clear();
321 android_apps_.reserve(handlers.size()); 321 android_apps_.reserve(handlers.size());
322 for (const auto& it : handlers) { 322 for (const auto& it : handlers) {
323 android_apps_.emplace_back( 323 android_apps_.emplace_back(
324 NoteTakingAppInfo{it->name, it->package_name, false}); 324 NoteTakingAppInfo{it->name, it->package_name, false});
325 } 325 }
326 android_apps_received_ = true; 326 android_apps_received_ = true;
327 327
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
414 for (auto& observer : observers_) 414 for (auto& observer : observers_)
415 observer.OnAvailableNoteTakingAppsUpdated(); 415 observer.OnAvailableNoteTakingAppsUpdated();
416 } 416 }
417 } 417 }
418 418
419 void NoteTakingHelper::OnShutdown(extensions::ExtensionRegistry* registry) { 419 void NoteTakingHelper::OnShutdown(extensions::ExtensionRegistry* registry) {
420 extension_registry_observer_.Remove(registry); 420 extension_registry_observer_.Remove(registry);
421 } 421 }
422 422
423 } // namespace chromeos 423 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698