#include <utility>
-#include "chrome/browser/extensions/api/webview/webview_api.h"
+#include "chrome/browser/extensions/api/web_view/web_view_internal_api.h"
#include "chrome/browser/guest_view/web_view/web_view_constants.h"
-WebviewFindHelper::WebviewFindHelper(WebViewGuest* webview_guest)
- : webview_guest_(webview_guest),
- current_find_request_id_(0) {
+namespace extensions {
+
+WebViewFindHelper::WebViewFindHelper(WebViewGuest* webview_guest)
+ : webview_guest_(webview_guest), current_find_request_id_(0) {
}
-WebviewFindHelper::~WebviewFindHelper() {
+WebViewFindHelper::~WebViewFindHelper() {
}
-void WebviewFindHelper::CancelAllFindSessions() {
- current_find_session_ = linked_ptr<WebviewFindHelper::FindInfo>();
+void WebViewFindHelper::CancelAllFindSessions() {
+ current_find_session_ = linked_ptr<WebViewFindHelper::FindInfo>();
while (!find_info_map_.empty()) {
find_info_map_.begin()->second->SendResponse(true /* canceled */);
find_info_map_.erase(find_info_map_.begin());
find_update_event_.reset();
}
-void WebviewFindHelper::DispatchFindUpdateEvent(bool canceled,
+void WebViewFindHelper::DispatchFindUpdateEvent(bool canceled,
bool final_update) {
DCHECK(find_update_event_.get());
scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue());
args->SetBoolean(webview::kFindCanceled, canceled);
args->SetBoolean(webview::kFindFinalUpdate, final_update);
DCHECK(webview_guest_);
- webview_guest_->DispatchEvent(
+ webview_guest_->DispatchEventToEmbedder(
new GuestViewBase::Event(webview::kEventFindReply, args.Pass()));
}
-void WebviewFindHelper::EndFindSession(int session_request_id, bool canceled) {
+void WebViewFindHelper::EndFindSession(int session_request_id, bool canceled) {
FindInfoMap::iterator session_iterator =
find_info_map_.find(session_request_id);
DCHECK(session_iterator != find_info_map_.end());
find_info->SendResponse(canceled);
// For every subsequent find request of the find session.
- for (std::vector<base::WeakPtr<WebviewFindHelper::FindInfo> >::iterator i =
+ for (std::vector<base::WeakPtr<WebViewFindHelper::FindInfo> >::iterator i =
find_info->find_next_requests_.begin();
- i != find_info->find_next_requests_.end(); ++i) {
+ i != find_info->find_next_requests_.end();
+ ++i) {
DCHECK(i->get());
// Do not call callbacks for subsequent find requests that have not been
}
// Call the request's callback function with the find results, and then
- // delete its map entry to free the WebviewFindFunction object.
+ // delete its map entry to free the WebViewInternalFindFunction object.
(*i)->SendResponse(canceled);
find_info_map_.erase((*i)->request_id_);
}
- // Erase the first find request's map entry to free the WebviewFindFunction
+ // Erase the first find request's map entry to free the
+ // WebViewInternalFindFunction
// object.
find_info_map_.erase(session_request_id);
}
-void WebviewFindHelper::Find(
+void WebViewFindHelper::Find(
content::WebContents* guest_web_contents,
const base::string16& search_text,
const blink::WebFindOptions& options,
- scoped_refptr<extensions::WebviewFindFunction> find_function) {
+ scoped_refptr<WebViewInternalFindFunction> find_function) {
// Need a new request_id for each new find request.
++current_find_request_id_;
// Stores the find request information by request_id so that its callback
// function can be called when the find results are available.
std::pair<FindInfoMap::iterator, bool> insert_result =
- find_info_map_.insert(
- std::make_pair(current_find_request_id_,
- linked_ptr<WebviewFindHelper::FindInfo>(
- new WebviewFindHelper::FindInfo(
- current_find_request_id_,
- search_text,
- options,
- find_function))));
+ find_info_map_.insert(std::make_pair(
+ current_find_request_id_,
+ linked_ptr<
+ WebViewFindHelper::FindInfo>(new WebViewFindHelper::FindInfo(
+ current_find_request_id_, search_text, options, find_function))));
// No duplicate insertions.
DCHECK(insert_result.second);
search_text, *full_options);
}
-void WebviewFindHelper::FindReply(int request_id,
+void WebViewFindHelper::FindReply(int request_id,
int number_of_matches,
const gfx::Rect& selection_rect,
int active_match_ordinal,
// This find request must be a part of an existing find session.
DCHECK(current_find_session_.get());
- WebviewFindHelper::FindInfo* find_info = find_iterator->second.get();
+ WebViewFindHelper::FindInfo* find_info = find_iterator->second.get();
// Handle canceled find requests.
if (!find_info->options()->findNext &&
EndFindSession(request_id, false /* canceled */);
}
-WebviewFindHelper::FindResults::FindResults()
- : number_of_matches_(0),
- active_match_ordinal_(0) {}
+WebViewFindHelper::FindResults::FindResults()
+ : number_of_matches_(0), active_match_ordinal_(0) {
+}
-WebviewFindHelper::FindResults::~FindResults() {
+WebViewFindHelper::FindResults::~FindResults() {
}
-void WebviewFindHelper::FindResults::AggregateResults(
+void WebViewFindHelper::FindResults::AggregateResults(
int number_of_matches,
const gfx::Rect& selection_rect,
int active_match_ordinal,
}
}
-void WebviewFindHelper::FindResults::PrepareResults(
+void WebViewFindHelper::FindResults::PrepareResults(
base::DictionaryValue* results) {
results->SetInteger(webview::kFindNumberOfMatches, number_of_matches_);
results->SetInteger(webview::kFindActiveMatchOrdinal, active_match_ordinal_);
results->Set(webview::kFindSelectionRect, rect.DeepCopy());
}
-WebviewFindHelper::FindUpdateEvent::FindUpdateEvent(
- const base::string16& search_text) : search_text_(search_text) {
+WebViewFindHelper::FindUpdateEvent::FindUpdateEvent(
+ const base::string16& search_text)
+ : search_text_(search_text) {
}
-WebviewFindHelper::FindUpdateEvent::~FindUpdateEvent() {
+WebViewFindHelper::FindUpdateEvent::~FindUpdateEvent() {
}
-void WebviewFindHelper::FindUpdateEvent::AggregateResults(
+void WebViewFindHelper::FindUpdateEvent::AggregateResults(
int number_of_matches,
const gfx::Rect& selection_rect,
int active_match_ordinal,
active_match_ordinal, final_update);
}
-void WebviewFindHelper::FindUpdateEvent::PrepareResults(
+void WebViewFindHelper::FindUpdateEvent::PrepareResults(
base::DictionaryValue* results) {
results->SetString(webview::kFindSearchText, search_text_);
find_results_.PrepareResults(results);
}
-WebviewFindHelper::FindInfo::FindInfo(
+WebViewFindHelper::FindInfo::FindInfo(
int request_id,
const base::string16& search_text,
const blink::WebFindOptions& options,
- scoped_refptr<extensions::WebviewFindFunction> find_function)
+ scoped_refptr<WebViewInternalFindFunction> find_function)
: request_id_(request_id),
search_text_(search_text),
options_(options),
weak_ptr_factory_(this) {
}
-WebviewFindHelper::FindInfo::~FindInfo() {
+WebViewFindHelper::FindInfo::~FindInfo() {
}
-void WebviewFindHelper::FindInfo::AggregateResults(
+void WebViewFindHelper::FindInfo::AggregateResults(
int number_of_matches,
const gfx::Rect& selection_rect,
int active_match_ordinal,
active_match_ordinal, final_update);
}
-base::WeakPtr<WebviewFindHelper::FindInfo>
- WebviewFindHelper::FindInfo::AsWeakPtr() {
+base::WeakPtr<WebViewFindHelper::FindInfo>
+WebViewFindHelper::FindInfo::AsWeakPtr() {
return weak_ptr_factory_.GetWeakPtr();
}
-void WebviewFindHelper::FindInfo::SendResponse(bool canceled) {
+void WebViewFindHelper::FindInfo::SendResponse(bool canceled) {
// Prepare the find results to pass to the callback function.
base::DictionaryValue results;
find_results_.PrepareResults(&results);
find_function_->SetResult(results.DeepCopy());
find_function_->SendResponse(true);
}
+
+} // namespace extensions