Title: [126002] trunk/Source
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()
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to