OLD | NEW |
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_frame/test/net/fake_external_tab.h" | 5 #include "chrome_frame/test/net/fake_external_tab.h" |
6 | 6 |
7 #include <atlbase.h> | 7 #include <atlbase.h> |
8 #include <atlcom.h> | 8 #include <atlcom.h> |
9 #include <exdisp.h> | 9 #include <exdisp.h> |
10 #include <Winsock2.h> | 10 #include <Winsock2.h> |
(...skipping 773 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
784 int CFUrlRequestUnittestRunner::PreCreateThreads() { | 784 int CFUrlRequestUnittestRunner::PreCreateThreads() { |
785 fake_chrome_.reset(new FakeExternalTab()); | 785 fake_chrome_.reset(new FakeExternalTab()); |
786 fake_chrome_->Initialize(); | 786 fake_chrome_->Initialize(); |
787 fake_chrome_->browser_process()->PreCreateThreads(); | 787 fake_chrome_->browser_process()->PreCreateThreads(); |
788 ProcessSingleton::NotificationCallback callback( | 788 ProcessSingleton::NotificationCallback callback( |
789 base::Bind( | 789 base::Bind( |
790 &CFUrlRequestUnittestRunner::ProcessSingletonNotificationCallback, | 790 &CFUrlRequestUnittestRunner::ProcessSingletonNotificationCallback, |
791 base::Unretained(this))); | 791 base::Unretained(this))); |
792 process_singleton_.reset(new ProcessSingleton(fake_chrome_->user_data(), | 792 process_singleton_.reset(new ProcessSingleton(fake_chrome_->user_data(), |
793 callback)); | 793 callback)); |
794 process_singleton_->Lock(NULL); | |
795 return 0; | 794 return 0; |
796 } | 795 } |
797 | 796 |
798 bool CFUrlRequestUnittestRunner::ProcessSingletonNotificationCallback( | 797 bool CFUrlRequestUnittestRunner::ProcessSingletonNotificationCallback( |
799 const CommandLine& command_line, const base::FilePath& current_directory) { | 798 const CommandLine& command_line, const base::FilePath& current_directory) { |
800 std::string channel_id = command_line.GetSwitchValueASCII( | 799 std::string channel_id = command_line.GetSwitchValueASCII( |
801 switches::kAutomationClientChannelID); | 800 switches::kAutomationClientChannelID); |
802 EXPECT_FALSE(channel_id.empty()); | 801 EXPECT_FALSE(channel_id.empty()); |
803 | 802 |
804 Profile* profile = g_browser_process->profile_manager()->GetLastUsedProfile( | 803 Profile* profile = g_browser_process->profile_manager()->GetLastUsedProfile( |
(...skipping 10 matching lines...) Expand all Loading... |
815 fake_chrome_->InitializePostThreadsCreated(); | 814 fake_chrome_->InitializePostThreadsCreated(); |
816 // Call Create directly instead of NotifyOtherProcessOrCreate as failure is | 815 // Call Create directly instead of NotifyOtherProcessOrCreate as failure is |
817 // prefered to notifying another process here. | 816 // prefered to notifying another process here. |
818 if (!process_singleton_->Create()) { | 817 if (!process_singleton_->Create()) { |
819 LOG(FATAL) << "Failed to start up ProcessSingleton. Is another test " | 818 LOG(FATAL) << "Failed to start up ProcessSingleton. Is another test " |
820 << "executable or Chrome Frame running?"; | 819 << "executable or Chrome Frame running?"; |
821 if (crash_service_) | 820 if (crash_service_) |
822 base::KillProcess(crash_service_, 0, false); | 821 base::KillProcess(crash_service_, 0, false); |
823 ::ExitProcess(1); | 822 ::ExitProcess(1); |
824 } | 823 } |
825 | |
826 StartChromeFrameInHostBrowser(); | |
827 } | 824 } |
828 | 825 |
829 bool CFUrlRequestUnittestRunner::MainMessageLoopRun(int* result_code) { | 826 bool CFUrlRequestUnittestRunner::MainMessageLoopRun(int* result_code) { |
830 DCHECK(MessageLoop::current()); | 827 DCHECK(MessageLoop::current()); |
831 DCHECK(MessageLoop::current()->type() == MessageLoop::TYPE_UI); | 828 DCHECK(MessageLoop::current()->type() == MessageLoop::TYPE_UI); |
832 | 829 |
833 // We need to allow IO on the main thread for these tests. | 830 // We need to allow IO on the main thread for these tests. |
834 base::ThreadRestrictions::SetIOAllowed(true); | 831 base::ThreadRestrictions::SetIOAllowed(true); |
835 process_singleton_->Unlock(); | 832 StartChromeFrameInHostBrowser(); |
836 StartInitializationTimeout(); | 833 StartInitializationTimeout(); |
837 return false; | 834 return false; |
838 } | 835 } |
839 | 836 |
840 void CFUrlRequestUnittestRunner::PostMainMessageLoopRun() { | 837 void CFUrlRequestUnittestRunner::PostMainMessageLoopRun() { |
841 process_singleton_->Cleanup(); | 838 process_singleton_->Cleanup(); |
842 fake_chrome_->browser_process()->StartTearDown(); | 839 fake_chrome_->browser_process()->StartTearDown(); |
843 | 840 |
844 // Must do this separately as the mock profile_manager_ is not the | 841 // Must do this separately as the mock profile_manager_ is not the |
845 // same member as BrowserProcessImpl::StartTearDown resets. | 842 // same member as BrowserProcessImpl::StartTearDown resets. |
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
971 content::InitializeSandboxInfo(&sandbox_info); | 968 content::InitializeSandboxInfo(&sandbox_info); |
972 FakeMainDelegate delegate; | 969 FakeMainDelegate delegate; |
973 content::ContentMain( | 970 content::ContentMain( |
974 reinterpret_cast<HINSTANCE>(GetModuleHandle(NULL)), | 971 reinterpret_cast<HINSTANCE>(GetModuleHandle(NULL)), |
975 &sandbox_info, | 972 &sandbox_info, |
976 &delegate); | 973 &delegate); |
977 | 974 |
978 // Note: In debug builds, we ExitProcess during PostDestroyThreads. | 975 // Note: In debug builds, we ExitProcess during PostDestroyThreads. |
979 return g_test_suite->test_result(); | 976 return g_test_suite->test_result(); |
980 } | 977 } |
OLD | NEW |