summaryrefslogtreecommitdiffstats
path: root/chrome_frame/chrome_frame_automation.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome_frame/chrome_frame_automation.cc')
-rw-r--r--chrome_frame/chrome_frame_automation.cc36
1 files changed, 24 insertions, 12 deletions
diff --git a/chrome_frame/chrome_frame_automation.cc b/chrome_frame/chrome_frame_automation.cc
index 8c1fb45..2c5d238 100644
--- a/chrome_frame/chrome_frame_automation.cc
+++ b/chrome_frame/chrome_frame_automation.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Copyright (c) 2009 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -19,6 +19,8 @@
#include "base/waitable_event.h"
#include "chrome/app/client_util.h"
#include "chrome/common/chrome_constants.h"
+#include "chrome/common/chrome_paths.h"
+#include "chrome/common/chrome_paths_internal.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/test/automation/tab_proxy.h"
#include "chrome_frame/chrome_launcher.h"
@@ -269,9 +271,20 @@ void ProxyFactory::CreateProxy(ProxyFactory::ProxyCacheEntry* entry,
if (IsHeadlessMode())
command_line->AppendSwitch(switches::kFullMemoryCrashReport);
- DLOG(INFO) << "Profile path: " << params.profile_path.value();
- command_line->AppendSwitchWithValue(switches::kUserDataDir,
- params.profile_path.value());
+ // Place the profile directory in
+ // "<chrome_exe_path>\..\User Data\<profile-name>"
+ if (!entry->profile_name.empty()) {
+ FilePath profile_path;
+ if (chrome::GetChromeFrameUserDataDirectory(&profile_path)) {
+ profile_path = profile_path.Append(entry->profile_name);
+ command_line->AppendSwitchWithValue(switches::kUserDataDir,
+ profile_path.value());
+ } else {
+ // Can't get the profile dir :-( We need one to work, so fail.
+ // We have no code for launch failure.
+ entry->launch_result = AutomationLaunchResult(-1);
+ }
+ }
std::wstring command_line_string(command_line->command_line_string());
// If there are any extra arguments, append them to the command line.
@@ -326,6 +339,8 @@ void ProxyFactory::CreateProxy(ProxyFactory::ProxyCacheEntry* entry,
}
bool ProxyFactory::ReleaseAutomationServer(void* server_id) {
+ DLOG(INFO) << __FUNCTION__;
+
if (!server_id) {
NOTREACHED();
return false;
@@ -442,7 +457,7 @@ bool ChromeFrameAutomationClient::Initialize(
ChromeFrameDelegate* chrome_frame_delegate,
int automation_server_launch_timeout,
bool perform_version_check,
- const FilePath& profile_path,
+ const std::wstring& profile_name,
const std::wstring& extra_chrome_arguments,
bool incognito) {
DCHECK(!IsWindow());
@@ -482,8 +497,7 @@ bool ChromeFrameAutomationClient::Initialize(
chrome_launch_params_.automation_server_launch_timeout =
automation_server_launch_timeout;
- chrome_launch_params_.profile_path = profile_path;
- chrome_launch_params_.profile_name = profile_path.BaseName().value();
+ chrome_launch_params_.profile_name = profile_name;
chrome_launch_params_.extra_chrome_arguments = extra_chrome_arguments;
chrome_launch_params_.perform_version_check = perform_version_check;
chrome_launch_params_.url = navigate_after_initialization_ ? GURL() : url_;
@@ -497,6 +511,8 @@ bool ChromeFrameAutomationClient::Initialize(
}
void ChromeFrameAutomationClient::Uninitialize() {
+ DLOG(INFO) << __FUNCTION__;
+
if (init_state_ == UNINITIALIZED) {
DLOG(WARNING) << __FUNCTION__ << ": Automation client not initialized";
return;
@@ -914,7 +930,6 @@ void ChromeFrameAutomationClient::LaunchComplete(
NULL, NULL, NULL);
automation_server_->SendAsAsync(message, NewCallback(this,
&ChromeFrameAutomationClient::CreateExternalTabComplete), this);
- DLOG(INFO) << __FUNCTION__ << ": sending CreateExternalTabComplete";
}
}
} else {
@@ -1084,6 +1099,7 @@ void ChromeFrameAutomationClient::SetParentWindow(HWND parent_window) {
}
void ChromeFrameAutomationClient::ReleaseAutomationServer() {
+ DLOG(INFO) << __FUNCTION__;
if (automation_server_id_) {
// Cache the server id and clear the automation_server_id_ before
// calling ReleaseAutomationServer. The reason we do this is that
@@ -1201,10 +1217,6 @@ void ChromeFrameAutomationClient::SetPageFontSize(
new AutomationMsg_SetPageFontSize(0, tab_handle_, font_size));
}
-void ChromeFrameAutomationClient::RemoveBrowsingData(int remove_mask) {
- automation_server_->Send(
- new AutomationMsg_RemoveBrowsingData(0, remove_mask));
-}
//////////////////////////////////////////////////////////////////////////
// PluginUrlRequestDelegate implementation.