Index: ios/chrome/browser/web/sad_tab_tab_helper.h |
diff --git a/ios/chrome/browser/web/sad_tab_tab_helper.h b/ios/chrome/browser/web/sad_tab_tab_helper.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..9e7e4a08ad4ff6774be711d8cfdd5a4bbcaf0f37 |
--- /dev/null |
+++ b/ios/chrome/browser/web/sad_tab_tab_helper.h |
@@ -0,0 +1,40 @@ |
+// Copyright 2017 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#import "ios/chrome/browser/web/sad_tab_tab_helper_delegate.h" |
+#import "ios/web/public/web_state/web_state_observer.h" |
+#import "ios/web/public/web_state/web_state_user_data.h" |
+ |
+#if !defined(__has_feature) || !__has_feature(objc_arc) |
+#error "This file requires ARC support." |
+#endif |
+ |
+// SadTabTabHelper listens to RenderProcessGone events and presents a |
+// SadTabView view appropriately |
kkhorimoto
2017/04/11 02:13:15
Please finish comments with a period here and else
PL
2017/04/11 03:08:56
Done! (Maybe this is something we can have git cl
|
+class SadTabTabHelper : public web::WebStateUserData<SadTabTabHelper>, |
+ public web::WebStateObserver { |
+ public: |
+ // Create a SadTabTabHelper and attach it to a specific web_state object, |
+ // an optional delegate object can be provided to control presentation |
+ static void CreateForWebState(web::WebState* web_state, |
+ id<SadTabTabHelperDelegate> delegate); |
+ |
+ private: |
+ // Constructor for SadTabTabHelper, assigning the helper to a web_state and |
+ // providing an optional delegate |
kkhorimoto
2017/04/11 02:13:15
Do we want the delegate to be optional? I can't t
PL
2017/04/11 03:08:56
Done. This made more sense when I had the notion o
|
+ SadTabTabHelper(web::WebState* web_state, |
+ id<SadTabTabHelperDelegate> delegate); |
+ |
+ // Deconstructor for SadTabTabHelper |
+ ~SadTabTabHelper() override; |
+ |
+ // A TabHelperDelegate that can control aspects of this tab helper's behavior |
+ __weak id<SadTabTabHelperDelegate> delegate_; |
+ |
+ // Presents a new SadTabView via the web_state object |
+ void PresentSadTab(const GURL& url_causing_failure); |
+ |
+ // WebStateObserver: |
+ void RenderProcessGone() override; |
+}; |