Index: ios/chrome/browser/find_in_page/find_in_page_controller.mm |
diff --git a/ios/chrome/browser/find_in_page/find_in_page_controller.mm b/ios/chrome/browser/find_in_page/find_in_page_controller.mm |
index 1f167a0f4d17356a9da6522ab8a007747ff04151..bde5dd22757847813456b4390c2d1995c8ec5ebf 100644 |
--- a/ios/chrome/browser/find_in_page/find_in_page_controller.mm |
+++ b/ios/chrome/browser/find_in_page/find_in_page_controller.mm |
@@ -30,6 +30,10 @@ NSString* const kFindBarTextFieldDidResignFirstResponderNotification = |
namespace { |
// The delay (in secs) after which the find in page string will be pumped again. |
const NSTimeInterval kRecurringPumpDelay = .01; |
+ |
+// Keeps find in page search term to be shared between different tabs. Never |
+// reset, not stored on disk. |
+static NSString* gSearchTerm; |
} |
@interface FindInPageController () <DOMAltering, CRWWebStateObserver> |
@@ -38,8 +42,11 @@ const NSTimeInterval kRecurringPumpDelay = .01; |
// The web view's scroll view. |
@property(nonatomic, readonly) CRWWebViewScrollViewProxy* webViewScrollView; |
-// Convenience method to obtain UIPasteboardNameFind from UIPasteBoard. |
-- (UIPasteboard*)findPasteboard; |
+// Sets the search term to |string|. Stored until the application quit. |
++ (void)setSearchTerm:(NSString*)string; |
+// The search term, stored until the application quit. |
++ (NSString*)searchTerm; |
+ |
// Find in Page text field listeners. |
- (void)findBarTextFieldWillBecomeFirstResponder:(NSNotification*)note; |
- (void)findBarTextFieldDidResignFirstResponder:(NSNotification*)note; |
@@ -87,6 +94,15 @@ const NSTimeInterval kRecurringPumpDelay = .01; |
@synthesize delegate = _delegate; |
++ (void)setSearchTerm:(NSString*)string { |
+ [gSearchTerm release]; |
+ gSearchTerm = [string copy]; |
+} |
+ |
++ (NSString*)searchTerm { |
+ return gSearchTerm; |
+} |
+ |
- (id)initWithWebState:(web::WebState*)webState |
delegate:(id<FindInPageControllerDelegate>)delegate { |
self = [super init]; |
@@ -288,7 +304,7 @@ const NSTimeInterval kRecurringPumpDelay = .01; |
} |
- (void)saveSearchTerm { |
- [self findPasteboard].string = [[self findInPageModel] text]; |
+ [[self class] setSearchTerm:[[self findInPageModel] text]]; |
} |
- (void)restoreSearchTerm { |
@@ -298,14 +314,10 @@ const NSTimeInterval kRecurringPumpDelay = .01; |
return; |
} |
- NSString* term = [self findPasteboard].string; |
+ NSString* term = [[self class] searchTerm]; |
[[self findInPageModel] updateQuery:(term ? term : @"") matches:0]; |
} |
-- (UIPasteboard*)findPasteboard { |
- return [UIPasteboard pasteboardWithName:UIPasteboardNameFind create:NO]; |
-} |
- |
- (web::WebState*)webState { |
return _webStateObserverBridge ? _webStateObserverBridge->web_state() |
: nullptr; |