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

Side by Side Diff: apps/launcher.cc

Issue 93593003: Make clicking the restart bubble for crashed apps work. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: respond to comments Created 7 years 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 | « apps/app_load_service.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "apps/launcher.h" 5 #include "apps/launcher.h"
6 6
7 #include "apps/apps_client.h" 7 #include "apps/apps_client.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/file_util.h" 9 #include "base/file_util.h"
10 #include "base/files/file_path.h" 10 #include "base/files/file_path.h"
11 #include "base/logging.h" 11 #include "base/logging.h"
12 #include "base/memory/ref_counted.h" 12 #include "base/memory/ref_counted.h"
13 #include "base/stl_util.h"
13 #include "base/strings/string_util.h" 14 #include "base/strings/string_util.h"
14 #include "base/strings/utf_string_conversions.h" 15 #include "base/strings/utf_string_conversions.h"
15 #include "chrome/browser/extensions/api/app_runtime/app_runtime_api.h" 16 #include "chrome/browser/extensions/api/app_runtime/app_runtime_api.h"
16 #include "chrome/browser/extensions/api/file_handlers/app_file_handler_util.h" 17 #include "chrome/browser/extensions/api/file_handlers/app_file_handler_util.h"
17 #include "chrome/browser/extensions/api/file_system/file_system_api.h" 18 #include "chrome/browser/extensions/api/file_system/file_system_api.h"
18 #include "chrome/browser/extensions/extension_host.h" 19 #include "chrome/browser/extensions/extension_host.h"
19 #include "chrome/browser/extensions/extension_prefs.h" 20 #include "chrome/browser/extensions/extension_prefs.h"
20 #include "chrome/browser/extensions/extension_service.h" 21 #include "chrome/browser/extensions/extension_service.h"
21 #include "chrome/browser/extensions/extension_system.h" 22 #include "chrome/browser/extensions/extension_system.h"
22 #include "chrome/browser/profiles/profile.h" 23 #include "chrome/browser/profiles/profile.h"
(...skipping 347 matching lines...) Expand 10 before | Expand all | Expand 10 after
370 371
371 void RestartPlatformApp(Profile* profile, const Extension* extension) { 372 void RestartPlatformApp(Profile* profile, const Extension* extension) {
372 #if defined(OS_WIN) 373 #if defined(OS_WIN)
373 // On Windows 8's single window Metro mode we can not launch platform apps. 374 // On Windows 8's single window Metro mode we can not launch platform apps.
374 // In restart we are just making sure launch doesn't slip through. 375 // In restart we are just making sure launch doesn't slip through.
375 if (win8::IsSingleWindowMetroMode()) 376 if (win8::IsSingleWindowMetroMode())
376 return; 377 return;
377 #endif 378 #endif
378 extensions::EventRouter* event_router = 379 extensions::EventRouter* event_router =
379 ExtensionSystem::Get(profile)->event_router(); 380 ExtensionSystem::Get(profile)->event_router();
380 bool listening_to_restart = event_router-> 381 // We check for registered events, rather than listeners, because listeners
381 ExtensionHasEventListener(extension->id(), 382 // may not be instantiated for the events yet.
382 app_runtime::OnRestarted::kEventName); 383 std::set<std::string> events =
384 event_router->GetRegisteredEvents(extension->id());
385 bool listening_to_restart =
386 ContainsKey(events, std::string(app_runtime::OnRestarted::kEventName));
tapted 2013/12/16 03:23:17 what's wrong with .count()? you should get an impl
koz (OOO until 15th September) 2013/12/16 03:52:35 Oh, but I'm old-school, too! Sort of. Java is olds
383 387
384 if (listening_to_restart) { 388 if (listening_to_restart) {
385 extensions::AppEventRouter::DispatchOnRestartedEvent(profile, extension); 389 extensions::AppEventRouter::DispatchOnRestartedEvent(profile, extension);
386 return; 390 return;
387 } 391 }
388 392
389 extensions::ExtensionPrefs* extension_prefs = ExtensionSystem::Get(profile)-> 393 extensions::ExtensionPrefs* extension_prefs = ExtensionSystem::Get(profile)->
390 extension_service()->extension_prefs(); 394 extension_service()->extension_prefs();
391 bool had_windows = extension_prefs->IsActive(extension->id()); 395 bool had_windows = extension_prefs->IsActive(extension->id());
392 extension_prefs->SetIsActive(extension->id(), false); 396 extension_prefs->SetIsActive(extension->id(), false);
393 bool listening_to_launch = event_router-> 397 bool listening_to_launch =
394 ExtensionHasEventListener(extension->id(), 398 ContainsKey(events, std::string(app_runtime::OnLaunched::kEventName));
395 app_runtime::OnLaunched::kEventName);
396 399
397 if (listening_to_launch && had_windows) 400 if (listening_to_launch && had_windows)
398 LaunchPlatformAppWithNoData(profile, extension); 401 LaunchPlatformAppWithNoData(profile, extension);
399 } 402 }
400 403
401 void LaunchPlatformAppWithUrl(Profile* profile, 404 void LaunchPlatformAppWithUrl(Profile* profile,
402 const Extension* extension, 405 const Extension* extension,
403 const std::string& handler_id, 406 const std::string& handler_id,
404 const GURL& url, 407 const GURL& url,
405 const GURL& referrer_url) { 408 const GURL& referrer_url) {
406 extensions::AppEventRouter::DispatchOnLaunchedEventWithUrl( 409 extensions::AppEventRouter::DispatchOnLaunchedEventWithUrl(
407 profile, extension, handler_id, url, referrer_url); 410 profile, extension, handler_id, url, referrer_url);
408 } 411 }
409 412
410 } // namespace apps 413 } // namespace apps
OLDNEW
« no previous file with comments | « apps/app_load_service.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698