Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(208)

Unified Diff: ios/chrome/browser/ui/browser_view_controller.mm

Issue 2737353006: Replaced webPageOrderedClose with WebStateDelegate API. (Closed)
Patch Set: Addressed review comments Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ios/chrome/browser/tabs/tab_private.h ('k') | ios/web/public/test/crw_mock_web_state_delegate.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ios/chrome/browser/ui/browser_view_controller.mm
diff --git a/ios/chrome/browser/ui/browser_view_controller.mm b/ios/chrome/browser/ui/browser_view_controller.mm
index a9b01c7d578fa0d66d0fb4317ce7390689acb2b6..9b3c1db2bd8ed626782bdc75e99eaaef63b14ea5 100644
--- a/ios/chrome/browser/ui/browser_view_controller.mm
+++ b/ios/chrome/browser/ui/browser_view_controller.mm
@@ -2415,6 +2415,21 @@ class BrowserBookmarkModelBridge : public bookmarks::BookmarkModelObserver {
return childTab.webState;
}
+- (void)closeWebState:(web::WebState*)webState {
+ // Only allow a web page to close itself if it was opened by DOM, or if there
+ // are no navigation items.
+ Tab* tab = LegacyTabHelper::GetTabForWebState(webState);
+ DCHECK([[tab navigationManagerImpl]->GetSessionController() isOpenedByDOM] ||
+ ![tab navigationManager]->GetItemCount());
+
+ if (![self tabModel])
+ return;
+
+ NSUInteger index = [[self tabModel] indexOfTab:tab];
+ if (index != NSNotFound)
+ [[self tabModel] closeTabAtIndex:index];
+}
+
- (web::WebState*)webState:(web::WebState*)webState
openURLWithParams:(const web::WebState::OpenURLParams&)params {
switch (params.disposition) {
« no previous file with comments | « ios/chrome/browser/tabs/tab_private.h ('k') | ios/web/public/test/crw_mock_web_state_delegate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698