| Index: content/ppapi_plugin/ppapi_webkitclient_impl.cc
|
| ===================================================================
|
| --- content/ppapi_plugin/ppapi_webkitclient_impl.cc (revision 0)
|
| +++ content/ppapi_plugin/ppapi_webkitclient_impl.cc (revision 0)
|
| @@ -0,0 +1,238 @@
|
| +// Copyright (c) 2011 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "content/ppapi_plugin/ppapi_webkitclient_impl.h"
|
| +
|
| +#include <map>
|
| +
|
| +#include "base/synchronization/lock.h"
|
| +#include "base/logging.h"
|
| +#include "base/string16.h"
|
| +#include "build/build_config.h"
|
| +#include "third_party/WebKit/Source/WebKit/chromium/public/WebSerializedScriptValue.h"
|
| +#include "third_party/WebKit/Source/WebKit/chromium/public/WebString.h"
|
| +
|
| +#if defined(OS_WIN)
|
| +#include "third_party/WebKit/Source/WebKit/chromium/public/win/WebSandboxSupport.h"
|
| +#elif defined(OS_MACOSX)
|
| +#include "third_party/WebKit/Source/WebKit/chromium/public/mac/WebSandboxSupport.h"
|
| +#elif defined(OS_LINUX)
|
| +#include "content/common/child_process_sandbox_support_linux.h"
|
| +#include "third_party/WebKit/Source/WebKit/chromium/public/linux/WebSandboxSupport.h"
|
| +#endif
|
| +
|
| +using WebKit::WebSandboxSupport;
|
| +using WebKit::WebString;
|
| +using WebKit::WebUChar;
|
| +
|
| +class PpapiWebKitClientImpl::SandboxSupport : public WebSandboxSupport {
|
| + public:
|
| +#if defined(OS_WIN)
|
| + virtual bool ensureFontLoaded(HFONT);
|
| +#elif defined(OS_MACOSX)
|
| + virtual bool loadFont(NSFont* srcFont, ATSFontContainerRef* out);
|
| +#elif defined(OS_LINUX)
|
| + virtual WebString getFontFamilyForCharacters(
|
| + const WebUChar* characters,
|
| + size_t numCharacters,
|
| + const char* preferred_locale);
|
| + virtual void getRenderStyleForStrike(
|
| + const char* family, int sizeAndStyle, WebKit::WebFontRenderStyle* out);
|
| +
|
| + private:
|
| + // WebKit likes to ask us for the correct font family to use for a set of
|
| + // unicode code points. It needs this information frequently so we cache it
|
| + // here. The key in this map is an array of 16-bit UTF16 values from WebKit.
|
| + // The value is a string containing the correct font family.
|
| + base::Lock unicode_font_families_mutex_;
|
| + std::map<string16, std::string> unicode_font_families_;
|
| +#endif
|
| +};
|
| +
|
| +#if defined(OS_WIN)
|
| +
|
| +bool PpapiWebKitClientImpl::SandboxSupport::ensureFontLoaded(HFONT font) {
|
| + // TODO(brettw) this should do the something similar to what
|
| + // RendererWebKitClientImpl does and request that the browser load the font.
|
| + NOTIMPLEMENTED();
|
| + return false;
|
| +}
|
| +
|
| +#elif defined(OS_MACOSX)
|
| +
|
| +bool PpapiWebKitClientImpl::SandboxSupport::loadFont(NSFont* srcFont,
|
| + ATSFontContainerRef* out) {
|
| + // TODO(brettw) this should do the something similar to what
|
| + // RendererWebKitClientImpl does and request that the browser load the font.
|
| + NOTIMPLEMENTED();
|
| + return false;
|
| +}
|
| +
|
| +#elif defined(OS_LINUX)
|
| +
|
| +WebString PpapiWebKitClientImpl::SandboxSupport::getFontFamilyForCharacters(
|
| + const WebUChar* characters,
|
| + size_t num_characters,
|
| + const char* preferred_locale) {
|
| + base::AutoLock lock(unicode_font_families_mutex_);
|
| + const string16 key(characters, num_characters);
|
| + const std::map<string16, std::string>::const_iterator iter =
|
| + unicode_font_families_.find(key);
|
| + if (iter != unicode_font_families_.end())
|
| + return WebString::fromUTF8(iter->second);
|
| +
|
| + const std::string family_name =
|
| + child_process_sandbox_support::getFontFamilyForCharacters(
|
| + characters,
|
| + num_characters,
|
| + preferred_locale);
|
| + unicode_font_families_.insert(make_pair(key, family_name));
|
| + return WebString::fromUTF8(family_name);
|
| +}
|
| +
|
| +void PpapiWebKitClientImpl::SandboxSupport::getRenderStyleForStrike(
|
| + const char* family, int sizeAndStyle, WebKit::WebFontRenderStyle* out) {
|
| + child_process_sandbox_support::getRenderStyleForStrike(family, sizeAndStyle,
|
| + out);
|
| +}
|
| +
|
| +#endif
|
| +
|
| +PpapiWebKitClientImpl::PpapiWebKitClientImpl() {
|
| +}
|
| +
|
| +PpapiWebKitClientImpl::~PpapiWebKitClientImpl() {
|
| +}
|
| +
|
| +WebKit::WebClipboard* PpapiWebKitClientImpl::clipboard() {
|
| + NOTREACHED();
|
| + return NULL;
|
| +}
|
| +
|
| +WebKit::WebMimeRegistry* PpapiWebKitClientImpl::mimeRegistry() {
|
| + NOTREACHED();
|
| + return NULL;
|
| +}
|
| +
|
| +WebKit::WebFileUtilities* PpapiWebKitClientImpl::fileUtilities() {
|
| + NOTREACHED();
|
| + return NULL;
|
| +}
|
| +
|
| +WebKit::WebSandboxSupport* PpapiWebKitClientImpl::sandboxSupport() {
|
| + return sandbox_support_.get();
|
| +}
|
| +
|
| +bool PpapiWebKitClientImpl::sandboxEnabled() {
|
| + return true; // Assume PPAPI is always sandboxed.
|
| +}
|
| +
|
| +unsigned long long PpapiWebKitClientImpl::visitedLinkHash(
|
| + const char* canonical_url,
|
| + size_t length) {
|
| + NOTREACHED();
|
| + return 0;
|
| +}
|
| +
|
| +bool PpapiWebKitClientImpl::isLinkVisited(unsigned long long link_hash) {
|
| + NOTREACHED();
|
| + return false;
|
| +}
|
| +
|
| +WebKit::WebMessagePortChannel*
|
| +PpapiWebKitClientImpl::createMessagePortChannel() {
|
| + NOTREACHED();
|
| + return NULL;
|
| +}
|
| +
|
| +void PpapiWebKitClientImpl::setCookies(
|
| + const WebKit::WebURL& url,
|
| + const WebKit::WebURL& first_party_for_cookies,
|
| + const WebKit::WebString& value) {
|
| + NOTREACHED();
|
| +}
|
| +
|
| +WebKit::WebString PpapiWebKitClientImpl::cookies(
|
| + const WebKit::WebURL& url,
|
| + const WebKit::WebURL& first_party_for_cookies) {
|
| + NOTREACHED();
|
| + return WebKit::WebString();
|
| +}
|
| +
|
| +void PpapiWebKitClientImpl::prefetchHostName(const WebKit::WebString&) {
|
| + NOTREACHED();
|
| +}
|
| +
|
| +WebKit::WebString PpapiWebKitClientImpl::defaultLocale() {
|
| + NOTREACHED();
|
| + return WebKit::WebString();
|
| +}
|
| +
|
| +WebKit::WebThemeEngine* PpapiWebKitClientImpl::themeEngine() {
|
| + NOTREACHED();
|
| + return NULL;
|
| +}
|
| +
|
| +WebKit::WebURLLoader* PpapiWebKitClientImpl::createURLLoader() {
|
| + NOTREACHED();
|
| + return NULL;
|
| +}
|
| +
|
| +WebKit::WebSocketStreamHandle*
|
| + PpapiWebKitClientImpl::createSocketStreamHandle() {
|
| + NOTREACHED();
|
| + return NULL;
|
| +}
|
| +
|
| +void PpapiWebKitClientImpl::getPluginList(bool refresh,
|
| + WebKit::WebPluginListBuilder* builder) {
|
| + NOTREACHED();
|
| +}
|
| +
|
| +WebKit::WebData PpapiWebKitClientImpl::loadResource(const char* name) {
|
| + NOTREACHED();
|
| + return WebKit::WebData();
|
| +}
|
| +
|
| +WebKit::WebStorageNamespace*
|
| +PpapiWebKitClientImpl::createLocalStorageNamespace(
|
| + const WebKit::WebString& path, unsigned quota) {
|
| + NOTREACHED();
|
| + return 0;
|
| +}
|
| +
|
| +void PpapiWebKitClientImpl::dispatchStorageEvent(
|
| + const WebKit::WebString& key, const WebKit::WebString& old_value,
|
| + const WebKit::WebString& new_value, const WebKit::WebString& origin,
|
| + const WebKit::WebURL& url, bool is_local_storage) {
|
| + NOTREACHED();
|
| +}
|
| +
|
| +WebKit::WebSharedWorkerRepository*
|
| +PpapiWebKitClientImpl::sharedWorkerRepository() {
|
| + NOTREACHED();
|
| + return NULL;
|
| +}
|
| +
|
| +int PpapiWebKitClientImpl::databaseDeleteFile(
|
| + const WebKit::WebString& vfs_file_name, bool sync_dir) {
|
| + NOTREACHED();
|
| + return 0;
|
| +}
|
| +
|
| +void PpapiWebKitClientImpl::createIDBKeysFromSerializedValuesAndKeyPath(
|
| + const WebKit::WebVector<WebKit::WebSerializedScriptValue>& values,
|
| + const WebKit::WebString& keyPath,
|
| + WebKit::WebVector<WebKit::WebIDBKey>& keys) {
|
| + NOTREACHED();
|
| +}
|
| +
|
| +WebKit::WebSerializedScriptValue
|
| +PpapiWebKitClientImpl::injectIDBKeyIntoSerializedValue(
|
| + const WebKit::WebIDBKey& key,
|
| + const WebKit::WebSerializedScriptValue& value,
|
| + const WebKit::WebString& keyPath) {
|
| + NOTREACHED();
|
| + return WebKit::WebSerializedScriptValue();
|
| +}
|
|
|
| Property changes on: content/ppapi_plugin/ppapi_webkitclient_impl.cc
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|