Commit 694ebb86 authored by Nazerke's avatar Nazerke Committed by Commit Bot

[iOS] Add new window option to history context menu.

Bug: 1072370
Change-Id: If7e78a94be562fbc432ac451b097a06b5d5d07b3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2235714Reviewed-by: default avatarMark Cogan <marq@chromium.org>
Commit-Queue: Nazerke Kalidolda <nazerke@google.com>
Cr-Commit-Position: refs/heads/master@{#777300}
parent 1f978c25
......@@ -94,8 +94,10 @@ source_set("history_ui") {
"//ios/chrome/browser/ui/table_view/cells",
"//ios/chrome/browser/ui/table_view/cells:cells_constants",
"//ios/chrome/browser/ui/util",
"//ios/chrome/browser/ui/util:multiwindow_util",
"//ios/chrome/browser/url_loading",
"//ios/chrome/browser/web_state_list",
"//ios/chrome/browser/window_activities",
"//ios/chrome/common/ui/favicon",
"//ios/chrome/common/ui/util",
"//ui/base",
......
......@@ -18,6 +18,8 @@
#include "ios/chrome/browser/sync/sync_setup_service.h"
#include "ios/chrome/browser/sync/sync_setup_service_factory.h"
#import "ios/chrome/browser/ui/alert_coordinator/action_sheet_coordinator.h"
#import "ios/chrome/browser/ui/commands/application_commands.h"
#import "ios/chrome/browser/ui/commands/command_dispatcher.h"
#include "ios/chrome/browser/ui/history/history_entries_status_item.h"
#import "ios/chrome/browser/ui/history/history_entries_status_item_delegate.h"
#include "ios/chrome/browser/ui/history/history_entry_inserter.h"
......@@ -33,10 +35,12 @@
#import "ios/chrome/browser/ui/table_view/cells/table_view_url_item.h"
#import "ios/chrome/browser/ui/table_view/table_view_favicon_data_source.h"
#import "ios/chrome/browser/ui/table_view/table_view_navigation_controller_constants.h"
#import "ios/chrome/browser/ui/util/multi_window_support.h"
#import "ios/chrome/browser/ui/util/pasteboard_util.h"
#import "ios/chrome/browser/url_loading/url_loading_browser_agent.h"
#import "ios/chrome/browser/url_loading/url_loading_params.h"
#include "ios/chrome/browser/web_state_list/web_state_list.h"
#import "ios/chrome/browser/window_activities/window_activity_helpers.h"
#import "ios/chrome/common/ui/colors/UIColor+cr_semantic_colors.h"
#import "ios/chrome/common/ui/colors/semantic_color_names.h"
#import "ios/chrome/common/ui/favicon/favicon_view.h"
......@@ -1021,6 +1025,18 @@ const CGFloat kButtonHorizontalPadding = 30.0;
action:openInNewTabAction
style:UIAlertActionStyleDefault];
if (IsMultiwindowSupported()) {
// Add "Open In New Window" option.
NSString* openInNewWindowTitle =
l10n_util::GetNSString(IDS_IOS_CONTENT_CONTEXT_OPENINNEWWINDOW);
ProceduralBlock openInNewWindowAction = ^{
[weakSelf openURLInNewWindow:entry.URL];
};
[self.contextMenuCoordinator addItemWithTitle:openInNewWindowTitle
action:openInNewWindowAction
style:UIAlertActionStyleDefault];
}
// Add "Open in New Incognito Tab" option.
NSString* openInNewIncognitoTabTitle = l10n_util::GetNSStringWithFixup(
IDS_IOS_CONTENT_CONTEXT_OPENLINKNEWINCOGNITOTAB);
......@@ -1054,6 +1070,16 @@ const CGFloat kButtonHorizontalPadding = 30.0;
}];
}
// Opens URL in a new non-incognito tab in a new window and dismisses the
// history view.
- (void)openURLInNewWindow:(const GURL&)URL {
id<ApplicationCommands> windowOpener = HandlerForProtocol(
self.browser->GetCommandDispatcher(), ApplicationCommands);
[windowOpener
openNewWindowWithActivity:ActivityToLoadURL(WindowActivityHistoryOrigin,
URL)];
}
// Opens URL in a new incognito tab and dismisses the history view.
- (void)openURLInNewIncognitoTab:(const GURL&)URL {
base::RecordAction(base::UserMetricsAction(
......
......@@ -101,7 +101,6 @@ enum UMAContextMenuAction {
action:^{
[weakDelegate
openURLInNewWindowForContextMenuWithParams:weakParams];
// TODO(crbug.com/1084907): Add metrics.
}
style:UIAlertActionStyleDefault];
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment