Index: chrome/browser/tab_contents/tab_contents_view.h |
diff --git a/chrome/browser/tab_contents/tab_contents_view.h b/chrome/browser/tab_contents/tab_contents_view.h |
index db5fff86c94c851a96330cebb6dbff55fca2e511..79bee6dd6da65b77673bd2bab9f734f993b469ca 100644 |
--- a/chrome/browser/tab_contents/tab_contents_view.h |
+++ b/chrome/browser/tab_contents/tab_contents_view.h |
@@ -136,6 +136,16 @@ class TabContentsView : public RenderViewHostDelegate::View { |
} |
virtual void CancelDragAndCloseTab() {} |
+ // If we close the tab while a UI control is in an event-tracking |
+ // loop, the control may message freed objects and crash. |
+ // TabContents::Close() calls IsEventTracking(), and if it returns |
+ // true CloseTabAfterEventTracking() is called and the close is not |
+ // completed. |
+ virtual bool IsEventTracking() const { |
+ return false; |
+ } |
+ virtual void CloseTabAfterEventTracking() {} |
+ |
protected: |
TabContentsView() {} // Abstract interface. |