Chromium Code Reviews| 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 b23e6dd1a5aa86ac7963362d70368ebe73e8ca4c..dadc97218a7edfc4cc08d226d290aa12b669b17f 100644 |
| --- a/ios/chrome/browser/ui/browser_view_controller.mm |
| +++ b/ios/chrome/browser/ui/browser_view_controller.mm |
| @@ -4308,6 +4308,7 @@ class BrowserBookmarkModelBridge : public bookmarks::BookmarkModelObserver { |
| CRWWebController* webController = tab.webController; |
| NSString* script = @"document.documentElement.outerHTML;"; |
| base::WeakNSObject<Tab> weakTab(tab); |
|
marq (ping after 24h)
2017/02/15 10:34:10
Since the block now only cares about [tab url], in
Eugene But (OOO till 7-30)
2017/02/15 16:46:59
This block actually uses |strongTab| on line 4328,
marq (ping after 24h)
2017/02/16 12:49:44
Yeah, this is fine for now -- at least, this isn't
|
| + base::WeakNSObject<BrowserViewController> weakSelf(self); |
| web::JavaScriptResultBlock completionHandlerBlock = ^(id result, NSError*) { |
| base::scoped_nsobject<Tab> strongTab([weakTab retain]); |
| if (!strongTab) |
| @@ -4318,10 +4319,16 @@ class BrowserBookmarkModelBridge : public bookmarks::BookmarkModelObserver { |
| base::Base64Encode(base::SysNSStringToUTF8(result), &base64HTML); |
| GURL URL(std::string("data:text/plain;charset=utf-8;base64,") + base64HTML); |
| web::Referrer referrer([strongTab url], web::ReferrerPolicyDefault); |
| - [strongTab webPageOrderedOpen:URL |
| - referrer:referrer |
| - windowName:nil |
| - inBackground:NO]; |
| + |
| + [[weakSelf tabModel] |
| + insertOrUpdateTabWithURL:URL |
| + referrer:referrer |
| + transition:ui::PAGE_TRANSITION_LINK |
| + windowName:nil |
| + opener:strongTab |
| + openedByDOM:YES |
| + atIndex:TabModelConstants::kTabPositionAutomatically |
| + inBackground:NO]; |
| }; |
| [webController executeJavaScript:script |
| completionHandler:completionHandlerBlock]; |