Title: [139415] trunk
Revision
139415
Author
[email protected]
Date
2013-01-11 00:42:42 -0800 (Fri, 11 Jan 2013)

Log Message

[GTK] Add API to set the web extensions directory to WebKit2 GTK+
https://bugs.webkit.org/show_bug.cgi?id=106462

Reviewed by Xan Lopez.

.:

* Source/autotools/symbols.filter: Update
WebGtkExtensionManager::initialize symbol.

Source/WebKit2:

* UIProcess/API/gtk/WebKitWebContext.cpp:
(webkit_web_context_set_web_extensions_directory): Set
the given directory as injected bundle initialization user data.
* UIProcess/API/gtk/WebKitWebContext.h:
* UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbol.
* UIProcess/API/gtk/tests/TestWebExtensions.cpp:
(beforeAll): Update the test to use
webkit_web_context_set_web_extensions_directory()
instead of setting the WEBKIT_WEB_EXTENSIONS_PATH env var.
* WebProcess/gtk/WebGtkExtensionManager.cpp:
(WebKit::WebGtkExtensionManager::scanModules): Append the given
additional web extensions directory to the list of directories to
scan for modules.
(WebKit::WebGtkExtensionManager::initialize): Get the additional
web extensions directory from initialization user data and pass it
to scanModules().
* WebProcess/gtk/WebGtkExtensionManager.h:
(WebGtkExtensionManager): Add userData parameter.
* WebProcess/gtk/WebGtkInjectedBundleMain.cpp:
(WKBundleInitialize): Pass initialization user data to
WebGtkExtensionManager.

Modified Paths

Diff

Modified: trunk/ChangeLog (139414 => 139415)


--- trunk/ChangeLog	2013-01-11 08:37:07 UTC (rev 139414)
+++ trunk/ChangeLog	2013-01-11 08:42:42 UTC (rev 139415)
@@ -1,3 +1,13 @@
+2013-01-10  Carlos Garcia Campos  <[email protected]>
+
+        [GTK] Add API to set the web extensions directory to WebKit2 GTK+
+        https://bugs.webkit.org/show_bug.cgi?id=106462
+
+        Reviewed by Xan Lopez.
+
+        * Source/autotools/symbols.filter: Update
+        WebGtkExtensionManager::initialize symbol.
+
 2013-01-10  Tony Chang  <[email protected]>
 
         Speed up supplemental dependency computation

Modified: trunk/Source/WebKit2/ChangeLog (139414 => 139415)


--- trunk/Source/WebKit2/ChangeLog	2013-01-11 08:37:07 UTC (rev 139414)
+++ trunk/Source/WebKit2/ChangeLog	2013-01-11 08:42:42 UTC (rev 139415)
@@ -1,3 +1,32 @@
+2013-01-10  Carlos Garcia Campos  <[email protected]>
+
+        [GTK] Add API to set the web extensions directory to WebKit2 GTK+
+        https://bugs.webkit.org/show_bug.cgi?id=106462
+
+        Reviewed by Xan Lopez.
+
+        * UIProcess/API/gtk/WebKitWebContext.cpp:
+        (webkit_web_context_set_web_extensions_directory): Set
+        the given directory as injected bundle initialization user data.
+        * UIProcess/API/gtk/WebKitWebContext.h:
+        * UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbol.
+        * UIProcess/API/gtk/tests/TestWebExtensions.cpp:
+        (beforeAll): Update the test to use
+        webkit_web_context_set_web_extensions_directory()
+        instead of setting the WEBKIT_WEB_EXTENSIONS_PATH env var.
+        * WebProcess/gtk/WebGtkExtensionManager.cpp:
+        (WebKit::WebGtkExtensionManager::scanModules): Append the given
+        additional web extensions directory to the list of directories to
+        scan for modules.
+        (WebKit::WebGtkExtensionManager::initialize): Get the additional
+        web extensions directory from initialization user data and pass it
+        to scanModules().
+        * WebProcess/gtk/WebGtkExtensionManager.h:
+        (WebGtkExtensionManager): Add userData parameter.
+        * WebProcess/gtk/WebGtkInjectedBundleMain.cpp:
+        (WKBundleInitialize): Pass initialization user data to
+        WebGtkExtensionManager.
+
 2013-01-10  Huang Dongsung  <[email protected]>
 
         [Qt][EFL] Rename from xxxContentsScale() to xxxScale() in PageViewportController.

Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp (139414 => 139415)


--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp	2013-01-11 08:37:07 UTC (rev 139414)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.cpp	2013-01-11 08:42:42 UTC (rev 139415)
@@ -748,6 +748,24 @@
     return context->priv->tlsErrorsPolicy;
 }
 
+/**
+ * webkit_web_context_set_web_extensions_directory:
+ * @context: a #WebKitWebContext
+ * @directory: the directory to add
+ *
+ * Set the directory where WebKit will look for Web Extensions.
+ * This method must be called before loading anything in this context, otherwise
+ * it will not have any effect.
+ */
+void webkit_web_context_set_web_extensions_directory(WebKitWebContext* context, const char* directory)
+{
+    g_return_if_fail(WEBKIT_IS_WEB_CONTEXT(context));
+    g_return_if_fail(directory);
+
+    // We pass the additional web extensions directory to the injected bundle as initialization user data.
+    context->priv->context->setInjectedBundleInitializationUserData(WebString::create(WebCore::filenameToString(directory)));
+}
+
 WebKitDownload* webkitWebContextGetOrCreateDownload(DownloadProxy* downloadProxy)
 {
     GRefPtr<WebKitDownload> download = downloadsMap().get(downloadProxy);

Modified: trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.h (139414 => 139415)


--- trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.h	2013-01-11 08:37:07 UTC (rev 139414)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebContext.h	2013-01-11 08:42:42 UTC (rev 139415)
@@ -184,6 +184,9 @@
 WEBKIT_API WebKitTLSErrorsPolicy
 webkit_web_context_get_tls_errors_policy            (WebKitWebContext              *context);
 
+WEBKIT_API void
+webkit_web_context_set_web_extensions_directory     (WebKitWebContext              *context,
+                                                     const gchar                   *directory);
 G_END_DECLS
 
 #endif

Modified: trunk/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt (139414 => 139415)


--- trunk/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt	2013-01-11 08:37:07 UTC (rev 139414)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt	2013-01-11 08:42:42 UTC (rev 139415)
@@ -45,6 +45,7 @@
 webkit_web_context_set_preferred_languages
 webkit_web_context_set_tls_errors_policy
 webkit_web_context_get_tls_errors_policy
+webkit_web_context_set_web_extensions_directory
 
 <SUBSECTION URI Scheme>
 WebKitURISchemeRequestCallback

Modified: trunk/Source/WebKit2/UIProcess/API/gtk/tests/TestWebExtensions.cpp (139414 => 139415)


--- trunk/Source/WebKit2/UIProcess/API/gtk/tests/TestWebExtensions.cpp	2013-01-11 08:37:07 UTC (rev 139414)
+++ trunk/Source/WebKit2/UIProcess/API/gtk/tests/TestWebExtensions.cpp	2013-01-11 08:42:42 UTC (rev 139415)
@@ -47,7 +47,7 @@
 
 void beforeAll()
 {
-    g_setenv("WEBKIT_WEB_EXTENSIONS_PATH", WEBKIT_TEST_WEB_EXTENSIONS_DIR, FALSE);
+    webkit_web_context_set_web_extensions_directory(webkit_web_context_get_default(), WEBKIT_TEST_WEB_EXTENSIONS_DIR);
     bus = new WebKitTestBus();
     if (!bus->run())
         return;

Modified: trunk/Source/WebKit2/WebProcess/gtk/WebGtkExtensionManager.cpp (139414 => 139415)


--- trunk/Source/WebKit2/WebProcess/gtk/WebGtkExtensionManager.cpp	2013-01-11 08:37:07 UTC (rev 139414)
+++ trunk/Source/WebKit2/WebProcess/gtk/WebGtkExtensionManager.cpp	2013-01-11 08:42:42 UTC (rev 139415)
@@ -51,10 +51,13 @@
     directories.append(WebCore::filenameToString(extensionDefaultDirectory));
 }
 
-void WebGtkExtensionManager::scanModules(Vector<String>& modules)
+void WebGtkExtensionManager::scanModules(const String& additionalWebExtensionsDirectory, Vector<String>& modules)
 {
     Vector<String> moduleDirectories;
+    if (!additionalWebExtensionsDirectory.isNull())
+        moduleDirectories.append(additionalWebExtensionsDirectory);
     appendModuleDirectories(moduleDirectories);
+
     for (size_t i = 0; i < moduleDirectories.size(); ++i) {
         Vector<String> modulePaths = WebCore::listDirectory(moduleDirectories[i], String("*.so"));
         for (size_t j = 0; j < modulePaths.size(); ++j) {
@@ -64,12 +67,18 @@
     }
 }
 
-void WebGtkExtensionManager::initialize(WKBundleRef bundle)
+void WebGtkExtensionManager::initialize(WKBundleRef bundle, WKTypeRef userData)
 {
     m_extension = adoptGRef(webkitWebExtensionCreate(toImpl(bundle)));
 
+    String additionalWebExtensionsDirectory;
+    if (userData) {
+        ASSERT(WKGetTypeID(userData) == WKStringGetTypeID());
+        additionalWebExtensionsDirectory = toImpl(static_cast<WKStringRef>(userData))->string();
+    }
+
     Vector<String> modulePaths;
-    scanModules(modulePaths);
+    scanModules(additionalWebExtensionsDirectory, modulePaths);
     for (size_t i = 0; i < modulePaths.size(); ++i) {
         OwnPtr<Module> module = adoptPtr(new Module(modulePaths[i]));
         if (!module->load())

Modified: trunk/Source/WebKit2/WebProcess/gtk/WebGtkExtensionManager.h (139414 => 139415)


--- trunk/Source/WebKit2/WebProcess/gtk/WebGtkExtensionManager.h	2013-01-11 08:37:07 UTC (rev 139414)
+++ trunk/Source/WebKit2/WebProcess/gtk/WebGtkExtensionManager.h	2013-01-11 08:42:42 UTC (rev 139415)
@@ -40,13 +40,13 @@
 public:
     static WebGtkExtensionManager& shared();
 
-    void initialize(WKBundleRef);
+    void initialize(WKBundleRef, WKTypeRef);
 
 private:
     WebGtkExtensionManager();
 
     void appendModuleDirectories(Vector<String>&);
-    void scanModules(Vector<String>&);
+    void scanModules(const String&, Vector<String>&);
 
     Vector<Module*> m_extensionModules;
     GRefPtr<WebKitWebExtension> m_extension;

Modified: trunk/Source/WebKit2/WebProcess/gtk/WebGtkInjectedBundleMain.cpp (139414 => 139415)


--- trunk/Source/WebKit2/WebProcess/gtk/WebGtkInjectedBundleMain.cpp	2013-01-11 08:37:07 UTC (rev 139414)
+++ trunk/Source/WebKit2/WebProcess/gtk/WebGtkInjectedBundleMain.cpp	2013-01-11 08:42:42 UTC (rev 139415)
@@ -29,7 +29,7 @@
 #else
 extern "C"
 #endif
-void WKBundleInitialize(WKBundleRef bundle, WKTypeRef)
+void WKBundleInitialize(WKBundleRef bundle, WKTypeRef userData)
 {
-    WebGtkExtensionManager::shared().initialize(bundle);
+    WebGtkExtensionManager::shared().initialize(bundle, userData);
 }

Modified: trunk/Source/autotools/symbols.filter (139414 => 139415)


--- trunk/Source/autotools/symbols.filter	2013-01-11 08:37:07 UTC (rev 139414)
+++ trunk/Source/autotools/symbols.filter	2013-01-11 08:42:42 UTC (rev 139415)
@@ -237,7 +237,7 @@
 _ZN7WebCore28DocumentStyleSheetCollection12addUserSheetEN3WTF10PassRefPtrINS_18StyleSheetContentsEEE;
 _ZN7WebCore28DocumentStyleSheetCollection14addAuthorSheetEN3WTF10PassRefPtrINS_18StyleSheetContentsEEE;
 _ZN7WebCore4KURL10invalidateEv;
-_ZN6WebKit22WebGtkExtensionManager10initializeEPK14OpaqueWKBundle;
+_ZN6WebKit22WebGtkExtensionManager10initializeEPK14OpaqueWKBundlePKv;
 _ZN6WebKit22WebGtkExtensionManager6sharedEv;
 
 local:
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to