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

Side by Side Diff: components/nacl/browser/nacl_process_host.cc

Issue 2762513002: Remove keep-alive impulse IPCs from NaCl modules. (Closed)
Patch Set: 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "components/nacl/browser/nacl_process_host.h" 5 #include "components/nacl/browser/nacl_process_host.h"
6 6
7 #include <string.h> 7 #include <string.h>
8 #include <algorithm> 8 #include <algorithm>
9 #include <string> 9 #include <string>
10 #include <utility> 10 #include <utility>
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
189 } 189 }
190 #endif // OS_WIN 190 #endif // OS_WIN
191 }; 191 };
192 192
193 void CloseFile(base::File file) { 193 void CloseFile(base::File file) {
194 // The base::File destructor will close the file for us. 194 // The base::File destructor will close the file for us.
195 } 195 }
196 196
197 } // namespace 197 } // namespace
198 198
199 unsigned NaClProcessHost::keepalive_throttle_interval_milliseconds_ =
200 ppapi::kKeepaliveThrottleIntervalDefaultMilliseconds;
201
202 NaClProcessHost::NaClProcessHost( 199 NaClProcessHost::NaClProcessHost(
203 const GURL& manifest_url, 200 const GURL& manifest_url,
204 base::File nexe_file, 201 base::File nexe_file,
205 const NaClFileToken& nexe_token, 202 const NaClFileToken& nexe_token,
206 const std::vector<NaClResourcePrefetchResult>& prefetched_resource_files, 203 const std::vector<NaClResourcePrefetchResult>& prefetched_resource_files,
207 ppapi::PpapiPermissions permissions, 204 ppapi::PpapiPermissions permissions,
208 int render_view_id, 205 int render_view_id,
209 uint32_t permission_bits, 206 uint32_t permission_bits,
210 bool uses_nonsfi_mode, 207 bool uses_nonsfi_mode,
211 bool off_the_record, 208 bool off_the_record,
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
336 } 333 }
337 334
338 #if defined(OS_POSIX) && !defined(OS_MACOSX) 335 #if defined(OS_POSIX) && !defined(OS_MACOSX)
339 // static 336 // static
340 void NaClProcessHost::EarlyZygoteLaunch() { 337 void NaClProcessHost::EarlyZygoteLaunch() {
341 DCHECK(!g_nacl_zygote); 338 DCHECK(!g_nacl_zygote);
342 g_nacl_zygote = content::CreateZygote(); 339 g_nacl_zygote = content::CreateZygote();
343 } 340 }
344 #endif // defined(OS_POSIX) && !defined(OS_MACOSX) 341 #endif // defined(OS_POSIX) && !defined(OS_MACOSX)
345 342
346 // static
347 void NaClProcessHost::SetPpapiKeepAliveThrottleForTesting(
348 unsigned milliseconds) {
349 keepalive_throttle_interval_milliseconds_ = milliseconds;
350 }
351
352 void NaClProcessHost::Launch( 343 void NaClProcessHost::Launch(
353 NaClHostMessageFilter* nacl_host_message_filter, 344 NaClHostMessageFilter* nacl_host_message_filter,
354 IPC::Message* reply_msg, 345 IPC::Message* reply_msg,
355 const base::FilePath& manifest_path) { 346 const base::FilePath& manifest_path) {
356 nacl_host_message_filter_ = nacl_host_message_filter; 347 nacl_host_message_filter_ = nacl_host_message_filter;
357 reply_msg_ = reply_msg; 348 reply_msg_ = reply_msg;
358 manifest_path_ = manifest_path; 349 manifest_path_ = manifest_path;
359 350
360 // Do not launch the requested NaCl module if NaCl is marked "unstable" due 351 // Do not launch the requested NaCl module if NaCl is marked "unstable" due
361 // to too many crashes within a given time period. 352 // to too many crashes within a given time period.
(...skipping 564 matching lines...) Expand 10 before | Expand all | Expand 10 after
926 // Create the browser ppapi host and enable PPAPI message dispatching to the 917 // Create the browser ppapi host and enable PPAPI message dispatching to the
927 // browser process. 918 // browser process.
928 ppapi_host_.reset(content::BrowserPpapiHost::CreateExternalPluginProcess( 919 ppapi_host_.reset(content::BrowserPpapiHost::CreateExternalPluginProcess(
929 ipc_proxy_channel_.get(), // sender 920 ipc_proxy_channel_.get(), // sender
930 permissions_, 921 permissions_,
931 process_->GetData().handle, 922 process_->GetData().handle,
932 ipc_proxy_channel_.get(), 923 ipc_proxy_channel_.get(),
933 nacl_host_message_filter_->render_process_id(), 924 nacl_host_message_filter_->render_process_id(),
934 render_view_id_, 925 render_view_id_,
935 profile_directory_)); 926 profile_directory_));
936 ppapi_host_->SetOnKeepaliveCallback(
937 NaClBrowser::GetDelegate()->GetOnKeepaliveCallback());
938 927
939 ppapi::PpapiNaClPluginArgs args; 928 ppapi::PpapiNaClPluginArgs args;
940 args.off_the_record = nacl_host_message_filter_->off_the_record(); 929 args.off_the_record = nacl_host_message_filter_->off_the_record();
941 args.permissions = permissions_; 930 args.permissions = permissions_;
942 args.keepalive_throttle_interval_milliseconds =
943 keepalive_throttle_interval_milliseconds_;
944 base::CommandLine* cmdline = base::CommandLine::ForCurrentProcess(); 931 base::CommandLine* cmdline = base::CommandLine::ForCurrentProcess();
945 DCHECK(cmdline); 932 DCHECK(cmdline);
946 std::string flag_whitelist[] = { 933 std::string flag_whitelist[] = {
947 switches::kV, 934 switches::kV,
948 switches::kVModule, 935 switches::kVModule,
949 }; 936 };
950 for (size_t i = 0; i < arraysize(flag_whitelist); ++i) { 937 for (size_t i = 0; i < arraysize(flag_whitelist); ++i) {
951 std::string value = cmdline->GetSwitchValueASCII(flag_whitelist[i]); 938 std::string value = cmdline->GetSwitchValueASCII(flag_whitelist[i]);
952 if (!value.empty()) { 939 if (!value.empty()) {
953 args.switch_names.push_back(flag_whitelist[i]); 940 args.switch_names.push_back(flag_whitelist[i]);
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after
1165 NaClStartDebugExceptionHandlerThread( 1152 NaClStartDebugExceptionHandlerThread(
1166 std::move(process), info, base::ThreadTaskRunnerHandle::Get(), 1153 std::move(process), info, base::ThreadTaskRunnerHandle::Get(),
1167 base::Bind(&NaClProcessHost::OnDebugExceptionHandlerLaunchedByBroker, 1154 base::Bind(&NaClProcessHost::OnDebugExceptionHandlerLaunchedByBroker,
1168 weak_factory_.GetWeakPtr())); 1155 weak_factory_.GetWeakPtr()));
1169 return true; 1156 return true;
1170 } 1157 }
1171 } 1158 }
1172 #endif 1159 #endif
1173 1160
1174 } // namespace nacl 1161 } // namespace nacl
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698