OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 #include "chrome/browser/guest_view/web_view/web_view_find_helper.h" | 5 #include "chrome/browser/guestview/webview/webview_find_helper.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "chrome/browser/extensions/api/webview/webview_api.h" | 9 #include "chrome/browser/extensions/api/webview/webview_api.h" |
10 #include "chrome/browser/guest_view/web_view/web_view_constants.h" | 10 #include "chrome/browser/guestview/webview/webview_constants.h" |
11 | 11 |
12 WebviewFindHelper::WebviewFindHelper(WebViewGuest* webview_guest) | 12 WebviewFindHelper::WebviewFindHelper(WebViewGuest* webview_guest) |
13 : webview_guest_(webview_guest), | 13 : webview_guest_(webview_guest), |
14 current_find_request_id_(0) { | 14 current_find_request_id_(0) { |
15 } | 15 } |
16 | 16 |
17 WebviewFindHelper::~WebviewFindHelper() { | 17 WebviewFindHelper::~WebviewFindHelper() { |
18 } | 18 } |
19 | 19 |
20 void WebviewFindHelper::CancelAllFindSessions() { | 20 void WebviewFindHelper::CancelAllFindSessions() { |
21 current_find_session_ = linked_ptr<WebviewFindHelper::FindInfo>(); | 21 current_find_session_ = linked_ptr<WebviewFindHelper::FindInfo>(); |
22 while (!find_info_map_.empty()) { | 22 while (!find_info_map_.empty()) { |
23 find_info_map_.begin()->second->SendResponse(true /* canceled */); | 23 find_info_map_.begin()->second->SendResponse(true /* canceled */); |
24 find_info_map_.erase(find_info_map_.begin()); | 24 find_info_map_.erase(find_info_map_.begin()); |
25 } | 25 } |
26 if (find_update_event_.get()) | 26 if (find_update_event_.get()) |
27 DispatchFindUpdateEvent(true /* canceled */, true /* final_update */); | 27 DispatchFindUpdateEvent(true /* canceled */, true /* final_update */); |
28 find_update_event_.reset(); | 28 find_update_event_.reset(); |
29 } | 29 } |
30 | 30 |
31 void WebviewFindHelper::DispatchFindUpdateEvent(bool canceled, | 31 void WebviewFindHelper::DispatchFindUpdateEvent(bool canceled, |
32 bool final_update) { | 32 bool final_update) { |
33 DCHECK(find_update_event_.get()); | 33 DCHECK(find_update_event_.get()); |
34 scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue()); | 34 scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue()); |
35 find_update_event_->PrepareResults(args.get()); | 35 find_update_event_->PrepareResults(args.get()); |
36 args->SetBoolean(webview::kFindCanceled, canceled); | 36 args->SetBoolean(webview::kFindCanceled, canceled); |
37 args->SetBoolean(webview::kFindFinalUpdate, final_update); | 37 args->SetBoolean(webview::kFindFinalUpdate, final_update); |
38 DCHECK(webview_guest_); | 38 DCHECK(webview_guest_); |
39 webview_guest_->DispatchEvent( | 39 webview_guest_->DispatchEvent(new GuestView::Event(webview::kEventFindReply, |
40 new GuestViewBase::Event(webview::kEventFindReply, args.Pass())); | 40 args.Pass())); |
41 } | 41 } |
42 | 42 |
43 void WebviewFindHelper::EndFindSession(int session_request_id, bool canceled) { | 43 void WebviewFindHelper::EndFindSession(int session_request_id, bool canceled) { |
44 FindInfoMap::iterator session_iterator = | 44 FindInfoMap::iterator session_iterator = |
45 find_info_map_.find(session_request_id); | 45 find_info_map_.find(session_request_id); |
46 DCHECK(session_iterator != find_info_map_.end()); | 46 DCHECK(session_iterator != find_info_map_.end()); |
47 FindInfo* find_info = session_iterator->second.get(); | 47 FindInfo* find_info = session_iterator->second.get(); |
48 | 48 |
49 // Call the callback function of the first request of the find session. | 49 // Call the callback function of the first request of the find session. |
50 find_info->SendResponse(canceled); | 50 find_info->SendResponse(canceled); |
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
270 void WebviewFindHelper::FindInfo::SendResponse(bool canceled) { | 270 void WebviewFindHelper::FindInfo::SendResponse(bool canceled) { |
271 // Prepare the find results to pass to the callback function. | 271 // Prepare the find results to pass to the callback function. |
272 base::DictionaryValue results; | 272 base::DictionaryValue results; |
273 find_results_.PrepareResults(&results); | 273 find_results_.PrepareResults(&results); |
274 results.SetBoolean(webview::kFindCanceled, canceled); | 274 results.SetBoolean(webview::kFindCanceled, canceled); |
275 | 275 |
276 // Call the callback. | 276 // Call the callback. |
277 find_function_->SetResult(results.DeepCopy()); | 277 find_function_->SetResult(results.DeepCopy()); |
278 find_function_->SendResponse(true); | 278 find_function_->SendResponse(true); |
279 } | 279 } |
OLD | NEW |