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

Side by Side Diff: third_party/WebKit/Source/bindings/core/v8/ScriptController.h

Issue 1483733002: Remove support for NPObjects. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 12 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2008, 2009 Google Inc. All rights reserved. 2 * Copyright (C) 2008, 2009 Google Inc. 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 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
108 bool executeScriptIfJavaScriptURL(const KURL&); 108 bool executeScriptIfJavaScriptURL(const KURL&);
109 109
110 v8::MaybeLocal<v8::Value> callFunction(v8::Local<v8::Function>, v8::Local<v8 ::Value>, int argc, v8::Local<v8::Value> argv[]); 110 v8::MaybeLocal<v8::Value> callFunction(v8::Local<v8::Function>, v8::Local<v8 ::Value>, int argc, v8::Local<v8::Value> argv[]);
111 static v8::MaybeLocal<v8::Value> callFunction(ExecutionContext*, v8::Local<v 8::Function>, v8::Local<v8::Value> receiver, int argc, v8::Local<v8::Value> info [], v8::Isolate*); 111 static v8::MaybeLocal<v8::Value> callFunction(ExecutionContext*, v8::Local<v 8::Function>, v8::Local<v8::Value> receiver, int argc, v8::Local<v8::Value> info [], v8::Isolate*);
112 112
113 // Returns true if the current world is isolated, and has its own Content 113 // Returns true if the current world is isolated, and has its own Content
114 // Security Policy. In this case, the policy of the main world should be 114 // Security Policy. In this case, the policy of the main world should be
115 // ignored when evaluating resources injected into the DOM. 115 // ignored when evaluating resources injected into the DOM.
116 bool shouldBypassMainWorldCSP(); 116 bool shouldBypassMainWorldCSP();
117 117
118 // Creates a property of the global object of a frame.
119 bool bindToWindowObject(LocalFrame*, const String& key, NPObject*);
120
121 PassRefPtr<SharedPersistent<v8::Object>> createPluginWrapper(Widget*); 118 PassRefPtr<SharedPersistent<v8::Object>> createPluginWrapper(Widget*);
122 119
123 void enableEval(); 120 void enableEval();
124 void disableEval(const String& errorMessage); 121 void disableEval(const String& errorMessage);
125 122
126 static bool canAccessFromCurrentOrigin(LocalFrame*); 123 static bool canAccessFromCurrentOrigin(LocalFrame*);
127 124
128 static void setCaptureCallStackForUncaughtExceptions(v8::Isolate*, bool); 125 static void setCaptureCallStackForUncaughtExceptions(v8::Isolate*, bool);
129 void collectIsolatedContexts(Vector<std::pair<ScriptState*, SecurityOrigin*> >&); 126 void collectIsolatedContexts(Vector<std::pair<ScriptState*, SecurityOrigin*> >&);
130 127
131 bool canExecuteScripts(ReasonForCallingCanExecuteScripts); 128 bool canExecuteScripts(ReasonForCallingCanExecuteScripts);
132 129
133 TextPosition eventHandlerPosition() const; 130 TextPosition eventHandlerPosition() const;
134 131
135 void clearWindowProxy(); 132 void clearWindowProxy();
136 void updateDocument(); 133 void updateDocument();
137 134
138 void namedItemAdded(HTMLDocument*, const AtomicString&); 135 void namedItemAdded(HTMLDocument*, const AtomicString&);
139 void namedItemRemoved(HTMLDocument*, const AtomicString&); 136 void namedItemRemoved(HTMLDocument*, const AtomicString&);
140 137
141 void updateSecurityOrigin(SecurityOrigin*); 138 void updateSecurityOrigin(SecurityOrigin*);
142 void clearScriptObjects();
143 void cleanupScriptObjectsForPlugin(Widget*);
144 139
145 void clearForClose(); 140 void clearForClose();
146 141
147 NPObject* createScriptObjectForPluginElement(HTMLPlugInElement*);
148 NPObject* windowScriptNPObject();
149
150 // Registers a v8 extension to be available on webpages. Will only 142 // Registers a v8 extension to be available on webpages. Will only
151 // affect v8 contexts initialized after this call. Takes ownership of 143 // affect v8 contexts initialized after this call. Takes ownership of
152 // the v8::Extension object passed. 144 // the v8::Extension object passed.
153 static void registerExtensionIfNeeded(v8::Extension*); 145 static void registerExtensionIfNeeded(v8::Extension*);
154 static V8Extensions& registeredExtensions(); 146 static V8Extensions& registeredExtensions();
155 147
156 v8::Isolate* isolate() const { return m_windowProxyManager->isolate(); } 148 v8::Isolate* isolate() const { return m_windowProxyManager->isolate(); }
157 149
158 WindowProxyManager* windowProxyManager() const { return m_windowProxyManager .get(); } 150 WindowProxyManager* windowProxyManager() const { return m_windowProxyManager .get(); }
159 151
160 private: 152 private:
161 explicit ScriptController(LocalFrame*); 153 explicit ScriptController(LocalFrame*);
162 154
163 LocalFrame* frame() const { return toLocalFrame(m_windowProxyManager->frame( )); } 155 LocalFrame* frame() const { return toLocalFrame(m_windowProxyManager->frame( )); }
164 156
165 typedef WillBeHeapHashMap<RawPtrWillBeMember<Widget>, NPObject*> PluginObjec tMap;
166
167 v8::Local<v8::Value> evaluateScriptInMainWorld(const ScriptSourceCode&, Acce ssControlStatus, ExecuteScriptPolicy, double* compilationFinishTime = 0); 157 v8::Local<v8::Value> evaluateScriptInMainWorld(const ScriptSourceCode&, Acce ssControlStatus, ExecuteScriptPolicy, double* compilationFinishTime = 0);
168 158
169 OwnPtrWillBeMember<WindowProxyManager> m_windowProxyManager; 159 OwnPtrWillBeMember<WindowProxyManager> m_windowProxyManager;
170 const String* m_sourceURL; 160 const String* m_sourceURL;
171
172 // A mapping between Widgets and their corresponding script object.
173 // This list is used so that when the plugin dies, we can immediately
174 // invalidate all sub-objects which are associated with that plugin.
175 // The frame keeps a NPObject reference for each item on the list.
176 PluginObjectMap m_pluginObjects;
177
178 NPObject* m_windowScriptNPObject;
179 }; 161 };
180 162
181 } // namespace blink 163 } // namespace blink
182 164
183 #endif // ScriptController_h 165 #endif // ScriptController_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698