diff options
-rwxr-xr-x | chrome/chrome_renderer.gypi | 2 | ||||
-rw-r--r-- | chrome/renderer/render_view.cc | 26 | ||||
-rw-r--r-- | chrome/renderer/render_view.h | 5 | ||||
-rw-r--r-- | chrome/renderer/renderer_webcookiejar_impl.cc | 92 | ||||
-rw-r--r-- | chrome/renderer/renderer_webcookiejar_impl.h | 45 | ||||
-rw-r--r-- | chrome/renderer/renderer_webkitclient_impl.cc | 104 | ||||
-rw-r--r-- | chrome/renderer/renderer_webkitclient_impl.h | 15 | ||||
-rw-r--r-- | webkit/glue/webplugin_impl.cc | 25 | ||||
-rw-r--r-- | webkit/glue/webplugin_page_delegate.h | 7 | ||||
-rw-r--r-- | webkit/tools/test_shell/simple_webcookiejar_impl.cc | 25 | ||||
-rw-r--r-- | webkit/tools/test_shell/simple_webcookiejar_impl.h | 22 | ||||
-rw-r--r-- | webkit/tools/test_shell/test_shell.gypi | 2 | ||||
-rw-r--r-- | webkit/tools/test_shell/test_shell_webkit_init.h | 26 | ||||
-rw-r--r-- | webkit/tools/test_shell/test_webview_delegate.cc | 14 | ||||
-rw-r--r-- | webkit/tools/test_shell/test_webview_delegate.h | 1 |
15 files changed, 267 insertions, 144 deletions
diff --git a/chrome/chrome_renderer.gypi b/chrome/chrome_renderer.gypi index 484653a..4c22c42 100755 --- a/chrome/chrome_renderer.gypi +++ b/chrome/chrome_renderer.gypi @@ -121,6 +121,8 @@ 'renderer/renderer_main_platform_delegate_win.cc', 'renderer/renderer_sandbox_support_linux.cc', 'renderer/renderer_sandbox_support_linux.h', + 'renderer/renderer_webcookiejar_impl.cc', + 'renderer/renderer_webcookiejar_impl.h', 'renderer/renderer_webkitclient_impl.cc', 'renderer/renderer_webkitclient_impl.h', 'renderer/renderer_webstoragearea_impl.cc', diff --git a/chrome/renderer/render_view.cc b/chrome/renderer/render_view.cc index 831ab1f..a35f97b 100644 --- a/chrome/renderer/render_view.cc +++ b/chrome/renderer/render_view.cc @@ -138,6 +138,7 @@ using WebKit::WebColor; using WebKit::WebColorName; using WebKit::WebConsoleMessage; using WebKit::WebContextMenuData; +using WebKit::WebCookieJar; using WebKit::WebCString; using WebKit::WebData; using WebKit::WebDataSource; @@ -319,7 +320,8 @@ RenderView::RenderView(RenderThreadBase* render_thread, document_tag_(0), webkit_preferences_(webkit_preferences), session_storage_namespace_id_(session_storage_namespace_id), - ALLOW_THIS_IN_INITIALIZER_LIST(text_translator_(this)) { + ALLOW_THIS_IN_INITIALIZER_LIST(text_translator_(this)), + ALLOW_THIS_IN_INITIALIZER_LIST(cookie_jar_(this)) { ClearBlockedContentSettings(); page_translator_.reset(new PageTranslator(&text_translator_, this)); } @@ -2139,6 +2141,10 @@ WebMediaPlayer* RenderView::createMediaPlayer( return new webkit_glue::WebMediaPlayerImpl(client, factory); } +WebCookieJar* RenderView::cookieJar() { + return &cookie_jar_; +} + void RenderView::willClose(WebFrame* frame) { if (!frame->parent()) { const GURL& url = frame->url(); @@ -3044,13 +3050,6 @@ void RenderView::DidStopLoadingForPlugin() { didStopLoading(); } -void RenderView::PageTranslated(int page_id, - const std::string& original_lang, - const std::string& target_lang) { - Send(new ViewHostMsg_PageTranslated(routing_id_, page_id_, - original_lang, target_lang)); -} - void RenderView::ShowModalHTMLDialogForPlugin( const GURL& url, const gfx::Size& size, @@ -3061,6 +3060,17 @@ void RenderView::ShowModalHTMLDialogForPlugin( json_retval)); } +WebCookieJar* RenderView::GetCookieJar() { + return &cookie_jar_; +} + +void RenderView::PageTranslated(int page_id, + const std::string& original_lang, + const std::string& target_lang) { + Send(new ViewHostMsg_PageTranslated(routing_id_, page_id_, + original_lang, target_lang)); +} + void RenderView::SyncNavigationState() { if (!webview()) return; diff --git a/chrome/renderer/render_view.h b/chrome/renderer/render_view.h index 173404f..34069e9 100644 --- a/chrome/renderer/render_view.h +++ b/chrome/renderer/render_view.h @@ -39,6 +39,7 @@ #include "chrome/renderer/notification_provider.h" #include "chrome/renderer/render_widget.h" #include "chrome/renderer/render_view_visitor.h" +#include "chrome/renderer/renderer_webcookiejar_impl.h" #include "chrome/renderer/translate/page_translator.h" #include "chrome/renderer/translate/text_translator_impl.h" #include "third_party/skia/include/core/SkBitmap.h" @@ -292,6 +293,7 @@ class RenderView : public RenderWidget, const WebKit::WebString& name, unsigned long long documentId); virtual WebKit::WebMediaPlayer* createMediaPlayer( WebKit::WebFrame* frame, WebKit::WebMediaPlayerClient* client); + virtual WebKit::WebCookieJar* cookieJar(); virtual void willClose(WebKit::WebFrame* frame); virtual bool allowPlugins(WebKit::WebFrame* frame, bool enabled_per_settings); virtual bool allowImages(WebKit::WebFrame* frame, bool enabled_per_settings); @@ -397,6 +399,7 @@ class RenderView : public RenderWidget, const gfx::Size& size, const std::string& json_arguments, std::string* json_retval); + virtual WebKit::WebCookieJar* GetCookieJar(); // PageTranslator::PageTranslatorDelegate implementation: virtual void PageTranslated(int page_id, @@ -1133,6 +1136,8 @@ class RenderView : public RenderWidget, // The geolocation dispatcher attached to this view, lazily initialized. scoped_ptr<GeolocationDispatcher> geolocation_dispatcher_; + RendererWebCookieJarImpl cookie_jar_; + DISALLOW_COPY_AND_ASSIGN(RenderView); }; diff --git a/chrome/renderer/renderer_webcookiejar_impl.cc b/chrome/renderer/renderer_webcookiejar_impl.cc new file mode 100644 index 0000000..9e9263a --- /dev/null +++ b/chrome/renderer/renderer_webcookiejar_impl.cc @@ -0,0 +1,92 @@ +// Copyright (c) 2010 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 "chrome/renderer/renderer_webcookiejar_impl.h" + +#include "chrome/common/render_messages.h" +#include "chrome/renderer/cookie_message_filter.h" +#include "chrome/renderer/render_thread.h" +#include "third_party/WebKit/WebKit/chromium/public/WebCookie.h" + +using WebKit::WebCookie; +using WebKit::WebString; +using WebKit::WebURL; +using WebKit::WebVector; + +void RendererWebCookieJarImpl::SendSynchronousMessage( + IPC::SyncMessage* message) { + CookieMessageFilter* filter = + RenderThread::current()->cookie_message_filter(); + + message->set_pump_messages_event(filter->pump_messages_event()); + sender_->Send(message); + + // We may end up nesting calls to SendCookieMessage, so we defer the reset + // until we return to the top-most message loop. + if (filter->pump_messages_event()->IsSignaled()) { + MessageLoop::current()->PostNonNestableTask(FROM_HERE, + NewRunnableMethod(filter, + &CookieMessageFilter::ResetPumpMessagesEvent)); + } +} + +void RendererWebCookieJarImpl::setCookie( + const WebURL& url, const WebURL& first_party_for_cookies, + const WebString& value) { + std::string value_utf8; + UTF16ToUTF8(value.data(), value.length(), &value_utf8); + sender_->Send(new ViewHostMsg_SetCookie( + MSG_ROUTING_NONE, url, first_party_for_cookies, value_utf8)); +} + +WebString RendererWebCookieJarImpl::cookies( + const WebURL& url, const WebURL& first_party_for_cookies) { + std::string value_utf8; + SendSynchronousMessage(new ViewHostMsg_GetCookies( + MSG_ROUTING_NONE, url, first_party_for_cookies, &value_utf8)); + return WebString::fromUTF8(value_utf8); +} + +WebString RendererWebCookieJarImpl::cookieRequestHeaderFieldValue( + const WebURL& url, const WebURL& first_party_for_cookies) { + return cookies(url, first_party_for_cookies); +} + +void RendererWebCookieJarImpl::rawCookies( + const WebURL& url, const WebURL& first_party_for_cookies, + WebVector<WebCookie>& raw_cookies) { + std::vector<webkit_glue::WebCookie> cookies; + SendSynchronousMessage(new ViewHostMsg_GetRawCookies( + MSG_ROUTING_NONE, url, first_party_for_cookies, &cookies)); + + WebVector<WebCookie> result(cookies.size()); + int i = 0; + for (std::vector<webkit_glue::WebCookie>::iterator it = cookies.begin(); + it != cookies.end(); ++it) { + result[i++] = WebCookie(WebString::fromUTF8(it->name), + WebString::fromUTF8(it->value), + WebString::fromUTF8(it->domain), + WebString::fromUTF8(it->path), + it->expires, + it->http_only, + it->secure, + it->session); + } + raw_cookies.swap(result); +} + +void RendererWebCookieJarImpl::deleteCookie( + const WebURL& url, const WebString& cookie_name) { + std::string cookie_name_utf8; + UTF16ToUTF8(cookie_name.data(), cookie_name.length(), &cookie_name_utf8); + sender_->Send(new ViewHostMsg_DeleteCookie(url, cookie_name_utf8)); +} + +bool RendererWebCookieJarImpl::cookiesEnabled( + const WebURL& url, const WebURL& first_party_for_cookies) { + bool enabled; + sender_->Send(new ViewHostMsg_GetCookiesEnabled( + url, first_party_for_cookies, &enabled)); + return enabled; +} diff --git a/chrome/renderer/renderer_webcookiejar_impl.h b/chrome/renderer/renderer_webcookiejar_impl.h new file mode 100644 index 0000000..e4f113a --- /dev/null +++ b/chrome/renderer/renderer_webcookiejar_impl.h @@ -0,0 +1,45 @@ +// Copyright (c) 2010 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. + +#ifndef CHROME_RENDERER_RENDERER_WEBCOOKIEJAR_IMPL_H_ +#define CHROME_RENDERER_RENDERER_WEBCOOKIEJAR_IMPL_H_ + +#include "ipc/ipc_message.h" +// TODO(darin): WebCookieJar.h is missing a WebString.h include! +#include "third_party/WebKit/WebKit/chromium/public/WebString.h" +#include "third_party/WebKit/WebKit/chromium/public/WebCookieJar.h" + +namespace IPC { +class SyncMessage; +} + +class RendererWebCookieJarImpl : public WebKit::WebCookieJar { + public: + explicit RendererWebCookieJarImpl(IPC::Message::Sender* sender) + : sender_(sender) { + } + + private: + void SendSynchronousMessage(IPC::SyncMessage* message); + + // WebKit::WebCookieJar methods: + virtual void setCookie( + const WebKit::WebURL& url, const WebKit::WebURL& first_party_for_cookies, + const WebKit::WebString& value); + virtual WebKit::WebString cookies( + const WebKit::WebURL& url, const WebKit::WebURL& first_party_for_cookies); + virtual WebKit::WebString cookieRequestHeaderFieldValue( + const WebKit::WebURL& url, const WebKit::WebURL& first_party_for_cookies); + virtual void rawCookies( + const WebKit::WebURL& url, const WebKit::WebURL& first_party_for_cookies, + WebKit::WebVector<WebKit::WebCookie>& cookies); + virtual void deleteCookie( + const WebKit::WebURL& url, const WebKit::WebString& cookie_name); + virtual bool cookiesEnabled( + const WebKit::WebURL& url, const WebKit::WebURL& first_party_for_cookies); + + IPC::Message::Sender* sender_; +}; + +#endif // CHROME_RENDERER_RENDERER_WEBCOOKIEJAR_IMPL_H_ diff --git a/chrome/renderer/renderer_webkitclient_impl.cc b/chrome/renderer/renderer_webkitclient_impl.cc index 68bfe06..534cd75 100644 --- a/chrome/renderer/renderer_webkitclient_impl.cc +++ b/chrome/renderer/renderer_webkitclient_impl.cc @@ -19,14 +19,12 @@ #include "chrome/common/render_messages.h" #include "chrome/common/webmessageportchannel_impl.h" #include "chrome/plugin/npobject_util.h" -#include "chrome/renderer/cookie_message_filter.h" #include "chrome/renderer/net/render_dns_master.h" #include "chrome/renderer/render_thread.h" #include "chrome/renderer/render_view.h" #include "chrome/renderer/renderer_webstoragenamespace_impl.h" #include "chrome/renderer/visitedlink_slave.h" #include "googleurl/src/gurl.h" -#include "third_party/WebKit/WebKit/chromium/public/WebCookie.h" #include "third_party/WebKit/WebKit/chromium/public/WebFrame.h" #include "third_party/WebKit/WebKit/chromium/public/WebStorageEventDispatcher.h" #include "third_party/WebKit/WebKit/chromium/public/WebString.h" @@ -45,7 +43,6 @@ using WebKit::WebApplicationCacheHost; using WebKit::WebApplicationCacheHostClient; -using WebKit::WebCookie; using WebKit::WebFrame; using WebKit::WebKitClient; using WebKit::WebStorageArea; @@ -73,6 +70,11 @@ WebKit::WebSandboxSupport* RendererWebKitClientImpl::sandboxSupport() { #endif } +WebKit::WebCookieJar* RendererWebKitClientImpl::cookieJar() { + NOTREACHED() << "Use WebFrameClient::cookieJar() instead!"; + return NULL; +} + bool RendererWebKitClientImpl::sandboxEnabled() { // As explained in WebKitClient.h, this function is used to decide whether to // allow file system operations to come out of WebKit or not. Even if the @@ -112,84 +114,6 @@ RendererWebKitClientImpl::createMessagePortChannel() { return new WebMessagePortChannelImpl(); } -void RendererWebKitClientImpl::setCookies(const WebURL& url, - const WebURL& first_party_for_cookies, - const WebString& value) { - // TODO(darin): Modify WebKit to pass the WebFrame. This code may be reached - // when there is no active script context. - int32 routing_id = RenderThread::RoutingIDForCurrentContext(); - - std::string value_utf8; - UTF16ToUTF8(value.data(), value.length(), &value_utf8); - RenderThread::current()->Send( - new ViewHostMsg_SetCookie(routing_id, url, first_party_for_cookies, - value_utf8)); -} - -WebString RendererWebKitClientImpl::cookies( - const WebURL& url, const WebURL& first_party_for_cookies) { - // TODO(darin): Modify WebKit to pass the WebFrame. This code may be reached - // when there is no active script context. - int32 routing_id = RenderThread::RoutingIDForCurrentContext(); - - // TODO(darin): We should use SendAndRunNestedMessageLoop here to avoid dead- - // locking the browser, but this causes a performance regression. Switching - // back to Send to verify. See http://crbug.com/36310. - - std::string value_utf8; - SendCookieMessage( - new ViewHostMsg_GetCookies(routing_id, url, first_party_for_cookies, - &value_utf8)); - - return WebString::fromUTF8(value_utf8); -} - -bool RendererWebKitClientImpl::rawCookies( - const WebURL& url, - const WebURL& first_party_for_cookies, - WebVector<WebKit::WebCookie>* raw_cookies) { - // TODO(darin): Modify WebKit to pass the WebFrame. This code may be reached - // when there is no active script context. - int32 routing_id = RenderThread::RoutingIDForCurrentContext(); - - std::vector<webkit_glue::WebCookie> cookies; - SendCookieMessage( - new ViewHostMsg_GetRawCookies(routing_id, url, first_party_for_cookies, - &cookies)); - - WebVector<WebKit::WebCookie> result(cookies.size()); - int i = 0; - for (std::vector<webkit_glue::WebCookie>::iterator it = cookies.begin(); - it != cookies.end(); ++it) - result[i++] = WebKit::WebCookie(WebString::fromUTF8(it->name), - WebString::fromUTF8(it->value), - WebString::fromUTF8(it->domain), - WebString::fromUTF8(it->path), - it->expires, - it->http_only, - it->secure, - it->session); - raw_cookies->assign(result); - return true; -} - -void RendererWebKitClientImpl::deleteCookie(const WebURL& url, - const WebString& cookie_name) { - std::string cookie_name_utf8; - UTF16ToUTF8(cookie_name.data(), cookie_name.length(), &cookie_name_utf8); - RenderThread::current()->Send( - new ViewHostMsg_DeleteCookie(url, cookie_name_utf8)); -} - -bool RendererWebKitClientImpl::cookiesEnabled( - const WebKit::WebURL& url, const WebKit::WebURL& first_party_for_cookies) { - bool enabled; - RenderThread::current()->Send( - new ViewHostMsg_GetCookiesEnabled( - url, first_party_for_cookies, &enabled)); - return enabled; -} - void RendererWebKitClientImpl::prefetchHostName(const WebString& hostname) { if (!hostname.isEmpty()) { std::string hostname_utf8; @@ -414,21 +338,3 @@ WebKit::WebString RendererWebKitClientImpl::signedPublicKeyAndChallengeString( &signed_public_key)); return WebString::fromUTF8(signed_public_key); } - -//------------------------------------------------------------------------------ - -void RendererWebKitClientImpl::SendCookieMessage(IPC::SyncMessage* message) { - RenderThread* render_thread = RenderThread::current(); - - CookieMessageFilter* filter = render_thread->cookie_message_filter(); - message->set_pump_messages_event(filter->pump_messages_event()); - render_thread->Send(message); - - // We may end up nesting calls to SendCookieMessage, so we defer the reset - // until we return to the top-most message loop. - if (filter->pump_messages_event()->IsSignaled()) { - MessageLoop::current()->PostNonNestableTask(FROM_HERE, - NewRunnableMethod(filter, - &CookieMessageFilter::ResetPumpMessagesEvent)); - } -} diff --git a/chrome/renderer/renderer_webkitclient_impl.h b/chrome/renderer/renderer_webkitclient_impl.h index b3a446c..71154c8 100644 --- a/chrome/renderer/renderer_webkitclient_impl.h +++ b/chrome/renderer/renderer_webkitclient_impl.h @@ -32,24 +32,13 @@ class RendererWebKitClientImpl : public webkit_glue::WebKitClientImpl { virtual WebKit::WebClipboard* clipboard(); virtual WebKit::WebMimeRegistry* mimeRegistry(); virtual WebKit::WebSandboxSupport* sandboxSupport(); + virtual WebKit::WebCookieJar* cookieJar(); virtual bool sandboxEnabled(); virtual bool getFileSize(const WebKit::WebString& path, long long& result); virtual unsigned long long visitedLinkHash( const char* canonicalURL, size_t length); virtual bool isLinkVisited(unsigned long long linkHash); virtual WebKit::WebMessagePortChannel* createMessagePortChannel(); - virtual void setCookies(const WebKit::WebURL& url, - const WebKit::WebURL& first_party_for_cookies, - const WebKit::WebString&); - virtual WebKit::WebString cookies( - const WebKit::WebURL& url, const WebKit::WebURL& first_party_for_cookies); - virtual bool rawCookies(const WebKit::WebURL& url, - const WebKit::WebURL& first_party_for_cookies, - WebKit::WebVector<WebKit::WebCookie>* raw_cookies); - virtual void deleteCookie(const WebKit::WebURL& url, - const WebKit::WebString& cookie_name); - virtual bool cookiesEnabled(const WebKit::WebURL& url, - const WebKit::WebURL& first_party_for_cookies); virtual void prefetchHostName(const WebKit::WebString&); virtual WebKit::WebString defaultLocale(); virtual void suddenTerminationChanged(bool enabled); @@ -110,8 +99,6 @@ class RendererWebKitClientImpl : public webkit_glue::WebKitClientImpl { }; #endif - void SendCookieMessage(IPC::SyncMessage* message); - webkit_glue::WebClipboardImpl clipboard_; MimeRegistry mime_registry_; diff --git a/webkit/glue/webplugin_impl.cc b/webkit/glue/webplugin_impl.cc index 20b86b4..adf5f64 100644 --- a/webkit/glue/webplugin_impl.cc +++ b/webkit/glue/webplugin_impl.cc @@ -11,6 +11,7 @@ #include "net/base/net_errors.h" #include "skia/ext/platform_canvas.h" #include "third_party/WebKit/WebKit/chromium/public/WebConsoleMessage.h" +#include "third_party/WebKit/WebKit/chromium/public/WebCookieJar.h" #include "third_party/WebKit/WebKit/chromium/public/WebCString.h" #include "third_party/WebKit/WebKit/chromium/public/WebCursorInfo.h" #include "third_party/WebKit/WebKit/chromium/public/WebDevToolsAgent.h" @@ -40,6 +41,7 @@ using WebKit::WebCanvas; using WebKit::WebConsoleMessage; +using WebKit::WebCookieJar; using WebKit::WebCString; using WebKit::WebCursorInfo; using WebKit::WebData; @@ -584,14 +586,31 @@ NPObject* WebPluginImpl::GetPluginElement() { void WebPluginImpl::SetCookie(const GURL& url, const GURL& first_party_for_cookies, const std::string& cookie) { - WebKit::webKitClient()->setCookies( + if (!page_delegate_) + return; + + WebCookieJar* cookie_jar = page_delegate_->GetCookieJar(); + if (!cookie_jar) { + DLOG(WARNING) << "No cookie jar!"; + return; + } + + cookie_jar->setCookie( url, first_party_for_cookies, WebString::fromUTF8(cookie)); } std::string WebPluginImpl::GetCookies(const GURL& url, const GURL& first_party_for_cookies) { - return UTF16ToUTF8(WebKit::webKitClient()->cookies(url, - first_party_for_cookies)); + if (!page_delegate_) + return std::string(); + + WebCookieJar* cookie_jar = page_delegate_->GetCookieJar(); + if (!cookie_jar) { + DLOG(WARNING) << "No cookie jar!"; + return std::string(); + } + + return UTF16ToUTF8(cookie_jar->cookies(url, first_party_for_cookies)); } void WebPluginImpl::ShowModalHTMLDialog(const GURL& url, int width, int height, diff --git a/webkit/glue/webplugin_page_delegate.h b/webkit/glue/webplugin_page_delegate.h index 25be5ec..58f6da6 100644 --- a/webkit/glue/webplugin_page_delegate.h +++ b/webkit/glue/webplugin_page_delegate.h @@ -9,6 +9,10 @@ class GURL; +namespace WebKit { +class WebCookieJar; +} + namespace webkit_glue { class WebPluginDelegate; @@ -55,6 +59,9 @@ class WebPluginPageDelegate { const gfx::Size& size, const std::string& json_arguments, std::string* json_retval) = 0; + + // The WebCookieJar to use for this plugin. + virtual WebKit::WebCookieJar* GetCookieJar() = 0; }; } // namespace webkit_glue diff --git a/webkit/tools/test_shell/simple_webcookiejar_impl.cc b/webkit/tools/test_shell/simple_webcookiejar_impl.cc new file mode 100644 index 0000000..e534beb --- /dev/null +++ b/webkit/tools/test_shell/simple_webcookiejar_impl.cc @@ -0,0 +1,25 @@ +// Copyright (c) 2010 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 "webkit/tools/test_shell/simple_webcookiejar_impl.h" + +#include "third_party/WebKit/WebKit/chromium/public/WebURL.h" +#include "webkit/tools/test_shell/simple_resource_loader_bridge.h" + +using WebKit::WebString; +using WebKit::WebURL; + +void SimpleWebCookieJarImpl::setCookie(const WebURL& url, + const WebURL& first_party_for_cookies, + const WebString& value) { + SimpleResourceLoaderBridge::SetCookie( + url, first_party_for_cookies, value.utf8()); +} + +WebString SimpleWebCookieJarImpl::cookies( + const WebURL& url, + const WebURL& first_party_for_cookies) { + return WebString::fromUTF8( + SimpleResourceLoaderBridge::GetCookies(url, first_party_for_cookies)); +} diff --git a/webkit/tools/test_shell/simple_webcookiejar_impl.h b/webkit/tools/test_shell/simple_webcookiejar_impl.h new file mode 100644 index 0000000..fe53561 --- /dev/null +++ b/webkit/tools/test_shell/simple_webcookiejar_impl.h @@ -0,0 +1,22 @@ +// Copyright (c) 2010 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. + +#ifndef WEBKIT_TOOLS_TEST_SHELL_SIMPLE_WEBCOOKIEJAR_IMPL_H_ +#define WEBKIT_TOOLS_TEST_SHELL_SIMPLE_WEBCOOKIEJAR_IMPL_H_ + +// TODO(darin): WebCookieJar.h is missing a WebString.h include! +#include "third_party/WebKit/WebKit/chromium/public/WebString.h" +#include "third_party/WebKit/WebKit/chromium/public/WebCookieJar.h" + +class SimpleWebCookieJarImpl : public WebKit::WebCookieJar { + public: + // WebKit::WebCookieJar methods: + virtual void setCookie( + const WebKit::WebURL& url, const WebKit::WebURL& first_party_for_cookies, + const WebKit::WebString& cookie); + virtual WebKit::WebString cookies( + const WebKit::WebURL& url, const WebKit::WebURL& first_party_for_cookies); +}; + +#endif // WEBKIT_TOOLS_TEST_SHELL_SIMPLE_WEBCOOKIEJAR_IMPL_H_ diff --git a/webkit/tools/test_shell/test_shell.gypi b/webkit/tools/test_shell/test_shell.gypi index 4ad72ca..67bb736 100644 --- a/webkit/tools/test_shell/test_shell.gypi +++ b/webkit/tools/test_shell/test_shell.gypi @@ -83,6 +83,8 @@ 'simple_resource_loader_bridge.h', 'simple_socket_stream_bridge.cc', 'simple_socket_stream_bridge.h', + 'simple_webcookiejar_impl.h', + 'simple_webcookiejar_impl.cc', 'test_navigation_controller.cc', 'test_navigation_controller.h', 'test_shell.cc', diff --git a/webkit/tools/test_shell/test_shell_webkit_init.h b/webkit/tools/test_shell/test_shell_webkit_init.h index 4c59551..95608ae 100644 --- a/webkit/tools/test_shell/test_shell_webkit_init.h +++ b/webkit/tools/test_shell/test_shell_webkit_init.h @@ -1,6 +1,6 @@ -// Copyright (c) 2009 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. +// Copyright (c) 2010 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. #ifndef WEBKIT_TOOLS_TEST_SHELL_TEST_SHELL_WEBKIT_INIT_H_ #define WEBKIT_TOOLS_TEST_SHELL_TEST_SHELL_WEBKIT_INIT_H_ @@ -34,6 +34,7 @@ #include "webkit/tools/test_shell/simple_appcache_system.h" #include "webkit/tools/test_shell/simple_database_system.h" #include "webkit/tools/test_shell/simple_resource_loader_bridge.h" +#include "webkit/tools/test_shell/simple_webcookiejar_impl.h" #include "v8/include/v8.h" #if defined(OS_WIN) @@ -111,6 +112,10 @@ class TestShellWebKitInit : public webkit_glue::WebKitClientImpl { return NULL; } + virtual WebKit::WebCookieJar* cookieJar() { + return &cookie_jar_; + } + virtual bool sandboxEnabled() { return true; } @@ -158,20 +163,6 @@ class TestShellWebKitInit : public webkit_glue::WebKitClientImpl { return NULL; } - virtual void setCookies(const WebKit::WebURL& url, - const WebKit::WebURL& first_party_for_cookies, - const WebKit::WebString& value) { - SimpleResourceLoaderBridge::SetCookie( - url, first_party_for_cookies, value.utf8()); - } - - virtual WebKit::WebString cookies( - const WebKit::WebURL& url, - const WebKit::WebURL& first_party_for_cookies) { - return WebKit::WebString::fromUTF8(SimpleResourceLoaderBridge::GetCookies( - url, first_party_for_cookies)); - } - virtual void prefetchHostName(const WebKit::WebString&) { } @@ -238,6 +229,7 @@ class TestShellWebKitInit : public webkit_glue::WebKitClientImpl { ScopedTempDir appcache_dir_; SimpleAppCacheSystem appcache_system_; SimpleDatabaseSystem database_system_; + SimpleWebCookieJarImpl cookie_jar_; #if defined(OS_WIN) WebKit::WebThemeEngine* active_theme_engine_; diff --git a/webkit/tools/test_shell/test_webview_delegate.cc b/webkit/tools/test_shell/test_webview_delegate.cc index 4f0ed93..4c5db40 100644 --- a/webkit/tools/test_shell/test_webview_delegate.cc +++ b/webkit/tools/test_shell/test_webview_delegate.cc @@ -26,6 +26,7 @@ #include "third_party/WebKit/WebKit/chromium/public/WebHistoryItem.h" #include "third_party/WebKit/WebKit/chromium/public/WebFrame.h" #include "third_party/WebKit/WebKit/chromium/public/WebKit.h" +#include "third_party/WebKit/WebKit/chromium/public/WebKitClient.h" #include "third_party/WebKit/WebKit/chromium/public/WebNode.h" #include "third_party/WebKit/WebKit/chromium/public/WebPoint.h" #include "third_party/WebKit/WebKit/chromium/public/WebPopupMenu.h" @@ -67,6 +68,7 @@ using appcache::WebApplicationCacheHostImpl; using WebKit::WebAccessibilityObject; using WebKit::WebConsoleMessage; using WebKit::WebContextMenuData; +using WebKit::WebCookieJar; using WebKit::WebData; using WebKit::WebDataSource; using WebKit::WebDragData; @@ -590,6 +592,11 @@ int TestWebViewDelegate::historyForwardListCount() { return shell_->navigation_controller()->GetEntryCount() - current_index - 1; } +void TestWebViewDelegate::focusAccessibilityObject( + const WebAccessibilityObject& object) { + shell_->accessibility_controller()->SetFocusedElement(object); +} + // WebWidgetClient ----------------------------------------------------------- void TestWebViewDelegate::didInvalidateRect(const WebRect& rect) { @@ -1013,9 +1020,10 @@ bool TestWebViewDelegate::allowScript(WebFrame* frame, return enabled_per_settings && shell_->allow_scripts(); } -void TestWebViewDelegate::focusAccessibilityObject( - const WebAccessibilityObject& object) { - shell_->accessibility_controller()->SetFocusedElement(object); +// WebPluginPageDelegate ----------------------------------------------------- + +WebCookieJar* TestWebViewDelegate::GetCookieJar() { + return WebKit::webKitClient()->cookieJar(); } // Public methods ------------------------------------------------------------ diff --git a/webkit/tools/test_shell/test_webview_delegate.h b/webkit/tools/test_shell/test_webview_delegate.h index 305b2fa..4bd36f5 100644 --- a/webkit/tools/test_shell/test_webview_delegate.h +++ b/webkit/tools/test_shell/test_webview_delegate.h @@ -225,6 +225,7 @@ class TestWebViewDelegate : public WebKit::WebViewClient, const gfx::Size& size, const std::string& json_arguments, std::string* json_retval) {} + virtual WebKit::WebCookieJar* GetCookieJar(); TestWebViewDelegate(TestShell* shell); ~TestWebViewDelegate(); |