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 | 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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |