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
diff --git a/chrome_frame/chrome_frame_activex.cc b/chrome_frame/chrome_frame_activex.cc
index eeffb23..27c415c 100644
--- a/chrome_frame/chrome_frame_activex.cc
+++ b/chrome_frame/chrome_frame_activex.cc
@@ -420,7 +420,7 @@
       if (SUCCEEDED(service_hr) && wants_privileged)
         is_privileged_ = true;
 
-      url_fetcher_.set_privileged_mode(is_privileged_);
+      url_fetcher_->set_privileged_mode(is_privileged_);
     }
 
     std::wstring chrome_extra_arguments;
@@ -458,8 +458,8 @@
       WideToUTF8(url_, url_.Length(), &utf8_url);
     }
 
-    url_fetcher_.set_frame_busting(!is_privileged_);
-    automation_client_->SetUrlFetcher(&url_fetcher_);
+    url_fetcher_->set_frame_busting(!is_privileged_);
+    automation_client_->SetUrlFetcher(url_fetcher_.get());
     if (!InitializeAutomation(profile_name, chrome_extra_arguments,
                               IsIEInPrivate(), true, GURL(utf8_url),
                               GURL())) {