| 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);
|
| + 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];
|
|
|