| 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;
|
|
|