Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(248)

Side by Side Diff: chrome/browser/guest_view/web_view/chrome_web_view_guest_delegate.cc

Issue 579563002: Find working in app_shell. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 5
6 #include "chrome/browser/guest_view/web_view/chrome_web_view_guest_delegate.h" 6 #include "chrome/browser/guest_view/web_view/chrome_web_view_guest_delegate.h"
7 7
8 #include "chrome/browser/extensions/api/web_request/web_request_api.h" 8 #include "chrome/browser/extensions/api/web_request/web_request_api.h"
9 #include "chrome/browser/extensions/chrome_extension_web_contents_observer.h" 9 #include "chrome/browser/extensions/chrome_extension_web_contents_observer.h"
10 #include "chrome/browser/favicon/favicon_tab_helper.h" 10 #include "chrome/browser/favicon/favicon_tab_helper.h"
(...skipping 23 matching lines...) Expand all
34 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO)); 34 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::IO));
35 ExtensionWebRequestEventRouter::GetInstance()->RemoveWebViewEventListeners( 35 ExtensionWebRequestEventRouter::GetInstance()->RemoveWebViewEventListeners(
36 profile, 36 profile,
37 extension_id, 37 extension_id,
38 embedder_process_id, 38 embedder_process_id,
39 view_instance_id); 39 view_instance_id);
40 } 40 }
41 41
42 ChromeWebViewGuestDelegate::ChromeWebViewGuestDelegate( 42 ChromeWebViewGuestDelegate::ChromeWebViewGuestDelegate(
43 extensions::WebViewGuest* web_view_guest) 43 extensions::WebViewGuest* web_view_guest)
44 : WebViewGuestDelegate(web_view_guest), 44 : pending_context_menu_request_id_(0),
45 find_helper_(web_view_guest), 45 chromevox_injected_(false),
46 pending_context_menu_request_id_(0), 46 current_zoom_factor_(1.0),
47 chromevox_injected_(false), 47 web_view_guest_(web_view_guest) {
48 current_zoom_factor_(1.0) {
49 } 48 }
50 49
51 ChromeWebViewGuestDelegate::~ChromeWebViewGuestDelegate() { 50 ChromeWebViewGuestDelegate::~ChromeWebViewGuestDelegate() {
52 } 51 }
53 52
54 void ChromeWebViewGuestDelegate::Find(
55 const base::string16& search_text,
56 const blink::WebFindOptions& options,
57 extensions::WebViewInternalFindFunction* find_function) {
58 find_helper_.Find(guest_web_contents(), search_text, options, find_function);
59 }
60
61 void ChromeWebViewGuestDelegate::FindReply(content::WebContents* source,
62 int request_id,
63 int number_of_matches,
64 const gfx::Rect& selection_rect,
65 int active_match_ordinal,
66 bool final_update) {
67 find_helper_.FindReply(request_id, number_of_matches, selection_rect,
68 active_match_ordinal, final_update);
69 }
70
71 void ChromeWebViewGuestDelegate::StopFinding(content::StopFindAction action) {
72 find_helper_.CancelAllFindSessions();
73 guest_web_contents()->StopFinding(action);
74 }
75
76 double ChromeWebViewGuestDelegate::GetZoom() { 53 double ChromeWebViewGuestDelegate::GetZoom() {
77 return current_zoom_factor_; 54 return current_zoom_factor_;
78 } 55 }
79 56
80 bool ChromeWebViewGuestDelegate::HandleContextMenu( 57 bool ChromeWebViewGuestDelegate::HandleContextMenu(
81 const content::ContextMenuParams& params) { 58 const content::ContextMenuParams& params) {
82 ContextMenuDelegate* menu_delegate = 59 ContextMenuDelegate* menu_delegate =
83 ContextMenuDelegate::FromWebContents(guest_web_contents()); 60 ContextMenuDelegate::FromWebContents(guest_web_contents());
84 DCHECK(menu_delegate); 61 DCHECK(menu_delegate);
85 62
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
141 base::Bind( 118 base::Bind(
142 &RemoveWebViewEventListenersOnIOThread, 119 &RemoveWebViewEventListenersOnIOThread,
143 web_view_guest()->browser_context(), 120 web_view_guest()->browser_context(),
144 web_view_guest()->embedder_extension_id(), 121 web_view_guest()->embedder_extension_id(),
145 web_view_guest()->embedder_render_process_id(), 122 web_view_guest()->embedder_render_process_id(),
146 web_view_guest()->view_instance_id())); 123 web_view_guest()->view_instance_id()));
147 } 124 }
148 125
149 void ChromeWebViewGuestDelegate::OnDidCommitProvisionalLoadForFrame( 126 void ChromeWebViewGuestDelegate::OnDidCommitProvisionalLoadForFrame(
150 bool is_main_frame) { 127 bool is_main_frame) {
151 find_helper_.CancelAllFindSessions();
152
153 // Update the current zoom factor for the new page. 128 // Update the current zoom factor for the new page.
154 ZoomController* zoom_controller = 129 ZoomController* zoom_controller =
155 ZoomController::FromWebContents(guest_web_contents()); 130 ZoomController::FromWebContents(guest_web_contents());
156 DCHECK(zoom_controller); 131 DCHECK(zoom_controller);
157 current_zoom_factor_ = zoom_controller->GetZoomLevel(); 132 current_zoom_factor_ = zoom_controller->GetZoomLevel();
158 if (is_main_frame) 133 if (is_main_frame)
159 chromevox_injected_ = false; 134 chromevox_injected_ = false;
160 } 135 }
161 136
162 void ChromeWebViewGuestDelegate::OnDidInitialize() { 137 void ChromeWebViewGuestDelegate::OnDidInitialize() {
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
194 // TODO(lazyboy): We need to expose some kind of enum equivalent of 169 // TODO(lazyboy): We need to expose some kind of enum equivalent of
195 // |command_id| instead of plain integers. 170 // |command_id| instead of plain integers.
196 item_value->SetInteger(webview::kMenuItemCommandId, 171 item_value->SetInteger(webview::kMenuItemCommandId,
197 menu_model.GetCommandIdAt(i)); 172 menu_model.GetCommandIdAt(i));
198 item_value->SetString(webview::kMenuItemLabel, menu_model.GetLabelAt(i)); 173 item_value->SetString(webview::kMenuItemLabel, menu_model.GetLabelAt(i));
199 items->Append(item_value); 174 items->Append(item_value);
200 } 175 }
201 return items.Pass(); 176 return items.Pass();
202 } 177 }
203 178
204 void ChromeWebViewGuestDelegate::OnRenderProcessGone() {
205 // Cancel all find sessions in progress.
206 find_helper_.CancelAllFindSessions();
207 }
208
209 void ChromeWebViewGuestDelegate::OnSetZoom(double zoom_factor) { 179 void ChromeWebViewGuestDelegate::OnSetZoom(double zoom_factor) {
210 ZoomController* zoom_controller = 180 ZoomController* zoom_controller =
211 ZoomController::FromWebContents(guest_web_contents()); 181 ZoomController::FromWebContents(guest_web_contents());
212 DCHECK(zoom_controller); 182 DCHECK(zoom_controller);
213 double zoom_level = content::ZoomFactorToZoomLevel(zoom_factor); 183 double zoom_level = content::ZoomFactorToZoomLevel(zoom_factor);
214 zoom_controller->SetZoomLevel(zoom_level); 184 zoom_controller->SetZoomLevel(zoom_level);
215 185
216 scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue()); 186 scoped_ptr<base::DictionaryValue> args(new base::DictionaryValue());
217 args->SetDouble(webview::kOldZoomFactor, current_zoom_factor_); 187 args->SetDouble(webview::kOldZoomFactor, current_zoom_factor_);
218 args->SetDouble(webview::kNewZoomFactor, zoom_factor); 188 args->SetDouble(webview::kNewZoomFactor, zoom_factor);
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
261 accessibility_subscription_.reset(); 231 accessibility_subscription_.reset();
262 } else if (details.notification_type == 232 } else if (details.notification_type ==
263 chromeos::ACCESSIBILITY_TOGGLE_SPOKEN_FEEDBACK) { 233 chromeos::ACCESSIBILITY_TOGGLE_SPOKEN_FEEDBACK) {
264 if (details.enabled) 234 if (details.enabled)
265 InjectChromeVoxIfNeeded(guest_web_contents()->GetRenderViewHost()); 235 InjectChromeVoxIfNeeded(guest_web_contents()->GetRenderViewHost());
266 else 236 else
267 chromevox_injected_ = false; 237 chromevox_injected_ = false;
268 } 238 }
269 } 239 }
270 #endif 240 #endif
OLDNEW
« no previous file with comments | « chrome/browser/guest_view/web_view/chrome_web_view_guest_delegate.h ('k') | extensions/browser/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698