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

Unified Diff: apps/app_shim/app_shim_host_manager_browsertest_mac.mm

Issue 66043003: Put app shim IPC socket in a temporary directory. (Mac) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address comments Created 7 years 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 side-by-side diff with in-line comments
Download patch
Index: apps/app_shim/app_shim_host_manager_browsertest_mac.mm
diff --git a/apps/app_shim/app_shim_host_manager_browsertest_mac.mm b/apps/app_shim/app_shim_host_manager_browsertest_mac.mm
index bf325cc9ff68d65d0422152205fb1895e53073ce..7e318df376fb01cb78e913ef87d1f5aa475fb3bd 100644
--- a/apps/app_shim/app_shim_host_manager_browsertest_mac.mm
+++ b/apps/app_shim/app_shim_host_manager_browsertest_mac.mm
@@ -29,7 +29,7 @@ const char kTestAppMode[] = "test_app";
// A test version of the AppShimController IPC client in chrome_main_app_mode.
class TestShimClient : public IPC::Listener {
public:
- TestShimClient(const base::FilePath& socket_path);
+ TestShimClient();
virtual ~TestShimClient();
template <class T>
@@ -48,12 +48,16 @@ class TestShimClient : public IPC::Listener {
DISALLOW_COPY_AND_ASSIGN(TestShimClient);
};
-TestShimClient::TestShimClient(const base::FilePath& socket_path)
+TestShimClient::TestShimClient()
: io_thread_("TestShimClientIO") {
base::Thread::Options io_thread_options;
io_thread_options.message_loop_type = base::MessageLoop::TYPE_IO;
io_thread_.StartWithOptions(io_thread_options);
+ base::FilePath user_data_dir;
+ CHECK(PathService::Get(chrome::DIR_USER_DATA, &user_data_dir));
+ base::FilePath socket_path = app_mode::GetShortSocketPath(user_data_dir);
+
IPC::ChannelHandle handle(socket_path.value());
channel_.reset(new IPC::ChannelProxy(handle, IPC::Channel::MODE_NAMED_CLIENT,
this, io_thread_.message_loop_proxy().get()));
@@ -83,9 +87,6 @@ class AppShimHostManagerBrowserTest : public InProcessBrowserTest,
// test launch behavior.
void RunAndExitGracefully();
- // InProcessBrowserTest overrides:
- virtual bool SetUpUserDataDirectory() OVERRIDE;
-
// AppShimHandler overrides:
virtual void OnShimLaunch(apps::AppShimHandler::Host* host,
apps::AppShimLaunchType launch_type,
@@ -99,7 +100,6 @@ class AppShimHostManagerBrowserTest : public InProcessBrowserTest,
virtual void OnShimQuit(apps::AppShimHandler::Host* host) OVERRIDE;
scoped_ptr<TestShimClient> test_client_;
- base::FilePath short_socket_path_;
std::vector<base::FilePath> last_launch_files_;
apps::AppShimLaunchType last_launch_type_;
@@ -139,26 +139,6 @@ void AppShimHostManagerBrowserTest::RunAndExitGracefully() {
test_client_.reset();
}
-bool AppShimHostManagerBrowserTest::SetUpUserDataDirectory() {
- // Create a symlink at /tmp/scoped_dir_XXXXXX/udd that points to the real user
- // data dir, and use this as the domain socket path. This is required because
- // there is a path length limit for named sockets that is exceeded in
- // multi-process test spawning.
- base::FilePath real_user_data_dir;
- EXPECT_TRUE(PathService::Get(chrome::DIR_USER_DATA, &real_user_data_dir));
- EXPECT_TRUE(
- short_temp_dir_.CreateUniqueTempDirUnderPath(base::FilePath("/tmp")));
- base::FilePath shortened_user_data_dir = short_temp_dir_.path().Append("udd");
- EXPECT_EQ(0, ::symlink(real_user_data_dir.AsUTF8Unsafe().c_str(),
- shortened_user_data_dir.AsUTF8Unsafe().c_str()));
-
- test::AppShimHostManagerTestApi::OverrideUserDataDir(shortened_user_data_dir);
- short_socket_path_ =
- shortened_user_data_dir.Append(app_mode::kAppShimSocketName);
-
- return InProcessBrowserTest::SetUpUserDataDirectory();
-}
-
void AppShimHostManagerBrowserTest::OnShimLaunch(
apps::AppShimHandler::Host* host,
apps::AppShimLaunchType launch_type,
@@ -178,7 +158,7 @@ void AppShimHostManagerBrowserTest::OnShimQuit(
// Test regular launch, which would ask Chrome to launch the app.
IN_PROC_BROWSER_TEST_F(AppShimHostManagerBrowserTest, LaunchNormal) {
- test_client_.reset(new TestShimClient(short_socket_path_));
+ test_client_.reset(new TestShimClient());
test_client_->Send(new AppShimHostMsg_LaunchApp(
browser()->profile()->GetPath(),
kTestAppMode,
@@ -192,7 +172,7 @@ IN_PROC_BROWSER_TEST_F(AppShimHostManagerBrowserTest, LaunchNormal) {
// Test register-only launch, used when Chrome has already launched the app.
IN_PROC_BROWSER_TEST_F(AppShimHostManagerBrowserTest, LaunchRegisterOnly) {
- test_client_.reset(new TestShimClient(short_socket_path_));
+ test_client_.reset(new TestShimClient());
test_client_->Send(new AppShimHostMsg_LaunchApp(
browser()->profile()->GetPath(),
kTestAppMode,
@@ -242,11 +222,10 @@ bool AppShimHostManagerBrowserTestFailsCreate::SetUpUserDataDirectory() {
// clobber in the actual user data dir, the test will fail if the symlink
// does not actually point to the user data dir, since it won't be clobbered.
EXPECT_TRUE(PathService::Get(chrome::DIR_USER_DATA, &user_data_dir));
- base::FilePath socket_path =
- user_data_dir.Append(app_mode::kAppShimSocketName);
+ base::FilePath socket_path = app_mode::GetShortSocketPath(user_data_dir);
// Create a "barrier" to forming the UNIX domain socket. This is just a
// pre-existing directory which can not be unlink()ed, in order to place a
- // named socked there instead.
+ // named socket there instead.
EXPECT_TRUE(barrier_dir_.Set(socket_path));
return AppShimHostManagerBrowserTest::SetUpUserDataDirectory();
}
« no previous file with comments | « no previous file | apps/app_shim/app_shim_host_manager_mac.h » ('j') | apps/app_shim/app_shim_host_manager_mac.mm » ('J')

Powered by Google App Engine
This is Rietveld 408576698