summaryrefslogtreecommitdiffstats
path: root/webkit/glue/npruntime_util.h
blob: 1e27191757f67c473af46ec8d7210956524b1c6e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef WEBKIT_GLUE_NPRUNTIME_UTIL_H_
#define WEBKIT_GLUE_NPRUNTIME_UTIL_H_

#include "third_party/npapi/bindings/npruntime.h"

class Pickle;

namespace WebKit {
class WebDragData;
}

namespace webkit_glue {

// Efficiently serialize/deserialize a NPIdentifier
bool SerializeNPIdentifier(NPIdentifier identifier, Pickle* pickle);
bool DeserializeNPIdentifier(const Pickle& pickle, void** pickle_iter,
                             NPIdentifier* identifier);

// Return true (success) if the given npobj is the current
// drag event in browser dispatch, and is accessible based on context execution
// frames and their security origins and WebKit clipboard access policy. If so,
// return the event id and the clipboard data (WebDragData).
bool GetDragData(NPObject* npobj, int* event_id, WebKit::WebDragData* data);

// Invoke the event access policy checks listed above with
// GetDragData().  No need for clipboard data or event_id outputs, just confirm
// the given npobj is the current & accessible drag event.
bool IsDragEvent(NPObject* npobj);

}  // namespace webkit_glue

#endif  // WEBKIT_GLUE_NPRUNTIME_UTIL_H_