OLD | NEW |
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 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
201 #if PLATFORM(QT) | 201 #if PLATFORM(QT) |
202 OwnPtr<QScriptEngine> m_qtScriptEngine; | 202 OwnPtr<QScriptEngine> m_qtScriptEngine; |
203 #endif | 203 #endif |
204 | 204 |
205 // A mapping between Widgets and their corresponding script object. | 205 // A mapping between Widgets and their corresponding script object. |
206 // This list is used so that when the plugin dies, we can immediately | 206 // This list is used so that when the plugin dies, we can immediately |
207 // invalidate all sub-objects which are associated with that plugin. | 207 // invalidate all sub-objects which are associated with that plugin. |
208 // The frame keeps a NPObject reference for each item on the list. | 208 // The frame keeps a NPObject reference for each item on the list. |
209 PluginObjectMap m_pluginObjects; | 209 PluginObjectMap m_pluginObjects; |
210 #if ENABLE(NETSCAPE_PLUGIN_API) | 210 #if ENABLE(NETSCAPE_PLUGIN_API) |
211 NPObject* m_windowScriptNPObject; | 211 // The window script object can get destroyed while there are outstanding |
| 212 // references to it. Please refer to ScriptController::clearScriptObjects |
| 213 // for more information as to why this is necessary. To avoid crashes due |
| 214 // to calls on the destroyed window object, we return a proxy NPObject |
| 215 // which wraps the underlying window object. The wrapped window object |
| 216 // pointer in this object is cleared out when the window object is |
| 217 // destroyed. |
| 218 NPObject* m_wrappedWindowScriptNPObject; |
212 #endif | 219 #endif |
213 }; | 220 }; |
214 | 221 |
215 } // namespace WebCore | 222 } // namespace WebCore |
216 | 223 |
217 #endif // ScriptController_h | 224 #endif // ScriptController_h |
OLD | NEW |