summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/renderer_host/render_sandbox_host_linux.cc120
-rw-r--r--webkit/api/public/gtk/WebFontInfo.h4
-rw-r--r--webkit/api/src/ChromiumBridge.cpp9
-rw-r--r--webkit/api/src/gtk/WebFontInfo.cpp10
4 files changed, 22 insertions, 121 deletions
diff --git a/chrome/browser/renderer_host/render_sandbox_host_linux.cc b/chrome/browser/renderer_host/render_sandbox_host_linux.cc
index 460f1cb..e34efe6 100644
--- a/chrome/browser/renderer_host/render_sandbox_host_linux.cc
+++ b/chrome/browser/renderer_host/render_sandbox_host_linux.cc
@@ -21,38 +21,20 @@
#include "base/unix_domain_socket_posix.h"
#include "chrome/common/sandbox_methods_linux.h"
#include "webkit/api/public/gtk/WebFontInfo.h"
-#include "webkit/api/public/WebData.h"
-#include "webkit/api/public/WebKit.h"
-#include "webkit/api/public/WebKitClient.h"
-#include "webkit/api/public/WebStorageArea.h"
-#include "webkit/api/public/WebStorageNamespace.h"
#include "SkFontHost_fontconfig_direct.h"
#include "SkFontHost_fontconfig_ipc.h"
-using WebKit::WebClipboard;
-using WebKit::WebData;
+using WebKit::WebCString;
using WebKit::WebFontInfo;
-using WebKit::WebKitClient;
-using WebKit::WebLocalizedString;
-using WebKit::WebMimeRegistry;
-using WebKit::WebPluginInfo;
-using WebKit::WebPluginListBuilder;
-using WebKit::WebSandboxSupport;
-using WebKit::WebStorageArea;
-using WebKit::WebStorageNamespace;
-using WebKit::WebString;
-using WebKit::WebThemeEngine;
using WebKit::WebUChar;
-using WebKit::WebURL;
-using WebKit::WebURLLoader;
// http://code.google.com/p/chromium/wiki/LinuxSandboxIPC
// BEWARE: code in this file run across *processes* (not just threads).
// This code runs in a child process
-class SandboxIPCProcess : public WebKitClient {
+class SandboxIPCProcess {
public:
// lifeline_fd: this is the read end of a pipe which the browser process
// holds the other end of. If the browser process dies, it's descriptors are
@@ -64,8 +46,6 @@ class SandboxIPCProcess : public WebKitClient {
: lifeline_fd_(lifeline_fd),
browser_socket_(browser_socket),
font_config_(new FontConfigDirect()) {
- WebKit::initialize(this);
-
base::InjectiveMultimap multimap;
multimap.push_back(base::InjectionArc(0, lifeline_fd, false));
multimap.push_back(base::InjectionArc(0, browser_socket, false));
@@ -105,93 +85,6 @@ class SandboxIPCProcess : public WebKitClient {
}
}
- // ---------------------------------------------------------------------------
- // WebKitClient impl...
-
- virtual WebClipboard* clipboard() { return NULL; }
- virtual WebMimeRegistry* mimeRegistry() { return NULL; }
- virtual WebSandboxSupport* sandboxSupport() { return NULL; }
- virtual bool sandboxEnabled() { return true; }
- virtual WebThemeEngine* themeEngine() { return NULL; }
-
- virtual WebStorageNamespace* createLocalStorageNamespace(
- const WebString& path) { return 0; }
- virtual WebStorageNamespace* createSessionStorageNamespace() { return 0; }
-
- virtual unsigned long long visitedLinkHash(const char*, size_t) { return 0; }
- virtual bool isLinkVisited(unsigned long long) { return false; }
-
- virtual WebKit::WebMessagePortChannel* createMessagePortChannel() {
- return NULL;
- }
-
- virtual void setCookies(const WebURL&, const WebURL&, const WebString&) { }
- virtual WebString cookies(const WebURL&, const WebURL&) {
- return WebString();
- }
-
- virtual void prefetchHostName(const WebString&) { }
-
- virtual WebURLLoader* createURLLoader() { return NULL; }
-
- virtual void getPluginList(bool refresh, WebPluginListBuilder*) { }
-
- virtual void decrementStatsCounter(const char*) { }
- virtual void incrementStatsCounter(const char*) { }
-
- virtual void traceEventBegin(const char* name, void*, const char*) { }
- virtual void traceEventEnd(const char* name, void*, const char*) { }
-
- virtual WebData loadResource(const char*) { return WebData(); }
- virtual WebString queryLocalizedString(WebLocalizedString::Name) {
- return WebString();
- }
- virtual WebString queryLocalizedString(WebLocalizedString::Name, int) {
- return WebString();
- }
-
- virtual void suddenTerminationChanged(bool) { }
-
- virtual WebString defaultLocale() { return WebString(); }
-
- virtual double currentTime() { return 0; }
-
- virtual void setSharedTimerFiredFunction(void (*)()) { }
- virtual void setSharedTimerFireTime(double) { }
- virtual void stopSharedTimer() { }
-
- virtual void callOnMainThread(void (*)()) { }
-
- virtual base::PlatformFile databaseOpenFile(
- const WebString& fileName, int desiredFlags) {
- return base::kInvalidPlatformFileValue;
- }
- virtual bool databaseDeleteFile(const WebString& fileName) {
- return false;
- }
- virtual long databaseGetFileAttributes(const WebString& fileName) {
- return -1;
- }
- virtual long long databaseGetFileSize(const WebString& fileName) {
- return 0;
- }
-
- bool fileExists(const WebString& path) { return false; }
- bool deleteFile(const WebString& path) { return false; }
- bool deleteEmptyDirectory(const WebString& path) { return false; }
- bool getFileSize(const WebString& path, long long& result) {
- return false;
- }
- bool getFileModificationTime(const WebString& path, time_t& result) {
- return false;
- }
- WebString directoryName(const WebString& path) { return WebString(); }
- WebString pathByAppendingComponent(const WebString& path,
- const WebString& component) {
- return WebString();
- }
- bool makeAllDirectories(const WebString& path) { return false; }
-
private:
// ---------------------------------------------------------------------------
// Requests from the renderer...
@@ -318,11 +211,14 @@ class SandboxIPCProcess : public WebKitClient {
chars[i] = c;
}
- const WebString family = WebFontInfo::familyForChars(chars.get(), num_chars);
- const std::string family_utf8 = UTF16ToUTF8(family);
+ WebCString family = WebFontInfo::familyForChars(chars.get(), num_chars);
Pickle reply;
- reply.WriteString(family_utf8);
+ if (family.data()) {
+ reply.WriteString(family.data());
+ } else {
+ reply.WriteString("");
+ }
SendRendererReply(fds, reply, -1);
}
diff --git a/webkit/api/public/gtk/WebFontInfo.h b/webkit/api/public/gtk/WebFontInfo.h
index b5543c2..2a0b7f9 100644
--- a/webkit/api/public/gtk/WebFontInfo.h
+++ b/webkit/api/public/gtk/WebFontInfo.h
@@ -31,7 +31,7 @@
#ifndef WebFontInfo_h
#define WebFontInfo_h
-#include "../WebString.h"
+#include "../WebCString.h"
#include <string.h>
#include <unistd.h>
@@ -47,7 +47,7 @@ namespace WebKit {
//
// Returns: the font family or an empty string if the request could not be
// satisfied.
- WEBKIT_API static WebString familyForChars(const WebUChar* characters, size_t numCharacters);
+ WEBKIT_API static WebCString familyForChars(const WebUChar* characters, size_t numCharacters);
};
} // namespace WebKit
diff --git a/webkit/api/src/ChromiumBridge.cpp b/webkit/api/src/ChromiumBridge.cpp
index e48b4b7..b668178 100644
--- a/webkit/api/src/ChromiumBridge.cpp
+++ b/webkit/api/src/ChromiumBridge.cpp
@@ -208,8 +208,13 @@ String ChromiumBridge::getFontFamilyForCharacters(const UChar* characters, size_
{
if (webKitClient()->sandboxSupport())
return webKitClient()->sandboxSupport()->getFontFamilyForCharacters(characters, numCharacters);
- else
- return WebFontInfo::familyForChars(characters, numCharacters);
+ else {
+ WebCString family = WebFontInfo::familyForChars(characters, numCharacters);
+ if (family.data())
+ return WebString::fromUTF8(family.data());
+ else
+ return WebString();
+ }
}
#endif
diff --git a/webkit/api/src/gtk/WebFontInfo.cpp b/webkit/api/src/gtk/WebFontInfo.cpp
index 059ad4b..9365ed2 100644
--- a/webkit/api/src/gtk/WebFontInfo.cpp
+++ b/webkit/api/src/gtk/WebFontInfo.cpp
@@ -38,7 +38,7 @@
namespace WebKit {
-WebString WebFontInfo::familyForChars(const WebUChar* characters, size_t numCharacters)
+WebCString WebFontInfo::familyForChars(const WebUChar* characters, size_t numCharacters)
{
FcCharSet* cset = FcCharSetCreate();
for (int i = 0; i < numCharacters; ++i) {
@@ -71,7 +71,7 @@ WebString WebFontInfo::familyForChars(const WebUChar* characters, size_t numChar
FcCharSetDestroy(cset);
if (!fontSet)
- return WebString();
+ return WebCString();
// Older versions of fontconfig have a bug where they cannot select
// only scalable fonts so we have to manually filter the results.
@@ -92,17 +92,17 @@ WebString WebFontInfo::familyForChars(const WebUChar* characters, size_t numChar
continue;
FcChar8* family;
- WebString result;
+ WebCString result;
if (FcPatternGetString(current, FC_FAMILY, 0, &family) == FcResultMatch) {
const char* charFamily = reinterpret_cast<char*>(family);
- result = WebString::fromUTF8(charFamily, strlen(charFamily));
+ result = WebCString(charFamily, strlen(charFamily));
}
FcFontSetDestroy(fontSet);
return result;
}
FcFontSetDestroy(fontSet);
- return WebString();
+ return WebCString();
}
} // namespace WebKit