Don't call chrome::EndKeepAlive from CloudPrintWebDialogDelegate::OnDialogClosed.
chrome::EndKeepAlive maycall CloudPrintWebDialogDelegate::OnDialogClosed again.

BUG=321368

Review URL: https://codereview.chromium.org/76983004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@236200 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/browser/printing/print_dialog_cloud.cc b/chrome/browser/printing/print_dialog_cloud.cc
index 8dcaf97..f030633 100644
--- a/chrome/browser/printing/print_dialog_cloud.cc
+++ b/chrome/browser/printing/print_dialog_cloud.cc
@@ -585,8 +585,11 @@
 
   // If we're modal we can show the dialog with no browser.
   // End the keep-alive so that Chrome can exit.
-  if (!modal_parent_ && keep_alive_when_non_modal_)
-    chrome::EndKeepAlive();
+  if (!modal_parent_ && keep_alive_when_non_modal_) {
+    // Post to prevent recursive call tho this function.
+    base::MessageLoop::current()->PostTask(FROM_HERE,
+                                           base::Bind(&chrome::EndKeepAlive));
+  }
   delete this;
 }