diff options
author | darin@chromium.org <darin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-04 04:43:51 +0000 |
---|---|---|
committer | darin@chromium.org <darin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-11-04 04:43:51 +0000 |
commit | 1111563020b92fc9f6943e0b5c00f66de2f57082 (patch) | |
tree | be1587a835de84b5164658af971c1b626bf9b2f2 | |
parent | 83a0cbe4af4408d7708bf54750aff66da80f3130 (diff) | |
download | chromium_src-1111563020b92fc9f6943e0b5c00f66de2f57082.zip chromium_src-1111563020b92fc9f6943e0b5c00f66de2f57082.tar.gz chromium_src-1111563020b92fc9f6943e0b5c00f66de2f57082.tar.bz2 |
Eliminate mime_util dependency in FrameLoaderClientImpl.
This is a revision of http://codereview.chromium.org/344018 that
adds an implementation of WebMimeRegistry for the worker process.
We need this to support the dummy WebView created for workers.
R=jam
BUG=24604
TEST=covered by worker ui tests
Review URL: http://codereview.chromium.org/342104
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@30941 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/worker/worker_webkitclient_impl.cc | 86 | ||||
-rw-r--r-- | chrome/worker/worker_webkitclient_impl.h | 20 | ||||
-rw-r--r-- | webkit/api/public/WebMimeRegistry.h | 1 | ||||
-rw-r--r-- | webkit/api/src/FrameLoaderClientImpl.cpp | 6 | ||||
-rw-r--r-- | webkit/glue/simple_webmimeregistry_impl.cc | 7 | ||||
-rw-r--r-- | webkit/glue/simple_webmimeregistry_impl.h | 2 |
6 files changed, 100 insertions, 22 deletions
diff --git a/chrome/worker/worker_webkitclient_impl.cc b/chrome/worker/worker_webkitclient_impl.cc index fdb20f3..d86b189 100644 --- a/chrome/worker/worker_webkitclient_impl.cc +++ b/chrome/worker/worker_webkitclient_impl.cc @@ -10,17 +10,24 @@ #include "webkit/api/public/WebString.h" #include "webkit/api/public/WebURL.h" -WebKit::WebClipboard* WorkerWebKitClientImpl::clipboard() { +using WebKit::WebClipboard; +using WebKit::WebMessagePortChannel; +using WebKit::WebMimeRegistry; +using WebKit::WebSandboxSupport; +using WebKit::WebSharedWorkerRepository; +using WebKit::WebString; +using WebKit::WebURL; + +WebClipboard* WorkerWebKitClientImpl::clipboard() { NOTREACHED(); return NULL; } -WebKit::WebMimeRegistry* WorkerWebKitClientImpl::mimeRegistry() { - NOTREACHED(); - return NULL; +WebMimeRegistry* WorkerWebKitClientImpl::mimeRegistry() { + return this; } -WebKit::WebSandboxSupport* WorkerWebKitClientImpl::sandboxSupport() { +WebSandboxSupport* WorkerWebKitClientImpl::sandboxSupport() { NOTREACHED(); return NULL; } @@ -43,39 +50,84 @@ bool WorkerWebKitClientImpl::isLinkVisited(unsigned long long link_hash) { return false; } -WebKit::WebMessagePortChannel* +WebMessagePortChannel* WorkerWebKitClientImpl::createMessagePortChannel() { return new WebMessagePortChannelImpl(); } -void WorkerWebKitClientImpl::setCookies(const WebKit::WebURL& url, - const WebKit::WebURL& policy_url, - const WebKit::WebString& value) { +void WorkerWebKitClientImpl::setCookies(const WebURL& url, + const WebURL& policy_url, + const WebString& value) { NOTREACHED(); } -WebKit::WebString WorkerWebKitClientImpl::cookies( - const WebKit::WebURL& url, const WebKit::WebURL& policy_url) { +WebString WorkerWebKitClientImpl::cookies( + const WebURL& url, const WebURL& policy_url) { NOTREACHED(); - return WebKit::WebString(); + return WebString(); } -void WorkerWebKitClientImpl::prefetchHostName(const WebKit::WebString&) { +void WorkerWebKitClientImpl::prefetchHostName(const WebString&) { NOTREACHED(); } -bool WorkerWebKitClientImpl::getFileSize(const WebKit::WebString& path, +bool WorkerWebKitClientImpl::getFileSize(const WebString& path, long long& result) { NOTREACHED(); return false; } -WebKit::WebString WorkerWebKitClientImpl::defaultLocale() { +WebString WorkerWebKitClientImpl::defaultLocale() { NOTREACHED(); - return WebKit::WebString(); + return WebString(); } -WebKit::WebSharedWorkerRepository* +WebSharedWorkerRepository* WorkerWebKitClientImpl::sharedWorkerRepository() { return 0; } + +WebMimeRegistry::SupportsType WorkerWebKitClientImpl::supportsMIMEType( + const WebString&) { + return WebMimeRegistry::IsSupported; +} + +WebMimeRegistry::SupportsType WorkerWebKitClientImpl::supportsImageMIMEType( + const WebString&) { + NOTREACHED(); + return WebMimeRegistry::IsSupported; +} + +WebMimeRegistry::SupportsType WorkerWebKitClientImpl::supportsJavaScriptMIMEType( + const WebString&) { + NOTREACHED(); + return WebMimeRegistry::IsSupported; +} + +WebMimeRegistry::SupportsType WorkerWebKitClientImpl::supportsMediaMIMEType( + const WebString&, const WebString&) { + NOTREACHED(); + return WebMimeRegistry::IsSupported; +} + +WebMimeRegistry::SupportsType WorkerWebKitClientImpl::supportsNonImageMIMEType( + const WebString&) { + NOTREACHED(); + return WebMimeRegistry::IsSupported; +} + +WebString WorkerWebKitClientImpl::mimeTypeForExtension(const WebString&) { + NOTREACHED(); + return WebString(); +} + +WebString WorkerWebKitClientImpl::mimeTypeFromFile(const WebString&) { + NOTREACHED(); + return WebString(); +} + +WebString WorkerWebKitClientImpl::preferredExtensionForMIMEType( + const WebString&) { + NOTREACHED(); + return WebString(); +} diff --git a/chrome/worker/worker_webkitclient_impl.h b/chrome/worker/worker_webkitclient_impl.h index c89f0fa..209cdac 100644 --- a/chrome/worker/worker_webkitclient_impl.h +++ b/chrome/worker/worker_webkitclient_impl.h @@ -5,9 +5,11 @@ #ifndef CHROME_WORKER_WORKER_WEBKIT_CLIENT_IMPL_H_ #define CHROME_WORKER_WORKER_WEBKIT_CLIENT_IMPL_H_ +#include "webkit/api/public/WebMimeRegistry.h" #include "webkit/glue/webkitclient_impl.h" -class WorkerWebKitClientImpl : public webkit_glue::WebKitClientImpl { +class WorkerWebKitClientImpl : public webkit_glue::WebKitClientImpl, + public WebKit::WebMimeRegistry { public: // WebKitClient methods: virtual WebKit::WebClipboard* clipboard(); @@ -27,6 +29,22 @@ class WorkerWebKitClientImpl : public webkit_glue::WebKitClientImpl { virtual bool getFileSize(const WebKit::WebString& path, long long& result); virtual WebKit::WebString defaultLocale(); virtual WebKit::WebSharedWorkerRepository* sharedWorkerRepository(); + + // WebMimeRegistry methods: + virtual WebKit::WebMimeRegistry::SupportsType supportsMIMEType( + const WebKit::WebString&); + virtual WebKit::WebMimeRegistry::SupportsType supportsImageMIMEType( + const WebKit::WebString&); + virtual WebKit::WebMimeRegistry::SupportsType supportsJavaScriptMIMEType( + const WebKit::WebString&); + virtual WebKit::WebMimeRegistry::SupportsType supportsMediaMIMEType( + const WebKit::WebString&, const WebKit::WebString&); + virtual WebKit::WebMimeRegistry::SupportsType supportsNonImageMIMEType( + const WebKit::WebString&); + virtual WebKit::WebString mimeTypeForExtension(const WebKit::WebString&); + virtual WebKit::WebString mimeTypeFromFile(const WebKit::WebString&); + virtual WebKit::WebString preferredExtensionForMIMEType( + const WebKit::WebString&); }; #endif // CHROME_WORKER_WORKER_WEBKIT_CLIENT_IMPL_H_ diff --git a/webkit/api/public/WebMimeRegistry.h b/webkit/api/public/WebMimeRegistry.h index e85b9cd..afdf736 100644 --- a/webkit/api/public/WebMimeRegistry.h +++ b/webkit/api/public/WebMimeRegistry.h @@ -40,6 +40,7 @@ namespace WebKit { public: enum SupportsType { IsNotSupported, IsSupported, MayBeSupported }; + virtual SupportsType supportsMIMEType(const WebString& mimeType) = 0; virtual SupportsType supportsImageMIMEType(const WebString& mimeType) = 0; virtual SupportsType supportsJavaScriptMIMEType(const WebString& mimeType) = 0; virtual SupportsType supportsMediaMIMEType(const WebString& mimeType, diff --git a/webkit/api/src/FrameLoaderClientImpl.cpp b/webkit/api/src/FrameLoaderClientImpl.cpp index 2af13cb..71553ba 100644 --- a/webkit/api/src/FrameLoaderClientImpl.cpp +++ b/webkit/api/src/FrameLoaderClientImpl.cpp @@ -53,6 +53,7 @@ #include "WebFrameImpl.h" #include "WebKit.h" #include "WebKitClient.h" +#include "WebMimeRegistry.h" #include "WebNode.h" #include "WebPlugin.h" #include "WebPluginParams.h" @@ -70,9 +71,6 @@ #include "WrappedResourceRequest.h" #include "WrappedResourceResponse.h" -// FIXME: remove these -#include "net/base/mime_util.h" - using namespace WebCore; namespace WebKit { @@ -1122,7 +1120,7 @@ bool FrameLoaderClientImpl::canShowMIMEType(const String& mimeType) const // mimeType strings are supposed to be ASCII, but if they are not for some // reason, then it just means that the mime type will fail all of these "is // supported" checks and go down the path of an unhandled mime type. - if (net::IsSupportedMimeType(mimeType.latin1().data())) + if (webKitClient()->mimeRegistry()->supportsMIMEType(mimeType) == WebMimeRegistry::IsSupported) return true; // If Chrome is started with the --disable-plugins switch, pluginData is null. diff --git a/webkit/glue/simple_webmimeregistry_impl.cc b/webkit/glue/simple_webmimeregistry_impl.cc index a2b792d..2857002 100644 --- a/webkit/glue/simple_webmimeregistry_impl.cc +++ b/webkit/glue/simple_webmimeregistry_impl.cc @@ -28,6 +28,13 @@ std::string AsASCII(const WebString& string) { namespace webkit_glue { +WebMimeRegistry::SupportsType SimpleWebMimeRegistryImpl::supportsMIMEType( + const WebString& mime_type) { + if (!net::IsSupportedMimeType(AsASCII(mime_type).c_str())) + return WebMimeRegistry::IsNotSupported; + return WebMimeRegistry::IsSupported; +} + WebMimeRegistry::SupportsType SimpleWebMimeRegistryImpl::supportsImageMIMEType( const WebString& mime_type) { if (!net::IsSupportedImageMimeType(AsASCII(mime_type).c_str())) diff --git a/webkit/glue/simple_webmimeregistry_impl.h b/webkit/glue/simple_webmimeregistry_impl.h index 003a9f4..9587562 100644 --- a/webkit/glue/simple_webmimeregistry_impl.h +++ b/webkit/glue/simple_webmimeregistry_impl.h @@ -12,6 +12,8 @@ namespace webkit_glue { class SimpleWebMimeRegistryImpl : public WebKit::WebMimeRegistry { public: // WebMimeRegistry methods: + virtual WebKit::WebMimeRegistry::SupportsType supportsMIMEType( + const WebKit::WebString&); virtual WebKit::WebMimeRegistry::SupportsType supportsImageMIMEType( const WebKit::WebString&); virtual WebKit::WebMimeRegistry::SupportsType supportsJavaScriptMIMEType( |