OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #import "ios/chrome/browser/find_in_page/find_in_page_controller.h" | 5 #import "ios/chrome/browser/find_in_page/find_in_page_controller.h" |
6 | 6 |
7 #import <UIKit/UIKit.h> | 7 #import <UIKit/UIKit.h> |
8 | 8 |
9 #import <cmath> | 9 #import <cmath> |
10 #include <memory> | 10 #include <memory> |
(...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
261 atPoint:point]; | 261 atPoint:point]; |
262 [[strongSelf webViewScrollView] setContentOffset:point animated:YES]; | 262 [[strongSelf webViewScrollView] setContentOffset:point animated:YES]; |
263 if (completionHandler) | 263 if (completionHandler) |
264 completionHandler(); | 264 completionHandler(); |
265 }]; | 265 }]; |
266 } | 266 } |
267 | 267 |
268 // Remove highlights from the page and disable the model. | 268 // Remove highlights from the page and disable the model. |
269 - (void)disableFindInPageWithCompletionHandler: | 269 - (void)disableFindInPageWithCompletionHandler: |
270 (ProceduralBlock)completionHandler { | 270 (ProceduralBlock)completionHandler { |
271 if (![self canFindInPage]) | 271 if (![self canFindInPage]) { |
| 272 if (completionHandler) |
| 273 completionHandler(); |
272 return; | 274 return; |
| 275 } |
273 // Cancel any queued calls to |recurringPumpWithCompletionHandler|. | 276 // Cancel any queued calls to |recurringPumpWithCompletionHandler|. |
274 [NSObject cancelPreviousPerformRequestsWithTarget:self]; | 277 [NSObject cancelPreviousPerformRequestsWithTarget:self]; |
275 __weak FindInPageController* weakSelf = self; | 278 __weak FindInPageController* weakSelf = self; |
276 ProceduralBlock handler = ^{ | 279 ProceduralBlock handler = ^{ |
277 FindInPageController* strongSelf = weakSelf; | 280 FindInPageController* strongSelf = weakSelf; |
278 if (strongSelf) { | 281 if (strongSelf) { |
279 [strongSelf.findInPageModel setEnabled:NO]; | |
280 web::WebState* webState = [strongSelf webState]; | 282 web::WebState* webState = [strongSelf webState]; |
281 if (webState) | 283 if (webState) |
282 DOMAlteringLock::FromWebState(webState)->Release(strongSelf); | 284 DOMAlteringLock::FromWebState(webState)->Release(strongSelf); |
283 } | 285 } |
284 if (completionHandler) | 286 if (completionHandler) |
285 completionHandler(); | 287 completionHandler(); |
286 }; | 288 }; |
287 // Only run JSFindInPageManager disable if there is a string in progress to | 289 // Only run JSFindInPageManager disable if there is a string in progress to |
288 // avoid WKWebView crash on deallocation due to outstanding completion | 290 // avoid WKWebView crash on deallocation due to outstanding completion |
289 // handler. | 291 // handler. |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
372 | 374 |
373 - (BOOL)canReleaseDOMLock { | 375 - (BOOL)canReleaseDOMLock { |
374 return NO; | 376 return NO; |
375 } | 377 } |
376 | 378 |
377 - (void)releaseDOMLockWithCompletionHandler:(ProceduralBlock)completionHandler { | 379 - (void)releaseDOMLockWithCompletionHandler:(ProceduralBlock)completionHandler { |
378 NOTREACHED(); | 380 NOTREACHED(); |
379 } | 381 } |
380 | 382 |
381 @end | 383 @end |
OLD | NEW |