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

Side by Side Diff: trunk/src/components/nacl/browser/nacl_browser.cc

Issue 290633006: Revert 270907 "Remove knowledge of nacl from content." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 6 years, 7 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 | Annotate | Revision Log
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 "components/nacl/browser/nacl_browser.h" 5 #include "components/nacl/browser/nacl_browser.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/file_util.h" 8 #include "base/file_util.h"
9 #include "base/files/file_proxy.h" 9 #include "base/files/file_proxy.h"
10 #include "base/message_loop/message_loop.h" 10 #include "base/message_loop/message_loop.h"
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after
265 } else { 265 } else {
266 LOG(ERROR) << "Failed to open NaCl IRT file \"" 266 LOG(ERROR) << "Failed to open NaCl IRT file \""
267 << irt_filepath_.LossyDisplayName() 267 << irt_filepath_.LossyDisplayName()
268 << "\": " << error_code; 268 << "\": " << error_code;
269 MarkAsFailed(); 269 MarkAsFailed();
270 } 270 }
271 irt_state_ = NaClResourceReady; 271 irt_state_ = NaClResourceReady;
272 CheckWaiting(); 272 CheckWaiting();
273 } 273 }
274 274
275 void NaClBrowser::SetProcessGdbDebugStubPort(int process_id, int port) { 275 void NaClBrowser::FireGdbDebugStubPortOpened(int port) {
276 gdb_debug_stub_port_map_[process_id] = port; 276 content::BrowserThread::PostTask(
277 if (port != kGdbDebugStubPortUnknown && 277 content::BrowserThread::IO,
278 !debug_stub_port_listener_.is_null()) { 278 FROM_HERE,
279 content::BrowserThread::PostTask( 279 base::Bind(debug_stub_port_listener_, port));
280 content::BrowserThread::IO, 280 }
281 FROM_HERE, 281
282 base::Bind(debug_stub_port_listener_, port)); 282 bool NaClBrowser::HasGdbDebugStubPortListener() {
283 } 283 return !debug_stub_port_listener_.is_null();
284 } 284 }
285 285
286 void NaClBrowser::SetGdbDebugStubPortListener( 286 void NaClBrowser::SetGdbDebugStubPortListener(
287 base::Callback<void(int)> listener) { 287 base::Callback<void(int)> listener) {
288 debug_stub_port_listener_ = listener; 288 debug_stub_port_listener_ = listener;
289 } 289 }
290 290
291 void NaClBrowser::ClearGdbDebugStubPortListener() { 291 void NaClBrowser::ClearGdbDebugStubPortListener() {
292 debug_stub_port_listener_.Reset(); 292 debug_stub_port_listener_.Reset();
293 } 293 }
294 294
295 int NaClBrowser::GetProcessGdbDebugStubPort(int process_id) {
296 GdbDebugStubPortMap::iterator i = gdb_debug_stub_port_map_.find(process_id);
297 if (i != gdb_debug_stub_port_map_.end()) {
298 return i->second;
299 }
300 return kGdbDebugStubPortUnused;
301 }
302
303 void NaClBrowser::InitValidationCacheFilePath() { 295 void NaClBrowser::InitValidationCacheFilePath() {
304 // Determine where the validation cache resides in the file system. It 296 // Determine where the validation cache resides in the file system. It
305 // exists in Chrome's cache directory and is not tied to any specific 297 // exists in Chrome's cache directory and is not tied to any specific
306 // profile. 298 // profile.
307 // Start by finding the user data directory. 299 // Start by finding the user data directory.
308 base::FilePath user_data_dir; 300 base::FilePath user_data_dir;
309 if (!browser_delegate_->GetUserDirectory(&user_data_dir)) { 301 if (!browser_delegate_->GetUserDirectory(&user_data_dir)) {
310 RunWithoutValidationCache(); 302 RunWithoutValidationCache();
311 return; 303 return;
312 } 304 }
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after
535 // The task is sequenced so that multiple writes happen in order. 527 // The task is sequenced so that multiple writes happen in order.
536 content::BrowserThread::PostBlockingPoolSequencedTask( 528 content::BrowserThread::PostBlockingPoolSequencedTask(
537 kValidationCacheSequenceName, 529 kValidationCacheSequenceName,
538 FROM_HERE, 530 FROM_HERE,
539 base::Bind(WriteCache, validation_cache_file_path_, 531 base::Bind(WriteCache, validation_cache_file_path_,
540 base::Owned(pickle))); 532 base::Owned(pickle)));
541 } 533 }
542 validation_cache_is_modified_ = false; 534 validation_cache_is_modified_ = false;
543 } 535 }
544 536
545 void NaClBrowser::OnProcessEnd(int process_id) {
546 gdb_debug_stub_port_map_.erase(process_id);
547 }
548
549 void NaClBrowser::OnProcessCrashed() { 537 void NaClBrowser::OnProcessCrashed() {
550 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO)); 538 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO));
551 if (crash_times_.size() == kMaxCrashesPerInterval) { 539 if (crash_times_.size() == kMaxCrashesPerInterval) {
552 crash_times_.pop_front(); 540 crash_times_.pop_front();
553 } 541 }
554 base::Time time = base::Time::Now(); 542 base::Time time = base::Time::Now();
555 crash_times_.push_back(time); 543 crash_times_.push_back(time);
556 } 544 }
557 545
558 bool NaClBrowser::IsThrottled() { 546 bool NaClBrowser::IsThrottled() {
559 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO)); 547 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO));
560 if (crash_times_.size() != kMaxCrashesPerInterval) { 548 if (crash_times_.size() != kMaxCrashesPerInterval) {
561 return false; 549 return false;
562 } 550 }
563 base::TimeDelta delta = base::Time::Now() - crash_times_.front(); 551 base::TimeDelta delta = base::Time::Now() - crash_times_.front();
564 return delta.InSeconds() <= kCrashesIntervalInSeconds; 552 return delta.InSeconds() <= kCrashesIntervalInSeconds;
565 } 553 }
566 554
567 } // namespace nacl 555 } // namespace nacl
OLDNEW
« no previous file with comments | « trunk/src/components/nacl/browser/nacl_browser.h ('k') | trunk/src/components/nacl/browser/nacl_process_host.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698