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

Side by Side Diff: extensions/browser/api/app_runtime/app_runtime_api.cc

Issue 344543006: Disable ephemeral apps after they stop running (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed review comments and refactoring Created 6 years, 4 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "extensions/browser/api/app_runtime/app_runtime_api.h" 5 #include "extensions/browser/api/app_runtime/app_runtime_api.h"
6 6
7 #include "base/time/time.h" 7 #include "base/time/time.h"
8 #include "base/values.h" 8 #include "base/values.h"
9 #include "extensions/browser/event_router.h" 9 #include "extensions/browser/event_router.h"
10 #include "extensions/browser/extension_prefs.h" 10 #include "extensions/browser/extension_prefs.h"
(...skipping 14 matching lines...) Expand all
25 void DispatchOnEmbedRequestedEventImpl( 25 void DispatchOnEmbedRequestedEventImpl(
26 const std::string& extension_id, 26 const std::string& extension_id,
27 scoped_ptr<base::DictionaryValue> app_embedding_request_data, 27 scoped_ptr<base::DictionaryValue> app_embedding_request_data,
28 content::BrowserContext* context) { 28 content::BrowserContext* context) {
29 scoped_ptr<base::ListValue> args(new base::ListValue()); 29 scoped_ptr<base::ListValue> args(new base::ListValue());
30 args->Append(app_embedding_request_data.release()); 30 args->Append(app_embedding_request_data.release());
31 ExtensionSystem* system = ExtensionSystem::Get(context); 31 ExtensionSystem* system = ExtensionSystem::Get(context);
32 scoped_ptr<Event> event( 32 scoped_ptr<Event> event(
33 new Event(app_runtime::OnEmbedRequested::kEventName, args.Pass())); 33 new Event(app_runtime::OnEmbedRequested::kEventName, args.Pass()));
34 event->restrict_to_browser_context = context; 34 event->restrict_to_browser_context = context;
35 event->can_load_ephemeral_apps = true;
36 system->event_router()->DispatchEventWithLazyListener(extension_id, 35 system->event_router()->DispatchEventWithLazyListener(extension_id,
37 event.Pass()); 36 event.Pass());
38 37
39 ExtensionPrefs::Get(context) 38 ExtensionPrefs::Get(context)
40 ->SetLastLaunchTime(extension_id, base::Time::Now()); 39 ->SetLastLaunchTime(extension_id, base::Time::Now());
41 } 40 }
42 41
43 void DispatchOnLaunchedEventImpl(const std::string& extension_id, 42 void DispatchOnLaunchedEventImpl(const std::string& extension_id,
44 scoped_ptr<base::DictionaryValue> launch_data, 43 scoped_ptr<base::DictionaryValue> launch_data,
45 BrowserContext* context) { 44 BrowserContext* context) {
46 // "Forced app mode" is true for Chrome OS kiosk mode. 45 // "Forced app mode" is true for Chrome OS kiosk mode.
47 launch_data->SetBoolean( 46 launch_data->SetBoolean(
48 "isKioskSession", 47 "isKioskSession",
49 ExtensionsBrowserClient::Get()->IsRunningInForcedAppMode()); 48 ExtensionsBrowserClient::Get()->IsRunningInForcedAppMode());
50 scoped_ptr<base::ListValue> args(new base::ListValue()); 49 scoped_ptr<base::ListValue> args(new base::ListValue());
51 args->Append(launch_data.release()); 50 args->Append(launch_data.release());
52 scoped_ptr<Event> event( 51 scoped_ptr<Event> event(
53 new Event(app_runtime::OnLaunched::kEventName, args.Pass())); 52 new Event(app_runtime::OnLaunched::kEventName, args.Pass()));
54 event->restrict_to_browser_context = context; 53 event->restrict_to_browser_context = context;
55 event->can_load_ephemeral_apps = true;
56 EventRouter::Get(context) 54 EventRouter::Get(context)
57 ->DispatchEventWithLazyListener(extension_id, event.Pass()); 55 ->DispatchEventWithLazyListener(extension_id, event.Pass());
58 ExtensionPrefs::Get(context) 56 ExtensionPrefs::Get(context)
59 ->SetLastLaunchTime(extension_id, base::Time::Now()); 57 ->SetLastLaunchTime(extension_id, base::Time::Now());
60 } 58 }
61 59
62 } // namespace 60 } // namespace
63 61
64 // static 62 // static
65 void AppRuntimeEventRouter::DispatchOnEmbedRequestedEvent( 63 void AppRuntimeEventRouter::DispatchOnEmbedRequestedEvent(
(...skipping 13 matching lines...) Expand all
79 } 77 }
80 78
81 // static 79 // static
82 void AppRuntimeEventRouter::DispatchOnRestartedEvent( 80 void AppRuntimeEventRouter::DispatchOnRestartedEvent(
83 BrowserContext* context, 81 BrowserContext* context,
84 const Extension* extension) { 82 const Extension* extension) {
85 scoped_ptr<base::ListValue> arguments(new base::ListValue()); 83 scoped_ptr<base::ListValue> arguments(new base::ListValue());
86 scoped_ptr<Event> event( 84 scoped_ptr<Event> event(
87 new Event(app_runtime::OnRestarted::kEventName, arguments.Pass())); 85 new Event(app_runtime::OnRestarted::kEventName, arguments.Pass()));
88 event->restrict_to_browser_context = context; 86 event->restrict_to_browser_context = context;
89 event->can_load_ephemeral_apps = true;
90 EventRouter::Get(context) 87 EventRouter::Get(context)
91 ->DispatchEventToExtension(extension->id(), event.Pass()); 88 ->DispatchEventToExtension(extension->id(), event.Pass());
92 } 89 }
93 90
94 // static 91 // static
95 void AppRuntimeEventRouter::DispatchOnLaunchedEventWithFileEntries( 92 void AppRuntimeEventRouter::DispatchOnLaunchedEventWithFileEntries(
96 BrowserContext* context, 93 BrowserContext* context,
97 const Extension* extension, 94 const Extension* extension,
98 const std::string& handler_id, 95 const std::string& handler_id,
99 const std::vector<std::string>& mime_types, 96 const std::vector<std::string>& mime_types,
(...skipping 25 matching lines...) Expand all
125 const GURL& referrer_url) { 122 const GURL& referrer_url) {
126 app_runtime::LaunchData launch_data; 123 app_runtime::LaunchData launch_data;
127 launch_data.id.reset(new std::string(handler_id)); 124 launch_data.id.reset(new std::string(handler_id));
128 launch_data.url.reset(new std::string(url.spec())); 125 launch_data.url.reset(new std::string(url.spec()));
129 launch_data.referrer_url.reset(new std::string(referrer_url.spec())); 126 launch_data.referrer_url.reset(new std::string(referrer_url.spec()));
130 DispatchOnLaunchedEventImpl( 127 DispatchOnLaunchedEventImpl(
131 extension->id(), launch_data.ToValue().Pass(), context); 128 extension->id(), launch_data.ToValue().Pass(), context);
132 } 129 }
133 130
134 } // namespace extensions 131 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/test/data/extensions/platform_apps/ephemeral_apps/dispatch_event/main.js ('k') | extensions/browser/event_router.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698