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

Side by Side Diff: extensions/shell/browser/shell_nacl_browser_delegate.cc

Issue 2762513002: Remove keep-alive impulse IPCs from NaCl modules. (Closed)
Patch Set: Rebase 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 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/shell/browser/shell_nacl_browser_delegate.h" 5 #include "extensions/shell/browser/shell_nacl_browser_delegate.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/base_paths.h" 9 #include "base/base_paths.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 12 matching lines...) Expand all
23 #include "extensions/common/extension.h" 23 #include "extensions/common/extension.h"
24 #include "extensions/common/url_pattern.h" 24 #include "extensions/common/url_pattern.h"
25 #include "extensions/shell/common/version.h" // Generated file. 25 #include "extensions/shell/common/version.h" // Generated file.
26 #include "url/gurl.h" 26 #include "url/gurl.h"
27 27
28 using content::BrowserContext; 28 using content::BrowserContext;
29 using content::BrowserThread; 29 using content::BrowserThread;
30 using content::BrowserPpapiHost; 30 using content::BrowserPpapiHost;
31 31
32 namespace extensions { 32 namespace extensions {
33 namespace {
34
35 // Handles an extension's NaCl process transitioning in or out of idle state by
36 // relaying the state to the extension's process manager. See Chrome's
37 // NaClBrowserDelegateImpl for another example.
38 void OnKeepaliveOnUIThread(
39 const BrowserPpapiHost::OnKeepaliveInstanceData& instance_data,
40 const base::FilePath& profile_data_directory) {
41 DCHECK_CURRENTLY_ON(BrowserThread::UI);
42
43 // Only one instance will exist for NaCl embeds, even when more than one
44 // embed of the same plugin exists on the same page.
45 DCHECK(instance_data.size() == 1);
46 if (instance_data.size() < 1)
47 return;
48
49 ProcessManager::OnKeepaliveFromPlugin(instance_data[0].render_process_id,
50 instance_data[0].render_frame_id,
51 instance_data[0].document_url.host());
52 }
53
54 // Calls OnKeepaliveOnUIThread on UI thread.
55 void OnKeepalive(const BrowserPpapiHost::OnKeepaliveInstanceData& instance_data,
56 const base::FilePath& profile_data_directory) {
57 DCHECK_CURRENTLY_ON(BrowserThread::UI);
58 BrowserThread::PostTask(
59 BrowserThread::UI,
60 FROM_HERE,
61 base::Bind(
62 &OnKeepaliveOnUIThread, instance_data, profile_data_directory));
63 }
64
65 } // namespace
66 33
67 ShellNaClBrowserDelegate::ShellNaClBrowserDelegate(BrowserContext* context) 34 ShellNaClBrowserDelegate::ShellNaClBrowserDelegate(BrowserContext* context)
68 : browser_context_(context) { 35 : browser_context_(context) {
69 DCHECK(browser_context_); 36 DCHECK(browser_context_);
70 } 37 }
71 38
72 ShellNaClBrowserDelegate::~ShellNaClBrowserDelegate() { 39 ShellNaClBrowserDelegate::~ShellNaClBrowserDelegate() {
73 } 40 }
74 41
75 void ShellNaClBrowserDelegate::ShowMissingArchInfobar(int render_process_id, 42 void ShellNaClBrowserDelegate::ShowMissingArchInfobar(int render_process_id,
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 142
176 // GetFilePath is a blocking function call. 143 // GetFilePath is a blocking function call.
177 const base::FilePath resource_file_path = resource.GetFilePath(); 144 const base::FilePath resource_file_path = resource.GetFilePath();
178 if (resource_file_path.empty()) 145 if (resource_file_path.empty())
179 return false; 146 return false;
180 147
181 *file_path = resource_file_path; 148 *file_path = resource_file_path;
182 return true; 149 return true;
183 } 150 }
184 151
185 content::BrowserPpapiHost::OnKeepaliveCallback
186 ShellNaClBrowserDelegate::GetOnKeepaliveCallback() {
187 return base::Bind(&OnKeepalive);
188 }
189
190 bool ShellNaClBrowserDelegate::IsNonSfiModeAllowed( 152 bool ShellNaClBrowserDelegate::IsNonSfiModeAllowed(
191 const base::FilePath& profile_directory, 153 const base::FilePath& profile_directory,
192 const GURL& manifest_url) { 154 const GURL& manifest_url) {
193 return false; 155 return false;
194 } 156 }
195 157
196 } // namespace extensions 158 } // namespace extensions
OLDNEW
« no previous file with comments | « extensions/shell/browser/shell_nacl_browser_delegate.h ('k') | ppapi/nacl_irt/ppapi_dispatcher.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698