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

Side by Side Diff: chrome/renderer/translate/translate_helper.cc

Issue 320513002: Remove base::kInvalidPlatformFileValue from Chrome (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 6 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 (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 "chrome/renderer/translate/translate_helper.h" 5 #include "chrome/renderer/translate/translate_helper.h"
6 6
7 #if defined(CLD2_DYNAMIC_MODE) 7 #if defined(CLD2_DYNAMIC_MODE)
8 #include <stdint.h> 8 #include <stdint.h>
9 #endif 9 #endif
10 10
(...skipping 608 matching lines...) Expand 10 before | Expand all | Expand 10 after
619 base::Bind(&TranslateHelper::SendCLD2DataFileRequest, 619 base::Bind(&TranslateHelper::SendCLD2DataFileRequest,
620 weak_method_factory_.GetWeakPtr(), 620 weak_method_factory_.GetWeakPtr(),
621 next_delay_millis, next_delay_millis), 621 next_delay_millis, next_delay_millis),
622 base::TimeDelta::FromMilliseconds(delay_millis)); 622 base::TimeDelta::FromMilliseconds(delay_millis));
623 } 623 }
624 624
625 void TranslateHelper::OnCLDDataAvailable( 625 void TranslateHelper::OnCLDDataAvailable(
626 const IPC::PlatformFileForTransit ipc_file_handle, 626 const IPC::PlatformFileForTransit ipc_file_handle,
627 const uint64 data_offset, 627 const uint64 data_offset,
628 const uint64 data_length) { 628 const uint64 data_length) {
629 LoadCLDDData(ipc_file_handle, data_offset, data_length); 629 LoadCLDDData(IPC::PlatformFileForTransitToFile(ipc_file_handle), data_offset,
630 data_length);
630 if (deferred_page_capture_ && CLD2::isDataLoaded()) { 631 if (deferred_page_capture_ && CLD2::isDataLoaded()) {
631 deferred_page_capture_ = false; // Don't do this a second time. 632 deferred_page_capture_ = false; // Don't do this a second time.
632 PageCaptured(deferred_page_id_, deferred_contents_); 633 PageCaptured(deferred_page_id_, deferred_contents_);
633 deferred_page_id_ = -1; // Clean up for sanity 634 deferred_page_id_ = -1; // Clean up for sanity
634 deferred_contents_.clear(); // Clean up for sanity 635 deferred_contents_.clear(); // Clean up for sanity
635 } 636 }
636 } 637 }
637 638
638 void TranslateHelper::LoadCLDDData( 639 void TranslateHelper::LoadCLDDData(
639 const IPC::PlatformFileForTransit ipc_file_handle, 640 base::File file,
640 const uint64 data_offset, 641 const uint64 data_offset,
641 const uint64 data_length) { 642 const uint64 data_length) {
642 // Terminate immediately if told to stop polling. 643 // Terminate immediately if told to stop polling.
643 if (cld2_data_file_polling_canceled_) 644 if (cld2_data_file_polling_canceled_)
644 return; 645 return;
645 646
646 // Terminate immediately if data is already loaded. 647 // Terminate immediately if data is already loaded.
647 if (CLD2::isDataLoaded()) 648 if (CLD2::isDataLoaded())
648 return; 649 return;
649 650
650 // Grab the file handle 651 if (!file.IsValid()) {
651 base::PlatformFile platform_file =
652 IPC::PlatformFileForTransitToPlatformFile(ipc_file_handle);
653 if (platform_file == base::kInvalidPlatformFileValue) {
654 LOG(ERROR) << "Can't find the CLD data file."; 652 LOG(ERROR) << "Can't find the CLD data file.";
655 return; 653 return;
656 } 654 }
657 base::File basic_file(platform_file);
658 655
659 // mmap the file 656 // mmap the file
660 s_cld_mmap_.Get().value = new base::MemoryMappedFile(); 657 s_cld_mmap_.Get().value = new base::MemoryMappedFile();
661 bool initialized = s_cld_mmap_.Get().value->Initialize(basic_file.Pass()); 658 bool initialized = s_cld_mmap_.Get().value->Initialize(file.Pass());
662 if (!initialized) { 659 if (!initialized) {
663 LOG(ERROR) << "mmap initialization failed"; 660 LOG(ERROR) << "mmap initialization failed";
664 delete s_cld_mmap_.Get().value; 661 delete s_cld_mmap_.Get().value;
665 s_cld_mmap_.Get().value = NULL; 662 s_cld_mmap_.Get().value = NULL;
666 return; 663 return;
667 } 664 }
668 665
669 // Sanity checks 666 // Sanity checks
670 uint64 max_int32 = std::numeric_limits<int32>::max(); 667 uint64 max_int32 = std::numeric_limits<int32>::max();
671 if (data_length + data_offset > s_cld_mmap_.Get().value->length() 668 if (data_length + data_offset > s_cld_mmap_.Get().value->length()
672 || data_length > max_int32) { // max signed 32 bit integer 669 || data_length > max_int32) { // max signed 32 bit integer
673 LOG(ERROR) << "Illegal mmap config: data_offset=" 670 LOG(ERROR) << "Illegal mmap config: data_offset="
674 << data_offset << ", data_length=" << data_length 671 << data_offset << ", data_length=" << data_length
675 << ", mmap->length()=" << s_cld_mmap_.Get().value->length(); 672 << ", mmap->length()=" << s_cld_mmap_.Get().value->length();
676 delete s_cld_mmap_.Get().value; 673 delete s_cld_mmap_.Get().value;
677 s_cld_mmap_.Get().value = NULL; 674 s_cld_mmap_.Get().value = NULL;
678 return; 675 return;
679 } 676 }
680 677
681 // Initialize the CLD subsystem... and it's all done! 678 // Initialize the CLD subsystem... and it's all done!
682 const uint8* data_ptr = s_cld_mmap_.Get().value->data() + data_offset; 679 const uint8* data_ptr = s_cld_mmap_.Get().value->data() + data_offset;
683 CLD2::loadDataFromRawAddress(data_ptr, data_length); 680 CLD2::loadDataFromRawAddress(data_ptr, data_length);
684 DCHECK(CLD2::isDataLoaded()) << "Failed to load CLD data from mmap"; 681 DCHECK(CLD2::isDataLoaded()) << "Failed to load CLD data from mmap";
685 } 682 }
686 #endif 683 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698