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 "extensions/browser/guest_view/mime_handler_view/mime_handler_view_gues
t.h" | 5 #include "extensions/browser/guest_view/mime_handler_view/mime_handler_view_gues
t.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/strings/stringprintf.h" | 9 #include "base/strings/stringprintf.h" |
10 #include "components/guest_view/common/guest_view_constants.h" | 10 #include "components/guest_view/common/guest_view_constants.h" |
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
206 // If we're an embedded plugin we drop pinch-gestures to avoid zooming the | 206 // If we're an embedded plugin we drop pinch-gestures to avoid zooming the |
207 // guest. | 207 // guest. |
208 return !is_full_page_plugin(); | 208 return !is_full_page_plugin(); |
209 } | 209 } |
210 return false; | 210 return false; |
211 } | 211 } |
212 | 212 |
213 content::JavaScriptDialogManager* | 213 content::JavaScriptDialogManager* |
214 MimeHandlerViewGuest::GetJavaScriptDialogManager( | 214 MimeHandlerViewGuest::GetJavaScriptDialogManager( |
215 WebContents* source) { | 215 WebContents* source) { |
| 216 // WebContentsDelegates often service multiple WebContentses, and use the |
| 217 // WebContents* parameter to tell which WebContents made the request. If we |
| 218 // pass in our own pointer to the delegate call, the delegate will be asked, |
| 219 // "What's the JavaScriptDialogManager of this WebContents for which you are |
| 220 // not a delegate?" And it won't be able to answer that. |
| 221 // |
| 222 // So we pretend to be our owner WebContents, but only for the request to |
| 223 // obtain the JavaScriptDialogManager. During calls to the |
| 224 // JavaScriptDialogManager we will be honest about who we are. |
216 return owner_web_contents()->GetDelegate()->GetJavaScriptDialogManager( | 225 return owner_web_contents()->GetDelegate()->GetJavaScriptDialogManager( |
217 web_contents()); | 226 owner_web_contents()); |
218 } | 227 } |
219 | 228 |
220 bool MimeHandlerViewGuest::SaveFrame(const GURL& url, | 229 bool MimeHandlerViewGuest::SaveFrame(const GURL& url, |
221 const content::Referrer& referrer) { | 230 const content::Referrer& referrer) { |
222 if (!attached()) | 231 if (!attached()) |
223 return false; | 232 return false; |
224 | 233 |
225 embedder_web_contents()->SaveFrame(stream_->stream_info()->original_url, | 234 embedder_web_contents()->SaveFrame(stream_->stream_info()->original_url, |
226 referrer); | 235 referrer); |
227 return true; | 236 return true; |
228 } | 237 } |
229 | 238 |
230 void MimeHandlerViewGuest::DocumentOnLoadCompletedInMainFrame() { | 239 void MimeHandlerViewGuest::DocumentOnLoadCompletedInMainFrame() { |
231 // Assume the embedder WebContents is valid here. | 240 // Assume the embedder WebContents is valid here. |
232 DCHECK(embedder_web_contents()); | 241 DCHECK(embedder_web_contents()); |
233 | 242 |
234 embedder_web_contents()->Send( | 243 embedder_web_contents()->Send( |
235 new ExtensionsGuestViewMsg_MimeHandlerViewGuestOnLoadCompleted( | 244 new ExtensionsGuestViewMsg_MimeHandlerViewGuestOnLoadCompleted( |
236 element_instance_id())); | 245 element_instance_id())); |
237 } | 246 } |
238 | 247 |
239 base::WeakPtr<StreamContainer> MimeHandlerViewGuest::GetStream() const { | 248 base::WeakPtr<StreamContainer> MimeHandlerViewGuest::GetStream() const { |
240 if (!stream_) | 249 if (!stream_) |
241 return base::WeakPtr<StreamContainer>(); | 250 return base::WeakPtr<StreamContainer>(); |
242 return stream_->GetWeakPtr(); | 251 return stream_->GetWeakPtr(); |
243 } | 252 } |
244 | 253 |
245 } // namespace extensions | 254 } // namespace extensions |
OLD | NEW |