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

Side by Side Diff: chrome/browser/extensions/api/webview/webview_api.h

Issue 257333002: Drive extension functions from ExtensionFunction::Run. The (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix comment Created 6 years, 7 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) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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 #ifndef CHROME_BROWSER_EXTENSIONS_API_WEBVIEW_WEBVIEW_API_H_ 5 #ifndef CHROME_BROWSER_EXTENSIONS_API_WEBVIEW_WEBVIEW_API_H_
6 #define CHROME_BROWSER_EXTENSIONS_API_WEBVIEW_WEBVIEW_API_H_ 6 #define CHROME_BROWSER_EXTENSIONS_API_WEBVIEW_WEBVIEW_API_H_
7 7
8 #include "chrome/browser/extensions/api/capture_web_contents_function.h" 8 #include "chrome/browser/extensions/api/capture_web_contents_function.h"
9 #include "chrome/browser/extensions/api/execute_code_function.h" 9 #include "chrome/browser/extensions/api/execute_code_function.h"
10 #include "chrome/browser/guest_view/web_view/web_view_find_helper.h" 10 #include "chrome/browser/guest_view/web_view/web_view_find_helper.h"
11 #include "chrome/browser/guest_view/web_view/web_view_guest.h" 11 #include "chrome/browser/guest_view/web_view/web_view_guest.h"
12 12
13 // WARNING: Webview could be loaded in an unblessed context, thus any new 13 // WARNING: Webview could be loaded in an unblessed context, thus any new
14 // APIs must extend WebviewExtensionFunction/WebviewExecuteCodeFunction which 14 // APIs must extend WebviewExtensionFunction/WebviewExecuteCodeFunction which
15 // do a process ID check to prevent abuse by normal renderer processes. 15 // do a process ID check to prevent abuse by normal renderer processes.
16 // TODO(guohui): refactor WebviewExecuteCodeFunction to also extend 16 // TODO(guohui): refactor WebviewExecuteCodeFunction to also extend
17 // WebviewExtensionFunction. 17 // WebviewExtensionFunction.
18 namespace extensions { 18 namespace extensions {
19 19
20 // An abstract base class for async webview APIs. It does a process ID check 20 // An abstract base class for async webview APIs. It does a process ID check
21 // in RunImpl, and then calls RunImplSafe which must be overriden by all 21 // in RunAsync, and then calls RunAsyncSafe which must be overriden by all
22 // subclasses. 22 // subclasses.
23 class WebviewExtensionFunction : public AsyncExtensionFunction { 23 class WebviewExtensionFunction : public AsyncExtensionFunction {
24 public: 24 public:
25 WebviewExtensionFunction() {} 25 WebviewExtensionFunction() {}
26 26
27 protected: 27 protected:
28 virtual ~WebviewExtensionFunction() {} 28 virtual ~WebviewExtensionFunction() {}
29 29
30 // ExtensionFunction implementation. 30 // ExtensionFunction implementation.
31 virtual bool RunImpl() OVERRIDE FINAL; 31 virtual bool RunAsync() OVERRIDE FINAL;
32 32
33 private: 33 private:
34 virtual bool RunImplSafe(WebViewGuest* guest) = 0; 34 virtual bool RunAsyncSafe(WebViewGuest* guest) = 0;
35 }; 35 };
36 36
37 class WebviewContextMenusCreateFunction : public AsyncExtensionFunction { 37 class WebviewContextMenusCreateFunction : public AsyncExtensionFunction {
38 public: 38 public:
39 DECLARE_EXTENSION_FUNCTION("webview.contextMenusCreate", 39 DECLARE_EXTENSION_FUNCTION("webview.contextMenusCreate",
40 WEBVIEW_CONTEXTMENUSCREATE); 40 WEBVIEW_CONTEXTMENUSCREATE);
41 WebviewContextMenusCreateFunction() {} 41 WebviewContextMenusCreateFunction() {}
42 42
43 protected: 43 protected:
44 virtual ~WebviewContextMenusCreateFunction() {} 44 virtual ~WebviewContextMenusCreateFunction() {}
45 45
46 // ExtensionFunction implementation. 46 // ExtensionFunction implementation.
47 virtual bool RunImpl() OVERRIDE; 47 virtual bool RunAsync() OVERRIDE;
48 48
49 private: 49 private:
50 DISALLOW_COPY_AND_ASSIGN(WebviewContextMenusCreateFunction); 50 DISALLOW_COPY_AND_ASSIGN(WebviewContextMenusCreateFunction);
51 }; 51 };
52 52
53 class WebviewContextMenusUpdateFunction : public AsyncExtensionFunction { 53 class WebviewContextMenusUpdateFunction : public AsyncExtensionFunction {
54 public: 54 public:
55 DECLARE_EXTENSION_FUNCTION("webview.contextMenusUpdate", 55 DECLARE_EXTENSION_FUNCTION("webview.contextMenusUpdate",
56 WEBVIEW_CONTEXTMENUSUPDATE); 56 WEBVIEW_CONTEXTMENUSUPDATE);
57 WebviewContextMenusUpdateFunction() {} 57 WebviewContextMenusUpdateFunction() {}
58 58
59 protected: 59 protected:
60 virtual ~WebviewContextMenusUpdateFunction() {} 60 virtual ~WebviewContextMenusUpdateFunction() {}
61 61
62 // ExtensionFunction implementation. 62 // ExtensionFunction implementation.
63 virtual bool RunImpl() OVERRIDE; 63 virtual bool RunAsync() OVERRIDE;
64 64
65 private: 65 private:
66 DISALLOW_COPY_AND_ASSIGN(WebviewContextMenusUpdateFunction); 66 DISALLOW_COPY_AND_ASSIGN(WebviewContextMenusUpdateFunction);
67 }; 67 };
68 68
69 class WebviewContextMenusRemoveFunction : public AsyncExtensionFunction { 69 class WebviewContextMenusRemoveFunction : public AsyncExtensionFunction {
70 public: 70 public:
71 DECLARE_EXTENSION_FUNCTION("webview.contextMenusRemove", 71 DECLARE_EXTENSION_FUNCTION("webview.contextMenusRemove",
72 WEBVIEW_CONTEXTMENUSREMOVE); 72 WEBVIEW_CONTEXTMENUSREMOVE);
73 WebviewContextMenusRemoveFunction() {} 73 WebviewContextMenusRemoveFunction() {}
74 74
75 protected: 75 protected:
76 virtual ~WebviewContextMenusRemoveFunction() {} 76 virtual ~WebviewContextMenusRemoveFunction() {}
77 77
78 // ExtensionFunction implementation. 78 // ExtensionFunction implementation.
79 virtual bool RunImpl() OVERRIDE; 79 virtual bool RunAsync() OVERRIDE;
80 80
81 private: 81 private:
82 DISALLOW_COPY_AND_ASSIGN(WebviewContextMenusRemoveFunction); 82 DISALLOW_COPY_AND_ASSIGN(WebviewContextMenusRemoveFunction);
83 }; 83 };
84 84
85 class WebviewContextMenusRemoveAllFunction : public AsyncExtensionFunction { 85 class WebviewContextMenusRemoveAllFunction : public AsyncExtensionFunction {
86 public: 86 public:
87 DECLARE_EXTENSION_FUNCTION("webview.contextMenusRemoveAll", 87 DECLARE_EXTENSION_FUNCTION("webview.contextMenusRemoveAll",
88 WEBVIEW_CONTEXTMENUSREMOVEALL); 88 WEBVIEW_CONTEXTMENUSREMOVEALL);
89 WebviewContextMenusRemoveAllFunction() {} 89 WebviewContextMenusRemoveAllFunction() {}
90 90
91 protected: 91 protected:
92 virtual ~WebviewContextMenusRemoveAllFunction() {} 92 virtual ~WebviewContextMenusRemoveAllFunction() {}
93 93
94 // ExtensionFunction implementation. 94 // ExtensionFunction implementation.
95 virtual bool RunImpl() OVERRIDE; 95 virtual bool RunAsync() OVERRIDE;
96 96
97 private: 97 private:
98 DISALLOW_COPY_AND_ASSIGN(WebviewContextMenusRemoveAllFunction); 98 DISALLOW_COPY_AND_ASSIGN(WebviewContextMenusRemoveAllFunction);
99 }; 99 };
100 100
101 class WebviewClearDataFunction : public WebviewExtensionFunction { 101 class WebviewClearDataFunction : public WebviewExtensionFunction {
102 public: 102 public:
103 DECLARE_EXTENSION_FUNCTION("webview.clearData", WEBVIEW_CLEARDATA); 103 DECLARE_EXTENSION_FUNCTION("webview.clearData", WEBVIEW_CLEARDATA);
104 104
105 WebviewClearDataFunction(); 105 WebviewClearDataFunction();
106 106
107 protected: 107 protected:
108 virtual ~WebviewClearDataFunction(); 108 virtual ~WebviewClearDataFunction();
109 109
110 private: 110 private:
111 // WebviewExtensionFunction implementation. 111 // WebviewExtensionFunction implementation.
112 virtual bool RunImplSafe(WebViewGuest* guest) OVERRIDE; 112 virtual bool RunAsyncSafe(WebViewGuest* guest) OVERRIDE;
113 113
114 uint32 GetRemovalMask(); 114 uint32 GetRemovalMask();
115 void ClearDataDone(); 115 void ClearDataDone();
116 116
117 // Removal start time. 117 // Removal start time.
118 base::Time remove_since_; 118 base::Time remove_since_;
119 // Removal mask, corresponds to StoragePartition::RemoveDataMask enum. 119 // Removal mask, corresponds to StoragePartition::RemoveDataMask enum.
120 uint32 remove_mask_; 120 uint32 remove_mask_;
121 // Tracks any data related or parse errors. 121 // Tracks any data related or parse errors.
122 bool bad_message_; 122 bool bad_message_;
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
207 class WebviewSetZoomFunction : public WebviewExtensionFunction { 207 class WebviewSetZoomFunction : public WebviewExtensionFunction {
208 public: 208 public:
209 DECLARE_EXTENSION_FUNCTION("webview.setZoom", WEBVIEW_SETZOOM); 209 DECLARE_EXTENSION_FUNCTION("webview.setZoom", WEBVIEW_SETZOOM);
210 210
211 WebviewSetZoomFunction(); 211 WebviewSetZoomFunction();
212 212
213 protected: 213 protected:
214 virtual ~WebviewSetZoomFunction(); 214 virtual ~WebviewSetZoomFunction();
215 215
216 private: 216 private:
217 virtual bool RunImplSafe(WebViewGuest* guest) OVERRIDE; 217 virtual bool RunAsyncSafe(WebViewGuest* guest) OVERRIDE;
218 218
219 DISALLOW_COPY_AND_ASSIGN(WebviewSetZoomFunction); 219 DISALLOW_COPY_AND_ASSIGN(WebviewSetZoomFunction);
220 }; 220 };
221 221
222 class WebviewGetZoomFunction : public WebviewExtensionFunction { 222 class WebviewGetZoomFunction : public WebviewExtensionFunction {
223 public: 223 public:
224 DECLARE_EXTENSION_FUNCTION("webview.getZoom", WEBVIEW_GETZOOM); 224 DECLARE_EXTENSION_FUNCTION("webview.getZoom", WEBVIEW_GETZOOM);
225 225
226 WebviewGetZoomFunction(); 226 WebviewGetZoomFunction();
227 227
228 protected: 228 protected:
229 virtual ~WebviewGetZoomFunction(); 229 virtual ~WebviewGetZoomFunction();
230 230
231 private: 231 private:
232 virtual bool RunImplSafe(WebViewGuest* guest) OVERRIDE; 232 virtual bool RunAsyncSafe(WebViewGuest* guest) OVERRIDE;
233 233
234 DISALLOW_COPY_AND_ASSIGN(WebviewGetZoomFunction); 234 DISALLOW_COPY_AND_ASSIGN(WebviewGetZoomFunction);
235 }; 235 };
236 236
237 class WebviewFindFunction : public WebviewExtensionFunction { 237 class WebviewFindFunction : public WebviewExtensionFunction {
238 public: 238 public:
239 DECLARE_EXTENSION_FUNCTION("webview.find", WEBVIEW_FIND); 239 DECLARE_EXTENSION_FUNCTION("webview.find", WEBVIEW_FIND);
240 240
241 WebviewFindFunction(); 241 WebviewFindFunction();
242 242
243 // Exposes SendResponse() for use by WebviewFindHelper. 243 // Exposes SendResponse() for use by WebviewFindHelper.
244 using WebviewExtensionFunction::SendResponse; 244 using WebviewExtensionFunction::SendResponse;
245 245
246 protected: 246 protected:
247 virtual ~WebviewFindFunction(); 247 virtual ~WebviewFindFunction();
248 248
249 private: 249 private:
250 // WebviewExtensionFunction implementation. 250 // WebviewExtensionFunction implementation.
251 virtual bool RunImplSafe(WebViewGuest* guest) OVERRIDE; 251 virtual bool RunAsyncSafe(WebViewGuest* guest) OVERRIDE;
252 252
253 DISALLOW_COPY_AND_ASSIGN(WebviewFindFunction); 253 DISALLOW_COPY_AND_ASSIGN(WebviewFindFunction);
254 }; 254 };
255 255
256 class WebviewStopFindingFunction : public WebviewExtensionFunction { 256 class WebviewStopFindingFunction : public WebviewExtensionFunction {
257 public: 257 public:
258 DECLARE_EXTENSION_FUNCTION("webview.stopFinding", WEBVIEW_STOPFINDING); 258 DECLARE_EXTENSION_FUNCTION("webview.stopFinding", WEBVIEW_STOPFINDING);
259 259
260 WebviewStopFindingFunction(); 260 WebviewStopFindingFunction();
261 261
262 protected: 262 protected:
263 virtual ~WebviewStopFindingFunction(); 263 virtual ~WebviewStopFindingFunction();
264 264
265 private: 265 private:
266 // WebviewExtensionFunction implementation. 266 // WebviewExtensionFunction implementation.
267 virtual bool RunImplSafe(WebViewGuest* guest) OVERRIDE; 267 virtual bool RunAsyncSafe(WebViewGuest* guest) OVERRIDE;
268 268
269 DISALLOW_COPY_AND_ASSIGN(WebviewStopFindingFunction); 269 DISALLOW_COPY_AND_ASSIGN(WebviewStopFindingFunction);
270 }; 270 };
271 271
272 class WebviewGoFunction : public WebviewExtensionFunction { 272 class WebviewGoFunction : public WebviewExtensionFunction {
273 public: 273 public:
274 DECLARE_EXTENSION_FUNCTION("webview.go", WEBVIEW_GO); 274 DECLARE_EXTENSION_FUNCTION("webview.go", WEBVIEW_GO);
275 275
276 WebviewGoFunction(); 276 WebviewGoFunction();
277 277
278 protected: 278 protected:
279 virtual ~WebviewGoFunction(); 279 virtual ~WebviewGoFunction();
280 280
281 private: 281 private:
282 // WebviewExtensionFunction implementation. 282 // WebviewExtensionFunction implementation.
283 virtual bool RunImplSafe(WebViewGuest* guest) OVERRIDE; 283 virtual bool RunAsyncSafe(WebViewGuest* guest) OVERRIDE;
284 284
285 DISALLOW_COPY_AND_ASSIGN(WebviewGoFunction); 285 DISALLOW_COPY_AND_ASSIGN(WebviewGoFunction);
286 }; 286 };
287 287
288 class WebviewReloadFunction : public WebviewExtensionFunction { 288 class WebviewReloadFunction : public WebviewExtensionFunction {
289 public: 289 public:
290 DECLARE_EXTENSION_FUNCTION("webview.reload", WEBVIEW_RELOAD); 290 DECLARE_EXTENSION_FUNCTION("webview.reload", WEBVIEW_RELOAD);
291 291
292 WebviewReloadFunction(); 292 WebviewReloadFunction();
293 293
294 protected: 294 protected:
295 virtual ~WebviewReloadFunction(); 295 virtual ~WebviewReloadFunction();
296 296
297 private: 297 private:
298 // WebviewExtensionFunction implementation. 298 // WebviewExtensionFunction implementation.
299 virtual bool RunImplSafe(WebViewGuest* guest) OVERRIDE; 299 virtual bool RunAsyncSafe(WebViewGuest* guest) OVERRIDE;
300 300
301 DISALLOW_COPY_AND_ASSIGN(WebviewReloadFunction); 301 DISALLOW_COPY_AND_ASSIGN(WebviewReloadFunction);
302 }; 302 };
303 303
304 class WebviewSetPermissionFunction : public WebviewExtensionFunction { 304 class WebviewSetPermissionFunction : public WebviewExtensionFunction {
305 public: 305 public:
306 DECLARE_EXTENSION_FUNCTION("webview.setPermission", WEBVIEW_SETPERMISSION); 306 DECLARE_EXTENSION_FUNCTION("webview.setPermission", WEBVIEW_SETPERMISSION);
307 307
308 WebviewSetPermissionFunction(); 308 WebviewSetPermissionFunction();
309 309
310 protected: 310 protected:
311 virtual ~WebviewSetPermissionFunction(); 311 virtual ~WebviewSetPermissionFunction();
312 312
313 private: 313 private:
314 // WebviewExtensionFunction implementation. 314 // WebviewExtensionFunction implementation.
315 virtual bool RunImplSafe(WebViewGuest* guest) OVERRIDE; 315 virtual bool RunAsyncSafe(WebViewGuest* guest) OVERRIDE;
316 316
317 DISALLOW_COPY_AND_ASSIGN(WebviewSetPermissionFunction); 317 DISALLOW_COPY_AND_ASSIGN(WebviewSetPermissionFunction);
318 }; 318 };
319 319
320 class WebviewOverrideUserAgentFunction: public WebviewExtensionFunction { 320 class WebviewOverrideUserAgentFunction: public WebviewExtensionFunction {
321 public: 321 public:
322 DECLARE_EXTENSION_FUNCTION("webview.overrideUserAgent", 322 DECLARE_EXTENSION_FUNCTION("webview.overrideUserAgent",
323 WEBVIEW_OVERRIDEUSERAGENT); 323 WEBVIEW_OVERRIDEUSERAGENT);
324 324
325 WebviewOverrideUserAgentFunction(); 325 WebviewOverrideUserAgentFunction();
326 326
327 protected: 327 protected:
328 virtual ~WebviewOverrideUserAgentFunction(); 328 virtual ~WebviewOverrideUserAgentFunction();
329 329
330 private: 330 private:
331 // WebviewExtensionFunction implementation. 331 // WebviewExtensionFunction implementation.
332 virtual bool RunImplSafe(WebViewGuest* guest) OVERRIDE; 332 virtual bool RunAsyncSafe(WebViewGuest* guest) OVERRIDE;
333 333
334 DISALLOW_COPY_AND_ASSIGN(WebviewOverrideUserAgentFunction); 334 DISALLOW_COPY_AND_ASSIGN(WebviewOverrideUserAgentFunction);
335 }; 335 };
336 336
337 class WebviewStopFunction : public WebviewExtensionFunction { 337 class WebviewStopFunction : public WebviewExtensionFunction {
338 public: 338 public:
339 DECLARE_EXTENSION_FUNCTION("webview.stop", WEBVIEW_STOP); 339 DECLARE_EXTENSION_FUNCTION("webview.stop", WEBVIEW_STOP);
340 340
341 WebviewStopFunction(); 341 WebviewStopFunction();
342 342
343 protected: 343 protected:
344 virtual ~WebviewStopFunction(); 344 virtual ~WebviewStopFunction();
345 345
346 private: 346 private:
347 // WebviewExtensionFunction implementation. 347 // WebviewExtensionFunction implementation.
348 virtual bool RunImplSafe(WebViewGuest* guest) OVERRIDE; 348 virtual bool RunAsyncSafe(WebViewGuest* guest) OVERRIDE;
349 349
350 DISALLOW_COPY_AND_ASSIGN(WebviewStopFunction); 350 DISALLOW_COPY_AND_ASSIGN(WebviewStopFunction);
351 }; 351 };
352 352
353 class WebviewTerminateFunction : public WebviewExtensionFunction { 353 class WebviewTerminateFunction : public WebviewExtensionFunction {
354 public: 354 public:
355 DECLARE_EXTENSION_FUNCTION("webview.terminate", WEBVIEW_TERMINATE); 355 DECLARE_EXTENSION_FUNCTION("webview.terminate", WEBVIEW_TERMINATE);
356 356
357 WebviewTerminateFunction(); 357 WebviewTerminateFunction();
358 358
359 protected: 359 protected:
360 virtual ~WebviewTerminateFunction(); 360 virtual ~WebviewTerminateFunction();
361 361
362 private: 362 private:
363 // WebviewExtensionFunction implementation. 363 // WebviewExtensionFunction implementation.
364 virtual bool RunImplSafe(WebViewGuest* guest) OVERRIDE; 364 virtual bool RunAsyncSafe(WebViewGuest* guest) OVERRIDE;
365 365
366 DISALLOW_COPY_AND_ASSIGN(WebviewTerminateFunction); 366 DISALLOW_COPY_AND_ASSIGN(WebviewTerminateFunction);
367 }; 367 };
368 368
369 } // namespace extensions 369 } // namespace extensions
370 370
371 #endif // CHROME_BROWSER_EXTENSIONS_API_WEBVIEW_WEBVIEW_API_H_ 371 #endif // CHROME_BROWSER_EXTENSIONS_API_WEBVIEW_WEBVIEW_API_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698