Significant API changes for issue #218:

- Replace CefHandler with a new CefClient interface and separate handler interfaces.
- Add support for virtual inheritance to allow multiple CefBase parented interfaces to be implemented in the same class.
- Replace CefThreadSafeBase with IMPLEMENT_* macros to support virtual inheritance and to only provide locking implementations when needed.
- Move the CefBrowserSettings parameter from CefInitialize to CreateBrowser.
- Add a new cef_build.h header that provides platform-specific and OS_* defines.
- Introduce the use of OVERRIDE to generate compiler errors on Windows if a child virtual method declaration doesn't match the parent declaration.
- Use NDEBUG instead of _DEBUG because _DEBUG is not defined on Mac. (issue #240).

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@235 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
This commit is contained in:
Marshall Greenblatt
2011-05-20 14:42:25 +00:00
parent 9a69e96950
commit dbe8de277f
251 changed files with 7127 additions and 4945 deletions

View File

@@ -12,7 +12,7 @@ namespace {
bool g_V8TestV8HandlerExecuteCalled;
bool g_V8TestV8HandlerExecute2Called;
class V8TestV8Handler : public CefThreadSafeBase<CefV8Handler>
class V8TestV8Handler : public CefV8Handler
{
public:
V8TestV8Handler(bool bindingTest) { binding_test_ = bindingTest; }
@@ -213,6 +213,8 @@ public:
}
bool binding_test_;
IMPLEMENT_REFCOUNTING(V8TestV8Handler);
};
class V8TestHandler : public TestHandler
@@ -220,7 +222,7 @@ class V8TestHandler : public TestHandler
public:
V8TestHandler(bool bindingTest) { binding_test_ = bindingTest; }
virtual void RunTest()
virtual void RunTest() OVERRIDE
{
std::string object;
if(binding_test_) {
@@ -249,24 +251,20 @@ public:
CreateBrowser("http://tests/run.html");
}
virtual RetVal HandleLoadEnd(CefRefPtr<CefBrowser> browser,
CefRefPtr<CefFrame> frame,
int httpStatusCode)
virtual void OnLoadEnd(CefRefPtr<CefBrowser> browser,
CefRefPtr<CefFrame> frame,
int httpStatusCode) OVERRIDE
{
if(!browser->IsPopup() && frame->IsMain())
DestroyTest();
return RV_CONTINUE;
}
virtual RetVal HandleJSBinding(CefRefPtr<CefBrowser> browser,
CefRefPtr<CefFrame> frame,
CefRefPtr<CefV8Value> object)
virtual void OnJSBinding(CefRefPtr<CefBrowser> browser,
CefRefPtr<CefFrame> frame,
CefRefPtr<CefV8Value> object) OVERRIDE
{
if(binding_test_) {
if(binding_test_)
TestHandleJSBinding(browser, frame, object);
return RV_HANDLED;
}
return RV_CONTINUE;
}
void TestHandleJSBinding(CefRefPtr<CefBrowser> browser,
@@ -376,7 +374,7 @@ public:
const CefRefPtr<CefV8Value> value) = 0;
};
class DelegatingV8Handler : public CefThreadSafeBase<CefV8Handler>
class DelegatingV8Handler : public CefV8Handler
{
public:
DelegatingV8Handler(CefV8HandlerDelegate *delegate):
@@ -397,9 +395,11 @@ public:
private:
CefV8HandlerDelegate *delegate_;
IMPLEMENT_REFCOUNTING(DelegatingV8Handler);
};
class DelegatingV8Accessor: public CefThreadSafeBase<CefV8Accessor>
class DelegatingV8Accessor: public CefV8Accessor
{
public:
DelegatingV8Accessor(CefV8HandlerDelegate *delegate)
@@ -419,6 +419,8 @@ public:
private:
CefV8HandlerDelegate *delegate_;
IMPLEMENT_REFCOUNTING(DelegatingV8Accessor);
};
class TestContextHandler: public TestHandler, public CefV8HandlerDelegate
@@ -426,7 +428,7 @@ class TestContextHandler: public TestHandler, public CefV8HandlerDelegate
public:
TestContextHandler() {}
virtual void RunTest()
virtual void RunTest() OVERRIDE
{
// Test Flow:
// load main.html.
@@ -526,16 +528,15 @@ public:
CreateBrowser("http://tests/main.html");
}
virtual RetVal HandleLoadEnd(CefRefPtr<CefBrowser> browser,
CefRefPtr<CefFrame> frame,
int httpStatusCode)
virtual void OnLoadEnd(CefRefPtr<CefBrowser> browser,
CefRefPtr<CefFrame> frame,
int httpStatusCode) OVERRIDE
{
return RV_CONTINUE;
}
virtual RetVal HandleJSBinding(CefRefPtr<CefBrowser> browser,
CefRefPtr<CefFrame> frame,
CefRefPtr<CefV8Value> object)
virtual void OnJSBinding(CefRefPtr<CefBrowser> browser,
CefRefPtr<CefFrame> frame,
CefRefPtr<CefV8Value> object) OVERRIDE
{
CefRefPtr<CefV8Context> cc = CefV8Context::GetCurrentContext();
CefRefPtr<CefBrowser> currentBrowser = cc->GetBrowser();
@@ -579,8 +580,6 @@ public:
V8_PROPERTY_ATTRIBUTE_NONE);
object->SetValue("point", point);
return RV_HANDLED;
}
void CallIFrame()