summaryrefslogtreecommitdiffstats
path: root/chrome_frame/chrome_frame_plugin.h
diff options
context:
space:
mode:
authortommi@chromium.org <tommi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-10 14:09:37 +0000
committertommi@chromium.org <tommi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-08-10 14:09:37 +0000
commitbbfa9a15797ba107dcae0f7fff85a7f12ffd26b9 (patch)
treeee15898939e4989b96c6419217696f63d7a5585b /chrome_frame/chrome_frame_plugin.h
parente721ebe885b159f9b18047392be9a0f5834998fb (diff)
downloadchromium_src-bbfa9a15797ba107dcae0f7fff85a7f12ffd26b9.zip
chromium_src-bbfa9a15797ba107dcae0f7fff85a7f12ffd26b9.tar.gz
chromium_src-bbfa9a15797ba107dcae0f7fff85a7f12ffd26b9.tar.bz2
Handle automation server crashes. When Chrome crashes, we now handle the case and support document refresh or reload.
When chrome crashes, we draw a poor man's sad tab (":-("), so that can clearly be improved. Another thing is that if the chrome instance that crashed held several navigational entries, then that history is lost. TEST=There are a couple of tests included, so run those (*TabCrash*) and also verify that when the chrome automation server is killed that we do the right thing. Also check info in bug report. BUG=25839 Review URL: http://codereview.chromium.org/3061036 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@55565 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome_frame/chrome_frame_plugin.h')
-rw-r--r--chrome_frame/chrome_frame_plugin.h22
1 files changed, 10 insertions, 12 deletions
diff --git a/chrome_frame/chrome_frame_plugin.h b/chrome_frame/chrome_frame_plugin.h
index 93461df..d334ab3 100644
--- a/chrome_frame/chrome_frame_plugin.h
+++ b/chrome_frame/chrome_frame_plugin.h
@@ -5,6 +5,9 @@
#ifndef CHROME_FRAME_CHROME_FRAME_PLUGIN_H_
#define CHROME_FRAME_CHROME_FRAME_PLUGIN_H_
+#include <string>
+#include <vector>
+
#include "base/ref_counted.h"
#include "base/win_util.h"
#include "chrome_frame/chrome_frame_automation.h"
@@ -61,23 +64,15 @@ END_MSG_MAP()
bool incognito, bool is_widget_mode,
const GURL& url, const GURL& referrer) {
DCHECK(IsValid());
+ DCHECK(launch_params_ == NULL);
// We don't want to do incognito when privileged, since we're
// running in browser chrome or some other privileged context.
bool incognito_mode = !is_privileged_ && incognito;
FilePath profile_path;
GetProfilePath(profile_name, &profile_path);
- ChromeFrameLaunchParams chrome_launch_params = {
- kCommandExecutionTimeout,
- url,
- referrer,
- profile_path,
- profile_name,
- extra_chrome_arguments,
- true,
- incognito_mode,
- is_widget_mode
- };
- return automation_client_->Initialize(this, chrome_launch_params);
+ launch_params_ = new ChromeFrameLaunchParams(url, referrer, profile_path,
+ profile_name, extra_chrome_arguments, incognito_mode, is_widget_mode);
+ return automation_client_->Initialize(this, launch_params_);
}
// ChromeFrameDelegate implementation
@@ -240,6 +235,9 @@ END_MSG_MAP()
// Our gateway to chrome land
scoped_refptr<ChromeFrameAutomationClient> automation_client_;
+ // How we launched Chrome.
+ scoped_refptr<ChromeFrameLaunchParams> launch_params_;
+
// Url of the containing document.
std::string document_url_;