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") { ...@@ -94,8 +94,10 @@ source_set("history_ui") {
"//ios/chrome/browser/ui/table_view/cells", "//ios/chrome/browser/ui/table_view/cells",
"//ios/chrome/browser/ui/table_view/cells:cells_constants", "//ios/chrome/browser/ui/table_view/cells:cells_constants",
"//ios/chrome/browser/ui/util", "//ios/chrome/browser/ui/util",
"//ios/chrome/browser/ui/util:multiwindow_util",
"//ios/chrome/browser/url_loading", "//ios/chrome/browser/url_loading",
"//ios/chrome/browser/web_state_list", "//ios/chrome/browser/web_state_list",
"//ios/chrome/browser/window_activities",
"//ios/chrome/common/ui/favicon", "//ios/chrome/common/ui/favicon",
"//ios/chrome/common/ui/util", "//ios/chrome/common/ui/util",
"//ui/base", "//ui/base",
......
...@@ -18,6 +18,8 @@ ...@@ -18,6 +18,8 @@
#include "ios/chrome/browser/sync/sync_setup_service.h" #include "ios/chrome/browser/sync/sync_setup_service.h"
#include "ios/chrome/browser/sync/sync_setup_service_factory.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/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" #include "ios/chrome/browser/ui/history/history_entries_status_item.h"
#import "ios/chrome/browser/ui/history/history_entries_status_item_delegate.h" #import "ios/chrome/browser/ui/history/history_entries_status_item_delegate.h"
#include "ios/chrome/browser/ui/history/history_entry_inserter.h" #include "ios/chrome/browser/ui/history/history_entry_inserter.h"
...@@ -33,10 +35,12 @@ ...@@ -33,10 +35,12 @@
#import "ios/chrome/browser/ui/table_view/cells/table_view_url_item.h" #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_favicon_data_source.h"
#import "ios/chrome/browser/ui/table_view/table_view_navigation_controller_constants.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/ui/util/pasteboard_util.h"
#import "ios/chrome/browser/url_loading/url_loading_browser_agent.h" #import "ios/chrome/browser/url_loading/url_loading_browser_agent.h"
#import "ios/chrome/browser/url_loading/url_loading_params.h" #import "ios/chrome/browser/url_loading/url_loading_params.h"
#include "ios/chrome/browser/web_state_list/web_state_list.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/UIColor+cr_semantic_colors.h"
#import "ios/chrome/common/ui/colors/semantic_color_names.h" #import "ios/chrome/common/ui/colors/semantic_color_names.h"
#import "ios/chrome/common/ui/favicon/favicon_view.h" #import "ios/chrome/common/ui/favicon/favicon_view.h"
...@@ -1021,6 +1025,18 @@ const CGFloat kButtonHorizontalPadding = 30.0; ...@@ -1021,6 +1025,18 @@ const CGFloat kButtonHorizontalPadding = 30.0;
action:openInNewTabAction action:openInNewTabAction
style:UIAlertActionStyleDefault]; 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. // Add "Open in New Incognito Tab" option.
NSString* openInNewIncognitoTabTitle = l10n_util::GetNSStringWithFixup( NSString* openInNewIncognitoTabTitle = l10n_util::GetNSStringWithFixup(
IDS_IOS_CONTENT_CONTEXT_OPENLINKNEWINCOGNITOTAB); IDS_IOS_CONTENT_CONTEXT_OPENLINKNEWINCOGNITOTAB);
...@@ -1054,6 +1070,16 @@ const CGFloat kButtonHorizontalPadding = 30.0; ...@@ -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. // Opens URL in a new incognito tab and dismisses the history view.
- (void)openURLInNewIncognitoTab:(const GURL&)URL { - (void)openURLInNewIncognitoTab:(const GURL&)URL {
base::RecordAction(base::UserMetricsAction( base::RecordAction(base::UserMetricsAction(
......
...@@ -101,7 +101,6 @@ enum UMAContextMenuAction { ...@@ -101,7 +101,6 @@ enum UMAContextMenuAction {
action:^{ action:^{
[weakDelegate [weakDelegate
openURLInNewWindowForContextMenuWithParams:weakParams]; openURLInNewWindowForContextMenuWithParams:weakParams];
// TODO(crbug.com/1084907): Add metrics.
} }
style:UIAlertActionStyleDefault]; 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