| OLD | NEW |
| 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 "chrome/browser/apps/app_shim/app_shim_host_manager_mac.h" | 5 #include "chrome/browser/apps/app_shim/app_shim_host_manager_mac.h" |
| 6 | 6 |
| 7 #include <unistd.h> | 7 #include <unistd.h> |
| 8 | 8 |
| 9 #include "base/files/file_path.h" | 9 #include "base/files/file_path.h" |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| 11 #include "base/macros.h" | 11 #include "base/macros.h" |
| 12 #include "base/path_service.h" | 12 #include "base/path_service.h" |
| 13 #include "base/threading/thread_restrictions.h" |
| 13 #include "chrome/browser/apps/app_shim/app_shim_handler_mac.h" | 14 #include "chrome/browser/apps/app_shim/app_shim_handler_mac.h" |
| 14 #include "chrome/browser/apps/app_shim/test/app_shim_host_manager_test_api_mac.h
" | 15 #include "chrome/browser/apps/app_shim/test/app_shim_host_manager_test_api_mac.h
" |
| 15 #include "chrome/browser/browser_process.h" | 16 #include "chrome/browser/browser_process.h" |
| 16 #include "chrome/browser/profiles/profile.h" | 17 #include "chrome/browser/profiles/profile.h" |
| 17 #include "chrome/browser/ui/browser.h" | 18 #include "chrome/browser/ui/browser.h" |
| 18 #include "chrome/common/chrome_paths.h" | 19 #include "chrome/common/chrome_paths.h" |
| 19 #include "chrome/common/mac/app_mode_common.h" | 20 #include "chrome/common/mac/app_mode_common.h" |
| 20 #include "chrome/common/mac/app_shim_messages.h" | 21 #include "chrome/common/mac/app_shim_messages.h" |
| 21 #include "chrome/test/base/in_process_browser_test.h" | 22 #include "chrome/test/base/in_process_browser_test.h" |
| 22 #include "components/version_info/version_info.h" | 23 #include "components/version_info/version_info.h" |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 58 base::Thread::Options io_thread_options; | 59 base::Thread::Options io_thread_options; |
| 59 io_thread_options.message_loop_type = base::MessageLoop::TYPE_IO; | 60 io_thread_options.message_loop_type = base::MessageLoop::TYPE_IO; |
| 60 io_thread_.StartWithOptions(io_thread_options); | 61 io_thread_.StartWithOptions(io_thread_options); |
| 61 | 62 |
| 62 base::FilePath user_data_dir; | 63 base::FilePath user_data_dir; |
| 63 CHECK(PathService::Get(chrome::DIR_USER_DATA, &user_data_dir)); | 64 CHECK(PathService::Get(chrome::DIR_USER_DATA, &user_data_dir)); |
| 64 base::FilePath symlink_path = | 65 base::FilePath symlink_path = |
| 65 user_data_dir.Append(app_mode::kAppShimSocketSymlinkName); | 66 user_data_dir.Append(app_mode::kAppShimSocketSymlinkName); |
| 66 | 67 |
| 67 base::FilePath socket_path; | 68 base::FilePath socket_path; |
| 69 base::ThreadRestrictions::ScopedAllowIO allow_io; |
| 68 CHECK(base::ReadSymbolicLink(symlink_path, &socket_path)); | 70 CHECK(base::ReadSymbolicLink(symlink_path, &socket_path)); |
| 69 app_mode::VerifySocketPermissions(socket_path); | 71 app_mode::VerifySocketPermissions(socket_path); |
| 70 | 72 |
| 71 channel_ = IPC::ChannelProxy::Create( | 73 channel_ = IPC::ChannelProxy::Create( |
| 72 IPC::ChannelMojo::CreateClientFactory( | 74 IPC::ChannelMojo::CreateClientFactory( |
| 73 mojo::edk::ConnectToPeerProcess(mojo::edk::CreateClientHandle( | 75 mojo::edk::ConnectToPeerProcess(mojo::edk::CreateClientHandle( |
| 74 mojo::edk::NamedPlatformHandle(socket_path.value()))), | 76 mojo::edk::NamedPlatformHandle(socket_path.value()))), |
| 75 io_thread_.task_runner().get()), | 77 io_thread_.task_runner().get()), |
| 76 this, io_thread_.task_runner().get()); | 78 this, io_thread_.task_runner().get()); |
| 77 } | 79 } |
| 78 | 80 |
| 79 TestShimClient::~TestShimClient() {} | 81 TestShimClient::~TestShimClient() { |
| 82 base::ThreadRestrictions::ScopedAllowIO allow_io; |
| 83 io_thread_.Stop(); |
| 84 } |
| 80 | 85 |
| 81 bool TestShimClient::OnMessageReceived(const IPC::Message& message) { | 86 bool TestShimClient::OnMessageReceived(const IPC::Message& message) { |
| 82 return true; | 87 return true; |
| 83 } | 88 } |
| 84 | 89 |
| 85 void TestShimClient::OnChannelError() { | 90 void TestShimClient::OnChannelError() { |
| 86 // Client should not get any channel errors for the current set of tests. | 91 // Client should not get any channel errors for the current set of tests. |
| 87 PLOG(FATAL) << "ChannelError"; | 92 PLOG(FATAL) << "ChannelError"; |
| 88 } | 93 } |
| 89 | 94 |
| (...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 269 } | 274 } |
| 270 | 275 |
| 271 IN_PROC_BROWSER_TEST_F(AppShimHostManagerBrowserTestSocketFiles, | 276 IN_PROC_BROWSER_TEST_F(AppShimHostManagerBrowserTestSocketFiles, |
| 272 ReplacesSymlinkAndCleansUpFiles) { | 277 ReplacesSymlinkAndCleansUpFiles) { |
| 273 // Get the directory created by AppShimHostManager. | 278 // Get the directory created by AppShimHostManager. |
| 274 test::AppShimHostManagerTestApi test_api( | 279 test::AppShimHostManagerTestApi test_api( |
| 275 g_browser_process->platform_part()->app_shim_host_manager()); | 280 g_browser_process->platform_part()->app_shim_host_manager()); |
| 276 directory_in_tmp_ = test_api.directory_in_tmp(); | 281 directory_in_tmp_ = test_api.directory_in_tmp(); |
| 277 | 282 |
| 278 // Check that socket files have been created. | 283 // Check that socket files have been created. |
| 284 base::ThreadRestrictions::ScopedAllowIO allow_io; |
| 279 EXPECT_TRUE(base::PathExists(directory_in_tmp_)); | 285 EXPECT_TRUE(base::PathExists(directory_in_tmp_)); |
| 280 EXPECT_TRUE(base::PathExists(symlink_path_)); | 286 EXPECT_TRUE(base::PathExists(symlink_path_)); |
| 281 | 287 |
| 282 // Check that the symlink has been replaced. | 288 // Check that the symlink has been replaced. |
| 283 base::FilePath socket_path; | 289 base::FilePath socket_path; |
| 284 ASSERT_TRUE(base::ReadSymbolicLink(symlink_path_, &socket_path)); | 290 ASSERT_TRUE(base::ReadSymbolicLink(symlink_path_, &socket_path)); |
| 285 EXPECT_EQ(app_mode::kAppShimSocketShortName, socket_path.BaseName().value()); | 291 EXPECT_EQ(app_mode::kAppShimSocketShortName, socket_path.BaseName().value()); |
| 286 | 292 |
| 287 // Check that the RunningChromeVersion file is correctly written. | 293 // Check that the RunningChromeVersion file is correctly written. |
| 288 base::FilePath version; | 294 base::FilePath version; |
| 289 EXPECT_TRUE(base::ReadSymbolicLink(version_path_, &version)); | 295 EXPECT_TRUE(base::ReadSymbolicLink(version_path_, &version)); |
| 290 EXPECT_EQ(version_info::GetVersionNumber(), version.value()); | 296 EXPECT_EQ(version_info::GetVersionNumber(), version.value()); |
| 291 } | 297 } |
| 292 | 298 |
| 293 } // namespace | 299 } // namespace |
| OLD | NEW |