mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-02-16 20:20:51 +01:00
libcef:
- Initialize WebKit in the UI thread to avoid asserts due to WTF::isMainThread() returning false. (Issue #21, Issue #24). git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@27 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
This commit is contained in:
parent
c295931b1e
commit
a0a0ae326c
@ -9,6 +9,7 @@
|
|||||||
#include "browser_resource_loader_bridge.h"
|
#include "browser_resource_loader_bridge.h"
|
||||||
#include "browser_request_context.h"
|
#include "browser_request_context.h"
|
||||||
#include "browser_webkit_glue.h"
|
#include "browser_webkit_glue.h"
|
||||||
|
#include "browser_webkit_init.h"
|
||||||
#include "../include/cef_nplugin.h"
|
#include "../include/cef_nplugin.h"
|
||||||
|
|
||||||
#include "base/command_line.h"
|
#include "base/command_line.h"
|
||||||
@ -162,6 +163,12 @@ bool CefContext::DoInitialize()
|
|||||||
// Initialize the global CommandLine object.
|
// Initialize the global CommandLine object.
|
||||||
CommandLine::Init(0, NULL);
|
CommandLine::Init(0, NULL);
|
||||||
|
|
||||||
|
// Initialize WebKit.
|
||||||
|
webkit_init_ = new BrowserWebKitInit();
|
||||||
|
|
||||||
|
// Initialize WebKit encodings
|
||||||
|
webkit_glue::InitializeTextEncoding();
|
||||||
|
|
||||||
// Initializing with a default context, which means no on-disk cookie DB,
|
// Initializing with a default context, which means no on-disk cookie DB,
|
||||||
// and no support for directory listings.
|
// and no support for directory listings.
|
||||||
//PathService::Get(base::DIR_EXE, &cache_path);
|
//PathService::Get(base::DIR_EXE, &cache_path);
|
||||||
@ -209,6 +216,10 @@ void CefContext::DoUninitialize()
|
|||||||
delete statstable_;
|
delete statstable_;
|
||||||
statstable_ = NULL;
|
statstable_ = NULL;
|
||||||
|
|
||||||
|
// Shut down WebKit.
|
||||||
|
delete webkit_init_;
|
||||||
|
webkit_init_ = NULL;
|
||||||
|
|
||||||
// Uninitialize COM stuff
|
// Uninitialize COM stuff
|
||||||
OleUninitialize();
|
OleUninitialize();
|
||||||
|
|
||||||
@ -249,6 +260,7 @@ CefContext::CefContext()
|
|||||||
webprefs_ = NULL;
|
webprefs_ = NULL;
|
||||||
hinstance_ = ::GetModuleHandle(NULL);
|
hinstance_ = ::GetModuleHandle(NULL);
|
||||||
next_browser_id_ = 1;
|
next_browser_id_ = 1;
|
||||||
|
webkit_init_ = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
CefContext::~CefContext()
|
CefContext::~CefContext()
|
||||||
@ -292,9 +304,6 @@ bool CefContext::Initialize(bool multi_threaded_message_loop,
|
|||||||
};
|
};
|
||||||
RegisterClassEx(&wcex);
|
RegisterClassEx(&wcex);
|
||||||
|
|
||||||
// Initialize WebKit encodings
|
|
||||||
webkit_glue::InitializeTextEncoding();
|
|
||||||
|
|
||||||
#ifndef _DEBUG
|
#ifndef _DEBUG
|
||||||
// Only log error messages and above in release build.
|
// Only log error messages and above in release build.
|
||||||
logging::SetMinLogLevel(logging::LOG_ERROR);
|
logging::SetMinLogLevel(logging::LOG_ERROR);
|
||||||
|
@ -9,10 +9,11 @@
|
|||||||
#include "../include/cef.h"
|
#include "../include/cef.h"
|
||||||
#include "base/at_exit.h"
|
#include "base/at_exit.h"
|
||||||
#include "base/message_loop.h"
|
#include "base/message_loop.h"
|
||||||
|
#include "base/stats_table.h"
|
||||||
#include "base/gfx/native_widget_types.h"
|
#include "base/gfx/native_widget_types.h"
|
||||||
#include "webkit/glue/webpreferences.h"
|
#include "webkit/glue/webpreferences.h"
|
||||||
#include "browser_webkit_init.h"
|
|
||||||
|
|
||||||
|
class BrowserWebKitInit;
|
||||||
class CefBrowserImpl;
|
class CefBrowserImpl;
|
||||||
|
|
||||||
class CefContext : public CefThreadSafeBase<CefBase>
|
class CefContext : public CefThreadSafeBase<CefBase>
|
||||||
@ -78,8 +79,8 @@ protected:
|
|||||||
|
|
||||||
// Initialize the AtExitManager to avoid asserts and possible memory leaks.
|
// Initialize the AtExitManager to avoid asserts and possible memory leaks.
|
||||||
base::AtExitManager at_exit_manager_;
|
base::AtExitManager at_exit_manager_;
|
||||||
// Initialize WebKit for this scope.
|
// WebKit implementation class.
|
||||||
BrowserWebKitInit webkit_init_;
|
BrowserWebKitInit* webkit_init_;
|
||||||
|
|
||||||
// Used for assigning unique IDs to browser instances.
|
// Used for assigning unique IDs to browser instances.
|
||||||
int next_browser_id_;
|
int next_browser_id_;
|
||||||
|
@ -7,6 +7,7 @@
|
|||||||
#include "context.h"
|
#include "context.h"
|
||||||
#include "tracker.h"
|
#include "tracker.h"
|
||||||
#include "base/lazy_instance.h"
|
#include "base/lazy_instance.h"
|
||||||
|
#include "base/string_util.h"
|
||||||
#include "webkit/api/public/WebKit.h"
|
#include "webkit/api/public/WebKit.h"
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user