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

Side by Side Diff: content/renderer/cpp_bound_class.h

Issue 25378002: Move the rest of source files from webkit/renderer to content/renderer. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 2 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 CppBoundClass class: 6 CppBoundClass class:
7 This base class serves as a parent for C++ classes designed to be bound to 7 This base class serves as a parent for C++ classes designed to be bound to
8 JavaScript objects. 8 JavaScript objects.
9 9
10 Subclasses should define the constructor to build the property and method 10 Subclasses should define the constructor to build the property and method
11 lists needed to bind this class to a JS object. They should also declare 11 lists needed to bind this class to a JS object. They should also declare
12 and define member variables and methods to be exposed to JS through 12 and define member variables and methods to be exposed to JS through
13 that object. 13 that object.
14 14
15 See cpp_binding_example.{h|cc} for an example. 15 See cpp_binding_example.{h|cc} for an example.
16 */ 16 */
17 17
18 #ifndef WEBKIT_RENDERER_CPP_BOUND_CLASS_H_ 18 #ifndef CONTENT_RENDERER_CPP_BOUND_CLASS_H_
19 #define WEBKIT_RENDERER_CPP_BOUND_CLASS_H_ 19 #define CONTENT_RENDERER_CPP_BOUND_CLASS_H_
20 20
21 #include <map> 21 #include <map>
22 #include <vector> 22 #include <vector>
23 23
24 #include "base/callback.h" 24 #include "base/callback.h"
25 #include "webkit/renderer/cpp_variant.h" 25 #include "content/common/content_export.h"
26 #include "webkit/renderer/webkit_renderer_export.h" 26 #include "content/renderer/cpp_variant.h"
27 27
28 namespace WebKit { 28 namespace WebKit {
29 class WebFrame; 29 class WebFrame;
30 } 30 }
31 31
32 namespace webkit_glue { 32 namespace content {
33 33
34 typedef std::vector<CppVariant> CppArgumentList; 34 typedef std::vector<CppVariant> CppArgumentList;
35 35
36 // CppBoundClass lets you map Javascript method calls and property accesses 36 // CppBoundClass lets you map Javascript method calls and property accesses
37 // directly to C++ method calls and CppVariant* variable access. 37 // directly to C++ method calls and CppVariant* variable access.
38 class WEBKIT_RENDERER_EXPORT CppBoundClass { 38 class CONTENT_EXPORT CppBoundClass {
39 public: 39 public:
40 class PropertyCallback { 40 class PropertyCallback {
41 public: 41 public:
42 virtual ~PropertyCallback() { } 42 virtual ~PropertyCallback() { }
43 43
44 // Sets |value| to the value of the property. Returns false in case of 44 // Sets |value| to the value of the property. Returns false in case of
45 // failure. |value| is always non-NULL. 45 // failure. |value| is always non-NULL.
46 virtual bool GetValue(CppVariant* value) = 0; 46 virtual bool GetValue(CppVariant* value) = 0;
47 47
48 // sets the property value to |value|. Returns false in case of failure. 48 // sets the property value to |value|. Returns false in case of failure.
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 PropertyList properties_; 116 PropertyList properties_;
117 MethodList methods_; 117 MethodList methods_;
118 118
119 // The callback gets invoked when a call is made to an nonexistent method. 119 // The callback gets invoked when a call is made to an nonexistent method.
120 Callback fallback_callback_; 120 Callback fallback_callback_;
121 121
122 private: 122 private:
123 // NPObject callbacks. 123 // NPObject callbacks.
124 friend struct CppNPObject; 124 friend struct CppNPObject;
125 bool HasMethod(NPIdentifier ident) const; 125 bool HasMethod(NPIdentifier ident) const;
126 bool Invoke(NPIdentifier ident, const NPVariant* args, size_t arg_count, 126 bool Invoke(NPIdentifier ident,
127 const NPVariant* args,
128 size_t arg_count,
127 NPVariant* result); 129 NPVariant* result);
128 bool HasProperty(NPIdentifier ident) const; 130 bool HasProperty(NPIdentifier ident) const;
129 bool GetProperty(NPIdentifier ident, NPVariant* result) const; 131 bool GetProperty(NPIdentifier ident, NPVariant* result) const;
130 bool SetProperty(NPIdentifier ident, const NPVariant* value); 132 bool SetProperty(NPIdentifier ident, const NPVariant* value);
131 133
132 // A lazily-initialized CppVariant representing this class. We retain 1 134 // A lazily-initialized CppVariant representing this class. We retain 1
133 // reference to this object, and it is released on deletion. 135 // reference to this object, and it is released on deletion.
134 CppVariant self_variant_; 136 CppVariant self_variant_;
135 137
136 // TODO(wez): Remove once crrev.com/14019005 lands. 138 // TODO(wez): Remove once crrev.com/14019005 lands.
137 bool bound_to_frame_; 139 bool bound_to_frame_;
138 140
139 // Dummy NPP to use to register as owner for NPObjects. 141 // Dummy NPP to use to register as owner for NPObjects.
140 scoped_ptr<NPP_t> npp_; 142 scoped_ptr<NPP_t> npp_;
141 143
142 DISALLOW_COPY_AND_ASSIGN(CppBoundClass); 144 DISALLOW_COPY_AND_ASSIGN(CppBoundClass);
143 }; 145 };
144 146
145 } // namespace webkit_glue 147 } // namespace content
146 148
147 #endif // WEBKIT_RENDERER_CPP_BOUND_CLASS_H_ 149 #endif // CONTENT_RENDERER_CPP_BOUND_CLASS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698