- Revision
- 126002
- Author
- [email protected]
- Date
- 2012-08-20 00:33:10 -0700 (Mon, 20 Aug 2012)
Log Message
[V8] Move V8Proxy::m_extensions to ScriptController
https://bugs.webkit.org/show_bug.cgi?id=94444
Reviewed by Adam Barth.
Source/WebCore:
To kill V8Proxy, this patch moves V8Proxy::m_extensions to ScriptController.
This patch also renames extensions() to registeredExtensions() for clarification.
No tests. No change in behavior.
* bindings/v8/ScriptController.cpp:
(WebCore::ScriptController::registeredExtensions):
(WebCore):
(WebCore::ScriptController::registerExtensionIfNeeded):
* bindings/v8/ScriptController.h:
(WebCore):
(ScriptController):
* bindings/v8/V8DOMWindowShell.cpp:
(WebCore::V8DOMWindowShell::createNewContext):
* bindings/v8/V8Proxy.cpp:
* bindings/v8/V8Proxy.h:
(WebCore):
(V8Proxy):
Source/WebKit/chromium:
To kill V8Proxy, this patch moves V8Proxy::m_extensions to ScriptController.
No tests. No change in behavior.
* src/WebScriptController.cpp:
(WebKit::WebScriptController::registerExtension):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (126001 => 126002)
--- trunk/Source/WebCore/ChangeLog 2012-08-20 07:21:16 UTC (rev 126001)
+++ trunk/Source/WebCore/ChangeLog 2012-08-20 07:33:10 UTC (rev 126002)
@@ -1,3 +1,29 @@
+2012-08-20 Kentaro Hara <[email protected]>
+
+ [V8] Move V8Proxy::m_extensions to ScriptController
+ https://bugs.webkit.org/show_bug.cgi?id=94444
+
+ Reviewed by Adam Barth.
+
+ To kill V8Proxy, this patch moves V8Proxy::m_extensions to ScriptController.
+ This patch also renames extensions() to registeredExtensions() for clarification.
+
+ No tests. No change in behavior.
+
+ * bindings/v8/ScriptController.cpp:
+ (WebCore::ScriptController::registeredExtensions):
+ (WebCore):
+ (WebCore::ScriptController::registerExtensionIfNeeded):
+ * bindings/v8/ScriptController.h:
+ (WebCore):
+ (ScriptController):
+ * bindings/v8/V8DOMWindowShell.cpp:
+ (WebCore::V8DOMWindowShell::createNewContext):
+ * bindings/v8/V8Proxy.cpp:
+ * bindings/v8/V8Proxy.h:
+ (WebCore):
+ (V8Proxy):
+
2012-08-20 Pavel Feldman <[email protected]>
Web Inspector: toolbar causes 8 reflows upon opening
Modified: trunk/Source/WebCore/bindings/v8/ScriptController.cpp (126001 => 126002)
--- trunk/Source/WebCore/bindings/v8/ScriptController.cpp 2012-08-20 07:21:16 UTC (rev 126001)
+++ trunk/Source/WebCore/bindings/v8/ScriptController.cpp 2012-08-20 07:33:10 UTC (rev 126002)
@@ -422,6 +422,23 @@
evaluateInIsolatedWorld(0, sources, 0);
}
+V8Extensions& ScriptController::registeredExtensions()
+{
+ DEFINE_STATIC_LOCAL(V8Extensions, extensions, ());
+ return extensions;
+}
+
+void ScriptController::registerExtensionIfNeeded(v8::Extension* extension)
+{
+ const V8Extensions& extensions = registeredExtensions();
+ for (size_t i = 0; i < extensions.size(); ++i) {
+ if (extensions[i] == extension)
+ return;
+ }
+ v8::RegisterExtension(extension);
+ registeredExtensions().append(extension);
+}
+
static NPObject* createNoScriptObject()
{
notImplemented();
Modified: trunk/Source/WebCore/bindings/v8/ScriptController.h (126001 => 126002)
--- trunk/Source/WebCore/bindings/v8/ScriptController.h 2012-08-20 07:21:16 UTC (rev 126001)
+++ trunk/Source/WebCore/bindings/v8/ScriptController.h 2012-08-20 07:33:10 UTC (rev 126002)
@@ -59,6 +59,8 @@
class V8DOMWindowShell;
class Widget;
+typedef WTF::Vector<v8::Extension*> V8Extensions;
+
class ScriptController {
public:
ScriptController(Frame*);
@@ -188,6 +190,12 @@
void evaluateInWorld(const ScriptSourceCode&, DOMWrapperWorld*);
static void getAllWorlds(Vector<RefPtr<DOMWrapperWorld> >& worlds);
+ // Registers a v8 extension to be available on webpages. Will only
+ // affect v8 contexts initialized after this call. Takes ownership of
+ // the v8::Extension object passed.
+ static void registerExtensionIfNeeded(v8::Extension*);
+ static V8Extensions& registeredExtensions();
+
private:
Frame* m_frame;
const String* m_sourceURL;
@@ -213,6 +221,9 @@
// pointer in this object is cleared out when the window object is
// destroyed.
NPObject* m_wrappedWindowScriptNPObject;
+
+ // All of the extensions registered with the context.
+ static V8Extensions m_extensions;
};
} // namespace WebCore
Modified: trunk/Source/WebCore/bindings/v8/V8DOMWindowShell.cpp (126001 => 126002)
--- trunk/Source/WebCore/bindings/v8/V8DOMWindowShell.cpp 2012-08-20 07:21:16 UTC (rev 126001)
+++ trunk/Source/WebCore/bindings/v8/V8DOMWindowShell.cpp 2012-08-20 07:33:10 UTC (rev 126002)
@@ -44,6 +44,7 @@
#include "RuntimeEnabledFeatures.h"
#include "ScriptCallStack.h"
#include "ScriptCallStackFactory.h"
+#include "ScriptController.h"
#include "ScriptProfiler.h"
#include "SecurityOrigin.h"
#include "StorageNamespace.h"
@@ -370,16 +371,16 @@
return result;
// Used to avoid sleep calls in unload handlers.
- V8Proxy::registerExtensionIfNeeded(DateExtension::get());
+ ScriptController::registerExtensionIfNeeded(DateExtension::get());
#if ENABLE(_javascript__I18N_API)
// Enables experimental i18n API in V8.
if (RuntimeEnabledFeatures::_javascript_I18NAPIEnabled())
- V8Proxy::registerExtensionIfNeeded(v8_i18n::Extension::get());
+ ScriptController::registerExtensionIfNeeded(v8_i18n::Extension::get());
#endif
// Dynamically tell v8 about our extensions now.
- const V8Extensions& extensions = V8Proxy::extensions();
+ const V8Extensions& extensions = ScriptController::registeredExtensions();
OwnArrayPtr<const char*> extensionNames = adoptArrayPtr(new const char*[extensions.size()]);
int index = 0;
for (size_t i = 0; i < extensions.size(); ++i) {
Modified: trunk/Source/WebCore/bindings/v8/V8Proxy.cpp (126001 => 126002)
--- trunk/Source/WebCore/bindings/v8/V8Proxy.cpp 2012-08-20 07:21:16 UTC (rev 126001)
+++ trunk/Source/WebCore/bindings/v8/V8Proxy.cpp 2012-08-20 07:33:10 UTC (rev 126002)
@@ -466,23 +466,6 @@
return frame->script()->proxy()->mainWorldContext();
}
-V8Extensions& V8Proxy::extensions()
-{
- DEFINE_STATIC_LOCAL(V8Extensions, extensions, ());
- return extensions;
-}
-
-void V8Proxy::registerExtensionIfNeeded(v8::Extension* extension)
-{
- const V8Extensions& registeredExtensions = extensions();
- for (size_t i = 0; i < registeredExtensions.size(); ++i) {
- if (registeredExtensions[i] == extension)
- return;
- }
- v8::RegisterExtension(extension);
- extensions().append(extension);
-}
-
bool V8Proxy::setContextDebugId(int debugId)
{
ASSERT(debugId > 0);
Modified: trunk/Source/WebCore/bindings/v8/V8Proxy.h (126001 => 126002)
--- trunk/Source/WebCore/bindings/v8/V8Proxy.h 2012-08-20 07:21:16 UTC (rev 126001)
+++ trunk/Source/WebCore/bindings/v8/V8Proxy.h 2012-08-20 07:33:10 UTC (rev 126002)
@@ -69,9 +69,6 @@
const int kMaxRecursionDepth = 22;
- // The list of extensions that are registered for use with V8.
- typedef WTF::Vector<v8::Extension*> V8Extensions;
-
// Note: although the pointer is raw, the instance is kept alive by a strong
// reference to the v8 context it contains, which is not made weak until we
// call world->destroy().
@@ -142,12 +139,6 @@
bool setContextDebugId(int id);
static int contextDebugId(v8::Handle<v8::Context>);
- // Registers a v8 extension to be available on webpages. Will only
- // affect v8 contexts initialized after this call. Takes ownership of
- // the v8::Extension object passed.
- static void registerExtensionIfNeeded(v8::Extension*);
- static V8Extensions& extensions();
-
static void reportUnsafeAccessTo(Document* targetDocument);
// FIXME: Move m_isolatedWorlds to ScriptController and remove this getter.
@@ -163,9 +154,6 @@
Frame* m_frame;
- // All of the extensions registered with the context.
- static V8Extensions m_extensions;
-
// The isolated worlds we are tracking for this frame. We hold them alive
// here so that they can be used again by future calls to
// evaluateInIsolatedWorld().
Modified: trunk/Source/WebKit/chromium/ChangeLog (126001 => 126002)
--- trunk/Source/WebKit/chromium/ChangeLog 2012-08-20 07:21:16 UTC (rev 126001)
+++ trunk/Source/WebKit/chromium/ChangeLog 2012-08-20 07:33:10 UTC (rev 126002)
@@ -1,3 +1,17 @@
+2012-08-20 Kentaro Hara <[email protected]>
+
+ [V8] Move V8Proxy::m_extensions to ScriptController
+ https://bugs.webkit.org/show_bug.cgi?id=94444
+
+ Reviewed by Adam Barth.
+
+ To kill V8Proxy, this patch moves V8Proxy::m_extensions to ScriptController.
+
+ No tests. No change in behavior.
+
+ * src/WebScriptController.cpp:
+ (WebKit::WebScriptController::registerExtension):
+
2012-08-19 James Robinson <[email protected]>
[chromium] Put webkit compositor binding files in separate conditionally included gyp section
Modified: trunk/Source/WebKit/chromium/src/WebScriptController.cpp (126001 => 126002)
--- trunk/Source/WebKit/chromium/src/WebScriptController.cpp 2012-08-20 07:21:16 UTC (rev 126001)
+++ trunk/Source/WebKit/chromium/src/WebScriptController.cpp 2012-08-20 07:33:10 UTC (rev 126002)
@@ -31,9 +31,9 @@
#include "config.h"
#include "WebScriptController.h"
+#include "ScriptController.h"
#include "V8Binding.h"
#include "V8DOMMap.h"
-#include "V8Proxy.h"
#include "platform/WebString.h"
@@ -43,7 +43,7 @@
void WebScriptController::registerExtension(v8::Extension* extension)
{
- V8Proxy::registerExtensionIfNeeded(extension);
+ ScriptController::registerExtensionIfNeeded(extension);
}
void WebScriptController::enableV8SingleThreadMode()