mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-02-16 20:20:51 +01:00
libcef: Update due to underlying chromium changes.
- WebKit API changes. - Delay OnClose actions in WebSocketStreamHandleBridgeImpl. git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@63 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
This commit is contained in:
parent
cd500a98a9
commit
7e7592b298
@ -45,3 +45,4 @@ Date | CEF Revision | Chromium Revision
|
|||||||
2009-10-18 | /trunk@58 | /trunk@29378
|
2009-10-18 | /trunk@58 | /trunk@29378
|
||||||
2009-10-21 | /trunk@60 | /trunk@29687
|
2009-10-21 | /trunk@60 | /trunk@29687
|
||||||
2009-10-25 | /trunk@61 | /trunk@30028
|
2009-10-25 | /trunk@61 | /trunk@30028
|
||||||
|
2009-11-02 | /trunk@63 | /trunk@30778
|
||||||
|
4
cef.gyp
4
cef.gyp
@ -146,10 +146,10 @@
|
|||||||
'../third_party/WebKit/JavaScriptCore/JavaScriptCore.gyp/JavaScriptCore.gyp:wtf',
|
'../third_party/WebKit/JavaScriptCore/JavaScriptCore.gyp/JavaScriptCore.gyp:wtf',
|
||||||
'../third_party/WebKit/WebCore/WebCore.gyp/WebCore.gyp:webcore',
|
'../third_party/WebKit/WebCore/WebCore.gyp/WebCore.gyp:webcore',
|
||||||
'../third_party/zlib/zlib.gyp:zlib',
|
'../third_party/zlib/zlib.gyp:zlib',
|
||||||
|
'../webkit/api/WebKit.gyp:webkit',
|
||||||
'../webkit/webkit.gyp:appcache',
|
'../webkit/webkit.gyp:appcache',
|
||||||
'../webkit/webkit.gyp:database',
|
'../webkit/webkit.gyp:database',
|
||||||
'../webkit/webkit.gyp:glue',
|
'../webkit/webkit.gyp:glue',
|
||||||
'../webkit/webkit.gyp:webkit',
|
|
||||||
'../webkit/webkit.gyp:webkit_resources',
|
'../webkit/webkit.gyp:webkit_resources',
|
||||||
'../webkit/webkit.gyp:webkit_strings',
|
'../webkit/webkit.gyp:webkit_strings',
|
||||||
'../webkit/default_plugin/default_plugin.gyp:default_plugin',
|
'../webkit/default_plugin/default_plugin.gyp:default_plugin',
|
||||||
@ -308,10 +308,10 @@
|
|||||||
'../third_party/WebKit/JavaScriptCore/JavaScriptCore.gyp/JavaScriptCore.gyp:wtf',
|
'../third_party/WebKit/JavaScriptCore/JavaScriptCore.gyp/JavaScriptCore.gyp:wtf',
|
||||||
'../third_party/WebKit/WebCore/WebCore.gyp/WebCore.gyp:webcore',
|
'../third_party/WebKit/WebCore/WebCore.gyp/WebCore.gyp:webcore',
|
||||||
'../third_party/zlib/zlib.gyp:zlib',
|
'../third_party/zlib/zlib.gyp:zlib',
|
||||||
|
'../webkit/api/WebKit.gyp:webkit',
|
||||||
'../webkit/webkit.gyp:appcache',
|
'../webkit/webkit.gyp:appcache',
|
||||||
'../webkit/webkit.gyp:database',
|
'../webkit/webkit.gyp:database',
|
||||||
'../webkit/webkit.gyp:glue',
|
'../webkit/webkit.gyp:glue',
|
||||||
'../webkit/webkit.gyp:webkit',
|
|
||||||
'../webkit/webkit.gyp:webkit_resources',
|
'../webkit/webkit.gyp:webkit_resources',
|
||||||
'../webkit/webkit.gyp:webkit_strings',
|
'../webkit/webkit.gyp:webkit_strings',
|
||||||
'../webkit/default_plugin/default_plugin.gyp:default_plugin',
|
'../webkit/default_plugin/default_plugin.gyp:default_plugin',
|
||||||
|
@ -59,7 +59,7 @@ class WebSocketStreamHandleBridgeImpl
|
|||||||
void DoOnConnected(int max_amount_send_allowed);
|
void DoOnConnected(int max_amount_send_allowed);
|
||||||
void DoOnSentData(int amount_sent);
|
void DoOnSentData(int amount_sent);
|
||||||
void DoOnReceivedData(std::vector<char>* data);
|
void DoOnReceivedData(std::vector<char>* data);
|
||||||
void DoOnClose(webkit_glue::WebSocketStreamHandleDelegate* delegate);
|
void DoOnClose();
|
||||||
|
|
||||||
int socket_id_;
|
int socket_id_;
|
||||||
MessageLoop* message_loop_;
|
MessageLoop* message_loop_;
|
||||||
@ -67,6 +67,8 @@ class WebSocketStreamHandleBridgeImpl
|
|||||||
webkit_glue::WebSocketStreamHandleDelegate* delegate_;
|
webkit_glue::WebSocketStreamHandleDelegate* delegate_;
|
||||||
|
|
||||||
scoped_refptr<net::SocketStream> socket_;
|
scoped_refptr<net::SocketStream> socket_;
|
||||||
|
// Number of pending tasks to handle net::SocketStream::Delegate methods.
|
||||||
|
int num_pending_tasks_;
|
||||||
|
|
||||||
DISALLOW_COPY_AND_ASSIGN(WebSocketStreamHandleBridgeImpl);
|
DISALLOW_COPY_AND_ASSIGN(WebSocketStreamHandleBridgeImpl);
|
||||||
};
|
};
|
||||||
@ -77,15 +79,16 @@ WebSocketStreamHandleBridgeImpl::WebSocketStreamHandleBridgeImpl(
|
|||||||
: socket_id_(kNoSocketId),
|
: socket_id_(kNoSocketId),
|
||||||
message_loop_(MessageLoop::current()),
|
message_loop_(MessageLoop::current()),
|
||||||
handle_(handle),
|
handle_(handle),
|
||||||
delegate_(delegate) {
|
delegate_(delegate),
|
||||||
|
num_pending_tasks_(0) {
|
||||||
}
|
}
|
||||||
|
|
||||||
WebSocketStreamHandleBridgeImpl::~WebSocketStreamHandleBridgeImpl() {
|
WebSocketStreamHandleBridgeImpl::~WebSocketStreamHandleBridgeImpl() {
|
||||||
CHECK(socket_id_ == kNoSocketId);
|
DCHECK_EQ(socket_id_, kNoSocketId);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WebSocketStreamHandleBridgeImpl::Connect(const GURL& url) {
|
void WebSocketStreamHandleBridgeImpl::Connect(const GURL& url) {
|
||||||
CHECK(g_io_thread);
|
DCHECK(g_io_thread);
|
||||||
AddRef(); // Released in DoOnClose().
|
AddRef(); // Released in DoOnClose().
|
||||||
g_io_thread->PostTask(
|
g_io_thread->PostTask(
|
||||||
FROM_HERE,
|
FROM_HERE,
|
||||||
@ -97,7 +100,7 @@ void WebSocketStreamHandleBridgeImpl::Connect(const GURL& url) {
|
|||||||
|
|
||||||
bool WebSocketStreamHandleBridgeImpl::Send(
|
bool WebSocketStreamHandleBridgeImpl::Send(
|
||||||
const std::vector<char>& data) {
|
const std::vector<char>& data) {
|
||||||
CHECK(g_io_thread);
|
DCHECK(g_io_thread);
|
||||||
g_io_thread->PostTask(
|
g_io_thread->PostTask(
|
||||||
FROM_HERE,
|
FROM_HERE,
|
||||||
NewRunnableMethod(this, &WebSocketStreamHandleBridgeImpl::DoSend,
|
NewRunnableMethod(this, &WebSocketStreamHandleBridgeImpl::DoSend,
|
||||||
@ -106,7 +109,7 @@ bool WebSocketStreamHandleBridgeImpl::Send(
|
|||||||
}
|
}
|
||||||
|
|
||||||
void WebSocketStreamHandleBridgeImpl::Close() {
|
void WebSocketStreamHandleBridgeImpl::Close() {
|
||||||
CHECK(g_io_thread);
|
DCHECK(g_io_thread);
|
||||||
g_io_thread->PostTask(
|
g_io_thread->PostTask(
|
||||||
FROM_HERE,
|
FROM_HERE,
|
||||||
NewRunnableMethod(this, &WebSocketStreamHandleBridgeImpl::DoClose));
|
NewRunnableMethod(this, &WebSocketStreamHandleBridgeImpl::DoClose));
|
||||||
@ -114,6 +117,7 @@ void WebSocketStreamHandleBridgeImpl::Close() {
|
|||||||
|
|
||||||
void WebSocketStreamHandleBridgeImpl::OnConnected(
|
void WebSocketStreamHandleBridgeImpl::OnConnected(
|
||||||
net::SocketStream* socket, int max_pending_send_allowed) {
|
net::SocketStream* socket, int max_pending_send_allowed) {
|
||||||
|
++num_pending_tasks_;
|
||||||
message_loop_->PostTask(
|
message_loop_->PostTask(
|
||||||
FROM_HERE,
|
FROM_HERE,
|
||||||
NewRunnableMethod(this, &WebSocketStreamHandleBridgeImpl::DoOnConnected,
|
NewRunnableMethod(this, &WebSocketStreamHandleBridgeImpl::DoOnConnected,
|
||||||
@ -122,6 +126,7 @@ void WebSocketStreamHandleBridgeImpl::OnConnected(
|
|||||||
|
|
||||||
void WebSocketStreamHandleBridgeImpl::OnSentData(
|
void WebSocketStreamHandleBridgeImpl::OnSentData(
|
||||||
net::SocketStream* socket, int amount_sent) {
|
net::SocketStream* socket, int amount_sent) {
|
||||||
|
++num_pending_tasks_;
|
||||||
message_loop_->PostTask(
|
message_loop_->PostTask(
|
||||||
FROM_HERE,
|
FROM_HERE,
|
||||||
NewRunnableMethod(this, &WebSocketStreamHandleBridgeImpl::DoOnSentData,
|
NewRunnableMethod(this, &WebSocketStreamHandleBridgeImpl::DoOnSentData,
|
||||||
@ -130,6 +135,7 @@ void WebSocketStreamHandleBridgeImpl::OnSentData(
|
|||||||
|
|
||||||
void WebSocketStreamHandleBridgeImpl::OnReceivedData(
|
void WebSocketStreamHandleBridgeImpl::OnReceivedData(
|
||||||
net::SocketStream* socket, const char* data, int len) {
|
net::SocketStream* socket, const char* data, int len) {
|
||||||
|
++num_pending_tasks_;
|
||||||
message_loop_->PostTask(
|
message_loop_->PostTask(
|
||||||
FROM_HERE,
|
FROM_HERE,
|
||||||
NewRunnableMethod(this,
|
NewRunnableMethod(this,
|
||||||
@ -138,25 +144,24 @@ void WebSocketStreamHandleBridgeImpl::OnReceivedData(
|
|||||||
}
|
}
|
||||||
|
|
||||||
void WebSocketStreamHandleBridgeImpl::OnClose(net::SocketStream* socket) {
|
void WebSocketStreamHandleBridgeImpl::OnClose(net::SocketStream* socket) {
|
||||||
webkit_glue::WebSocketStreamHandleDelegate* delegate = delegate_;
|
++num_pending_tasks_;
|
||||||
delegate_ = NULL;
|
// Release socket_ on IO thread.
|
||||||
socket_ = 0;
|
socket_ = NULL;
|
||||||
socket_id_ = kNoSocketId;
|
socket_id_ = kNoSocketId;
|
||||||
message_loop_->PostTask(
|
message_loop_->PostTask(
|
||||||
FROM_HERE,
|
FROM_HERE,
|
||||||
NewRunnableMethod(this, &WebSocketStreamHandleBridgeImpl::DoOnClose,
|
NewRunnableMethod(this, &WebSocketStreamHandleBridgeImpl::DoOnClose));
|
||||||
delegate));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void WebSocketStreamHandleBridgeImpl::DoConnect(const GURL& url) {
|
void WebSocketStreamHandleBridgeImpl::DoConnect(const GURL& url) {
|
||||||
CHECK(MessageLoop::current() == g_io_thread);
|
DCHECK(MessageLoop::current() == g_io_thread);
|
||||||
socket_ = new net::SocketStream(url, this);
|
socket_ = new net::SocketStream(url, this);
|
||||||
socket_->set_context(g_request_context);
|
socket_->set_context(g_request_context);
|
||||||
socket_->Connect();
|
socket_->Connect();
|
||||||
}
|
}
|
||||||
|
|
||||||
void WebSocketStreamHandleBridgeImpl::DoSend(std::vector<char>* data) {
|
void WebSocketStreamHandleBridgeImpl::DoSend(std::vector<char>* data) {
|
||||||
CHECK(MessageLoop::current() == g_io_thread);
|
DCHECK(MessageLoop::current() == g_io_thread);
|
||||||
scoped_ptr<std::vector<char> > scoped_data(data);
|
scoped_ptr<std::vector<char> > scoped_data(data);
|
||||||
if (!socket_)
|
if (!socket_)
|
||||||
return;
|
return;
|
||||||
@ -165,7 +170,7 @@ void WebSocketStreamHandleBridgeImpl::DoSend(std::vector<char>* data) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void WebSocketStreamHandleBridgeImpl::DoClose() {
|
void WebSocketStreamHandleBridgeImpl::DoClose() {
|
||||||
CHECK(MessageLoop::current() == g_io_thread);
|
DCHECK(MessageLoop::current() == g_io_thread);
|
||||||
if (!socket_)
|
if (!socket_)
|
||||||
return;
|
return;
|
||||||
socket_->Close();
|
socket_->Close();
|
||||||
@ -173,29 +178,37 @@ void WebSocketStreamHandleBridgeImpl::DoClose() {
|
|||||||
|
|
||||||
void WebSocketStreamHandleBridgeImpl::DoOnConnected(
|
void WebSocketStreamHandleBridgeImpl::DoOnConnected(
|
||||||
int max_pending_send_allowed) {
|
int max_pending_send_allowed) {
|
||||||
CHECK(MessageLoop::current() == message_loop_);
|
DCHECK(MessageLoop::current() == message_loop_);
|
||||||
|
--num_pending_tasks_;
|
||||||
if (delegate_)
|
if (delegate_)
|
||||||
delegate_->DidOpenStream(handle_, max_pending_send_allowed);
|
delegate_->DidOpenStream(handle_, max_pending_send_allowed);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WebSocketStreamHandleBridgeImpl::DoOnSentData(int amount_sent) {
|
void WebSocketStreamHandleBridgeImpl::DoOnSentData(int amount_sent) {
|
||||||
CHECK(MessageLoop::current() == message_loop_);
|
DCHECK(MessageLoop::current() == message_loop_);
|
||||||
|
--num_pending_tasks_;
|
||||||
if (delegate_)
|
if (delegate_)
|
||||||
delegate_->DidSendData(handle_, amount_sent);
|
delegate_->DidSendData(handle_, amount_sent);
|
||||||
}
|
}
|
||||||
|
|
||||||
void WebSocketStreamHandleBridgeImpl::DoOnReceivedData(
|
void WebSocketStreamHandleBridgeImpl::DoOnReceivedData(
|
||||||
std::vector<char>* data) {
|
std::vector<char>* data) {
|
||||||
CHECK(MessageLoop::current() == message_loop_);
|
DCHECK(MessageLoop::current() == message_loop_);
|
||||||
|
--num_pending_tasks_;
|
||||||
scoped_ptr<std::vector<char> > scoped_data(data);
|
scoped_ptr<std::vector<char> > scoped_data(data);
|
||||||
if (delegate_)
|
if (delegate_)
|
||||||
delegate_->DidReceiveData(handle_, &(data->at(0)), data->size());
|
delegate_->DidReceiveData(handle_, &(data->at(0)), data->size());
|
||||||
}
|
}
|
||||||
|
|
||||||
void WebSocketStreamHandleBridgeImpl::DoOnClose(
|
void WebSocketStreamHandleBridgeImpl::DoOnClose() {
|
||||||
webkit_glue::WebSocketStreamHandleDelegate* delegate) {
|
DCHECK(MessageLoop::current() == message_loop_);
|
||||||
CHECK(MessageLoop::current() == message_loop_);
|
--num_pending_tasks_;
|
||||||
CHECK(!socket_);
|
// Don't handle OnClose if there are pending tasks.
|
||||||
|
DCHECK_EQ(num_pending_tasks_, 0);
|
||||||
|
DCHECK(!socket_);
|
||||||
|
DCHECK_EQ(socket_id_, kNoSocketId);
|
||||||
|
webkit_glue::WebSocketStreamHandleDelegate* delegate = delegate_;
|
||||||
|
delegate_ = NULL;
|
||||||
if (delegate)
|
if (delegate)
|
||||||
delegate->DidClose(handle_);
|
delegate->DidClose(handle_);
|
||||||
Release();
|
Release();
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
MSVC_PUSH_WARNING_LEVEL(0);
|
MSVC_PUSH_WARNING_LEVEL(0);
|
||||||
#include "Cache.h"
|
#include "Cache.h"
|
||||||
#include "TextEncoding.h"
|
#include "TextEncoding.h"
|
||||||
#include "webkit/glue/webframe_impl.h"
|
#include "webkit/api/src/WebFrameImpl.h"
|
||||||
MSVC_POP_WARNING();
|
MSVC_POP_WARNING();
|
||||||
|
|
||||||
#include "browser_webkit_glue.h"
|
#include "browser_webkit_glue.h"
|
||||||
@ -29,6 +29,8 @@ MSVC_POP_WARNING();
|
|||||||
// Generated by GRIT
|
// Generated by GRIT
|
||||||
#include "grit/webkit_resources.h"
|
#include "grit/webkit_resources.h"
|
||||||
|
|
||||||
|
using WebKit::WebFrameImpl;
|
||||||
|
|
||||||
namespace webkit_glue {
|
namespace webkit_glue {
|
||||||
|
|
||||||
bool IsMediaPlayerAvailable() {
|
bool IsMediaPlayerAvailable() {
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
#include "webkit/extensions/v8/interval_extension.h"
|
#include "webkit/extensions/v8/interval_extension.h"
|
||||||
#include "webkit/api/public/WebCString.h"
|
#include "webkit/api/public/WebCString.h"
|
||||||
#include "webkit/api/public/WebData.h"
|
#include "webkit/api/public/WebData.h"
|
||||||
|
#include "webkit/api/public/WebRuntimeFeatures.h"
|
||||||
#include "webkit/api/public/WebKit.h"
|
#include "webkit/api/public/WebKit.h"
|
||||||
#include "webkit/api/public/WebScriptController.h"
|
#include "webkit/api/public/WebScriptController.h"
|
||||||
#include "webkit/api/public/WebSecurityPolicy.h"
|
#include "webkit/api/public/WebSecurityPolicy.h"
|
||||||
@ -50,14 +51,13 @@ class BrowserWebKitInit : public webkit_glue::WebKitClientImpl {
|
|||||||
extensions_v8::GearsExtension::Get());
|
extensions_v8::GearsExtension::Get());
|
||||||
WebKit::WebScriptController::registerExtension(
|
WebKit::WebScriptController::registerExtension(
|
||||||
extensions_v8::IntervalExtension::Get());
|
extensions_v8::IntervalExtension::Get());
|
||||||
WebKit::enableWebSockets();
|
WebKit::WebRuntimeFeatures::enableSockets(true);
|
||||||
|
|
||||||
// Load libraries for media and enable the media player.
|
// Load libraries for media and enable the media player.
|
||||||
FilePath module_path;
|
FilePath module_path;
|
||||||
if (PathService::Get(base::DIR_MODULE, &module_path) &&
|
WebKit::WebRuntimeFeatures::enableMediaPlayer(
|
||||||
media::InitializeMediaLibrary(module_path)) {
|
PathService::Get(base::DIR_MODULE, &module_path) &&
|
||||||
WebKit::enableMediaPlayer();
|
media::InitializeMediaLibrary(module_path));
|
||||||
}
|
|
||||||
|
|
||||||
// Construct and initialize an appcache system for this scope.
|
// Construct and initialize an appcache system for this scope.
|
||||||
// A new empty temp directory is created to house any cached
|
// A new empty temp directory is created to house any cached
|
||||||
@ -200,7 +200,11 @@ class BrowserWebKitInit : public webkit_glue::WebKitClientImpl {
|
|||||||
return BrowserAppCacheSystem::CreateApplicationCacheHost(client);
|
return BrowserAppCacheSystem::CreateApplicationCacheHost(client);
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
virtual WebKit::WebSharedWorkerRepository* sharedWorkerRepository() {
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
webkit_glue::SimpleWebMimeRegistryImpl mime_registry_;
|
webkit_glue::SimpleWebMimeRegistryImpl mime_registry_;
|
||||||
webkit_glue::WebClipboardImpl clipboard_;
|
webkit_glue::WebClipboardImpl clipboard_;
|
||||||
ScopedTempDir appcache_dir_;
|
ScopedTempDir appcache_dir_;
|
||||||
|
@ -341,6 +341,9 @@ void BrowserWebViewDelegate::setStatusText(const WebString& text) {
|
|||||||
void BrowserWebViewDelegate::setMouseOverURL(const WebURL& url) {
|
void BrowserWebViewDelegate::setMouseOverURL(const WebURL& url) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void BrowserWebViewDelegate::setKeyboardFocusURL(const WebKit::WebURL& url) {
|
||||||
|
}
|
||||||
|
|
||||||
void BrowserWebViewDelegate::setToolTipText(
|
void BrowserWebViewDelegate::setToolTipText(
|
||||||
const WebString& text, WebTextDirection hint) {
|
const WebString& text, WebTextDirection hint) {
|
||||||
}
|
}
|
||||||
|
@ -103,6 +103,7 @@ class BrowserWebViewDelegate : public WebKit::WebViewClient,
|
|||||||
WebKit::WebFrame* frame, const WebKit::WebContextMenuData& data);
|
WebKit::WebFrame* frame, const WebKit::WebContextMenuData& data);
|
||||||
virtual void setStatusText(const WebKit::WebString& text);
|
virtual void setStatusText(const WebKit::WebString& text);
|
||||||
virtual void setMouseOverURL(const WebKit::WebURL& url);
|
virtual void setMouseOverURL(const WebKit::WebURL& url);
|
||||||
|
virtual void setKeyboardFocusURL(const WebKit::WebURL& url);
|
||||||
virtual void setToolTipText(
|
virtual void setToolTipText(
|
||||||
const WebKit::WebString& text, WebKit::WebTextDirection hint);
|
const WebKit::WebString& text, WebKit::WebTextDirection hint);
|
||||||
virtual void startDragging(
|
virtual void startDragging(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user