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: