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

Side by Side Diff: chrome/browser/guest_view/guest_view_base.cc

Issue 301303003: GuestView: Move Disable Drag and Drop Out to Chrome (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@change_browser_plugin_guest_delegate_lifetime
Patch Set: Created 6 years, 6 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 #include "chrome/browser/guest_view/guest_view_base.h" 5 #include "chrome/browser/guest_view/guest_view_base.h"
6 6
7 #include "base/lazy_instance.h" 7 #include "base/lazy_instance.h"
8 #include "base/strings/utf_string_conversions.h"
8 #include "chrome/browser/guest_view/ad_view/ad_view_guest.h" 9 #include "chrome/browser/guest_view/ad_view/ad_view_guest.h"
9 #include "chrome/browser/guest_view/guest_view_constants.h" 10 #include "chrome/browser/guest_view/guest_view_constants.h"
10 #include "chrome/browser/guest_view/guest_view_manager.h" 11 #include "chrome/browser/guest_view/guest_view_manager.h"
11 #include "chrome/browser/guest_view/web_view/web_view_guest.h" 12 #include "chrome/browser/guest_view/web_view/web_view_guest.h"
12 #include "chrome/browser/profiles/profile.h" 13 #include "chrome/browser/profiles/profile.h"
13 #include "chrome/common/content_settings.h" 14 #include "chrome/common/content_settings.h"
15 #include "content/public/browser/render_frame_host.h"
14 #include "content/public/browser/render_process_host.h" 16 #include "content/public/browser/render_process_host.h"
17 #include "content/public/browser/render_view_host.h"
15 #include "content/public/browser/web_contents.h" 18 #include "content/public/browser/web_contents.h"
16 #include "content/public/common/url_constants.h" 19 #include "content/public/common/url_constants.h"
17 #include "extensions/browser/event_router.h" 20 #include "extensions/browser/event_router.h"
18 #include "net/base/escape.h" 21 #include "net/base/escape.h"
19 #include "third_party/WebKit/public/web/WebInputEvent.h" 22 #include "third_party/WebKit/public/web/WebInputEvent.h"
20 23
21 using content::WebContents; 24 using content::WebContents;
22 25
23 namespace { 26 namespace {
24 27
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after
216 return; 219 return;
217 } 220 }
218 opener_ = base::WeakPtr<GuestViewBase>(); 221 opener_ = base::WeakPtr<GuestViewBase>();
219 } 222 }
220 223
221 void GuestViewBase::RegisterDestructionCallback( 224 void GuestViewBase::RegisterDestructionCallback(
222 const DestructionCallback& callback) { 225 const DestructionCallback& callback) {
223 destruction_callback_ = callback; 226 destruction_callback_ = callback;
224 } 227 }
225 228
229 void GuestViewBase::DidStopLoading(content::RenderViewHost* render_view_host) {
230 // Disable drag-and-drop by default. Derived classes that override this method
lazyboy 2014/05/30 00:30:52 Don't think this is a good way of doing this: "you
Fady Samuel 2014/05/30 01:53:21 You got the logic reversed. This disables DND by d
lazyboy 2014/05/30 03:11:40 Yeah I misread. But my concern is still the same,
231 // can avoid the script injection, thereby enabling drag-and-drop.
232 const char script[] = "window.addEventListener('dragstart', function() { "
233 " window.event.preventDefault(); "
234 "});";
235 render_view_host->GetMainFrame()->ExecuteJavaScript(
236 base::ASCIIToUTF16(script));
237 }
238
226 void GuestViewBase::WebContentsDestroyed() { 239 void GuestViewBase::WebContentsDestroyed() {
227 delete this; 240 delete this;
228 } 241 }
229 242
230 bool GuestViewBase::ShouldFocusPageAfterCrash() { 243 bool GuestViewBase::ShouldFocusPageAfterCrash() {
231 // Focus is managed elsewhere. 244 // Focus is managed elsewhere.
232 return false; 245 return false;
233 } 246 }
234 247
235 bool GuestViewBase::PreHandleGestureEvent(content::WebContents* source, 248 bool GuestViewBase::PreHandleGestureEvent(content::WebContents* source,
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
282 295
283 void GuestViewBase::SendQueuedEvents() { 296 void GuestViewBase::SendQueuedEvents() {
284 if (!attached()) 297 if (!attached())
285 return; 298 return;
286 while (!pending_events_.empty()) { 299 while (!pending_events_.empty()) {
287 linked_ptr<Event> event_ptr = pending_events_.front(); 300 linked_ptr<Event> event_ptr = pending_events_.front();
288 pending_events_.pop_front(); 301 pending_events_.pop_front();
289 DispatchEvent(event_ptr.release()); 302 DispatchEvent(event_ptr.release());
290 } 303 }
291 } 304 }
OLDNEW
« no previous file with comments | « chrome/browser/guest_view/guest_view_base.h ('k') | chrome/browser/guest_view/web_view/web_view_guest.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698