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

Unified Diff: content/browser/browser_plugin/browser_plugin_guest.h

Issue 12086095: Fixed drag and drop into and out of Browser Plugin. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Drag and drop enabled for linux only Created 7 years, 9 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 side-by-side diff with in-line comments
Download patch
Index: content/browser/browser_plugin/browser_plugin_guest.h
diff --git a/content/browser/browser_plugin/browser_plugin_guest.h b/content/browser/browser_plugin/browser_plugin_guest.h
index 1b480e6acfee67497a9939acae438476fbb43a7c..1696a0528573b6bd9226dbedfe26e7d8e5d99c4e 100644
--- a/content/browser/browser_plugin/browser_plugin_guest.h
+++ b/content/browser/browser_plugin/browser_plugin_guest.h
@@ -75,9 +75,11 @@ struct MediaStreamRequest;
// A BrowserPluginGuest can also create a new unattached guest via
// CreateNewWindow. The newly created guest will live in the same partition,
// which means it can share storage and can script this guest.
-class CONTENT_EXPORT BrowserPluginGuest : public NotificationObserver,
- public WebContentsDelegate,
- public WebContentsObserver {
+class CONTENT_EXPORT BrowserPluginGuest
+ : public NotificationObserver,
+ public WebContentsDelegate,
+ public WebContentsObserver,
+ public base::SupportsWeakPtr<BrowserPluginGuest> {
public:
typedef base::Callback<void(bool)> GeolocationCallback;
virtual ~BrowserPluginGuest();
@@ -235,6 +237,15 @@ class CONTENT_EXPORT BrowserPluginGuest : public NotificationObserver,
// |message|.
static bool ShouldForwardToBrowserPluginGuest(const IPC::Message& message);
+ void DragSourceEndedAt(int client_x, int client_y, int screen_x,
+ int screen_y, WebKit::WebDragOperation operation);
+
+ void DragSourceMovedTo(int client_x, int client_y,
+ int screen_x, int screen_y);
+
+ // Called when the drag started by this guest ends at an OS-level.
+ void EndSystemDrag();
+
private:
typedef std::pair<MediaStreamRequest, MediaResponseCallback>
MediaStreamRequestAndCallbackPair;
@@ -290,6 +301,8 @@ class CONTENT_EXPORT BrowserPluginGuest : public NotificationObserver,
const WebDropData& drop_data,
WebKit::WebDragOperationsMask drag_mask,
const gfx::Point& location);
+ // Called when a drag and drop Drop event has taken place inside the guest.
+ void OnDropAck(bool* handled);
// If possible, navigate the guest to |relative_index| entries away from the
// current navigation entry.
virtual void OnGo(int instance_id, int relative_index);
@@ -355,6 +368,7 @@ class CONTENT_EXPORT BrowserPluginGuest : public NotificationObserver,
// Message handlers for messages from guest.
+ void OnDragStopped();
void OnHandleInputEventAck(
WebKit::WebInputEvent::Type event_type,
InputEventAckState ack_result);
@@ -370,9 +384,10 @@ class CONTENT_EXPORT BrowserPluginGuest : public NotificationObserver,
const gfx::Rect& initial_bounds,
bool user_gesture);
void OnShowWidget(int route_id, const gfx::Rect& initial_pos);
+ void OnStartDragging(bool* handled);
// Overriden in tests.
virtual void OnTakeFocus(bool reverse);
- void OnUpdateDragCursor(WebKit::WebDragOperation operation);
+ void OnTargetDrop_ACK(bool* handled);
void OnUpdateFrameName(int frame_id,
bool is_top_level,
const std::string& name);

Powered by Google App Engine
This is Rietveld 408576698