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

Side by Side Diff: webkit/port/bindings/v8/ScriptController.h

Issue 40132: Refactor v8 extensions to make registration avoid having to use ChromiumBridg... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2008, Google Inc. 1 // Copyright 2008, Google Inc.
2 // All rights reserved. 2 // All rights reserved.
3 // 3 //
4 // Redistribution and use in source and binary forms, with or without 4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions are 5 // modification, are permitted provided that the following conditions are
6 // met: 6 // met:
7 // 7 //
8 // * Redistributions of source code must retain the above copyright 8 // * Redistributions of source code must retain the above copyright
9 // notice, this list of conditions and the following disclaimer. 9 // notice, this list of conditions and the following disclaimer.
10 // * Redistributions in binary form must reproduce the above 10 // * Redistributions in binary form must reproduce the above
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
204 // Check whether it is safe to access a frame in another domain. 204 // Check whether it is safe to access a frame in another domain.
205 static bool isSafeScript(Frame* target); 205 static bool isSafeScript(Frame* target);
206 206
207 // Pass command-line flags to the JS engine 207 // Pass command-line flags to the JS engine
208 static void setFlags(const char* str, int length); 208 static void setFlags(const char* str, int length);
209 209
210 // Protect and unprotect the JS wrapper from garbage collected. 210 // Protect and unprotect the JS wrapper from garbage collected.
211 static void gcProtectJSWrapper(void* object); 211 static void gcProtectJSWrapper(void* object);
212 static void gcUnprotectJSWrapper(void* object); 212 static void gcUnprotectJSWrapper(void* object);
213 213
214 // Get/Set RecordPlaybackMode flag.
215 // This is a special mode where JS helps the browser implement
216 // playback/record mode. Generally, in this mode, some functions
217 // of client-side randomness are removed. For example, in
218 // this mode Math.random() and Date.getTime() may not return
219 // values which vary.
220 static bool RecordPlaybackMode() { return m_recordPlaybackMode; }
221 static void setRecordPlaybackMode(bool value) { m_recordPlaybackMode = value ; }
222
223 // Set/Get ShouldExposeGCController flag.
224 // Some WebKit layout test need window.GCController.collect() to
225 // trigger GC, this flag lets the binding code expose
226 // window.GCController.collect() to the JavaScript code.
227 //
228 // GCController.collect() needs V8 engine expose gc() function by passing
229 // '--expose-gc' flag to the engine.
230 static bool shouldExposeGCController() {
231 return m_shouldExposeGCController;
232 }
233 static void setShouldExposeGCController(bool value) {
234 m_shouldExposeGCController = value;
235 }
236
237 void finishedWithEvent(Event*); 214 void finishedWithEvent(Event*);
238 void setEventHandlerLineno(int lineno); 215 void setEventHandlerLineno(int lineno);
239 216
240 void setProcessingTimerCallback(bool b) { m_processingTimerCallback = b; } 217 void setProcessingTimerCallback(bool b) { m_processingTimerCallback = b; }
241 bool processingUserGesture() const; 218 bool processingUserGesture() const;
242 219
243 void setPaused(bool b) { m_paused = b; } 220 void setPaused(bool b) { m_paused = b; }
244 bool isPaused() const { return m_paused; } 221 bool isPaused() const { return m_paused; }
245 222
246 const String* sourceURL() const { return m_sourceURL; } // 0 if we are not e valuating any script 223 const String* sourceURL() const { return m_sourceURL; } // 0 if we are not e valuating any script
247 224
248 void clearWindowShell(); 225 void clearWindowShell();
249 void updateDocument(); 226 void updateDocument();
250 227
251 void updateSecurityOrigin(); 228 void updateSecurityOrigin();
252 void clearScriptObjects(); 229 void clearScriptObjects();
253 void updatePlatformScriptObjects(); 230 void updatePlatformScriptObjects();
254 void cleanupScriptObjectsForPlugin(void*); 231 void cleanupScriptObjectsForPlugin(void*);
255 232
256 #if ENABLE(NETSCAPE_PLUGIN_API) 233 #if ENABLE(NETSCAPE_PLUGIN_API)
257 NPObject* createScriptObjectForPluginElement(HTMLPlugInElement*); 234 NPObject* createScriptObjectForPluginElement(HTMLPlugInElement*);
258 NPObject* windowScriptNPObject(); 235 NPObject* windowScriptNPObject();
259 #endif 236 #endif
260 237
261 private: 238 private:
262 static bool m_recordPlaybackMode;
263 static bool m_shouldExposeGCController;
264
265 Frame* m_frame; 239 Frame* m_frame;
266 const String* m_sourceURL; 240 const String* m_sourceURL;
267 241
268 bool m_processingTimerCallback; 242 bool m_processingTimerCallback;
269 bool m_paused; 243 bool m_paused;
270 244
271 OwnPtr<V8Proxy> m_proxy; 245 OwnPtr<V8Proxy> m_proxy;
272 typedef HashMap<void*, NPObject*> PluginObjectMap; 246 typedef HashMap<void*, NPObject*> PluginObjectMap;
273 247
274 // A mapping between Widgets and their corresponding script object. 248 // A mapping between Widgets and their corresponding script object.
275 // This list is used so that when the plugin dies, we can immediately 249 // This list is used so that when the plugin dies, we can immediately
276 // invalidate all sub-objects which are associated with that plugin. 250 // invalidate all sub-objects which are associated with that plugin.
277 // The frame keeps a NPObject reference for each item on the list. 251 // The frame keeps a NPObject reference for each item on the list.
278 PluginObjectMap m_pluginObjects; 252 PluginObjectMap m_pluginObjects;
279 #if ENABLE(NETSCAPE_PLUGIN_API) 253 #if ENABLE(NETSCAPE_PLUGIN_API)
280 NPObject* m_windowScriptNPObject; 254 NPObject* m_windowScriptNPObject;
281 #endif 255 #endif
282 }; 256 };
283 257
284 } // namespace WebCore 258 } // namespace WebCore
285 259
286 #endif // ScriptController_h 260 #endif // ScriptController_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698