diff options
author | tommi@chromium.org <tommi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-10 14:09:37 +0000 |
---|---|---|
committer | tommi@chromium.org <tommi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-10 14:09:37 +0000 |
commit | bbfa9a15797ba107dcae0f7fff85a7f12ffd26b9 (patch) | |
tree | ee15898939e4989b96c6419217696f63d7a5585b /chrome_frame/chrome_frame_plugin.h | |
parent | e721ebe885b159f9b18047392be9a0f5834998fb (diff) | |
download | chromium_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.h | 22 |
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_; |