2015-11-06 486 views
0

我有一個類似的問題,在this post;我試圖擴展包含鉻嵌入式框架二進制文件的cefsimple.exe應用程序,以包含V8處理程序。我實施了OnContextCreated()方法,並確保在SimpleHandler類中延伸RenderProcessHandler。我試圖實現一個簡單的窗口綁定變量,稱爲test_string;這是我的代碼的樣子;Cef未被調用OnContextCreated()

void SimpleHandler::OnContextCreated(
    CefRefPtr<CefBrowser> browser, 
    CefRefPtr<CefFrame> frame, 
    CefRefPtr<CefV8Context> context) 
{ 
    CefRefPtr<CefV8Value> object = context->GetGlobal(); 

    object->SetValue("test_string", CefV8Value::CreateString("this is a test"), V8_PROPERTY_ATTRIBUTE_NONE); 
} 

但程序一直沒有到達我添加方法中的任何斷點,變量是我在應用程序中加載任何網頁不確定。我看到另一個線程中的一個解決方案是啓用settings.single_process標誌,我已經完成了,但是我的代碼仍然沒有達到斷點。

要清楚,我訪問window.test_string頁上的變量。

回答

0

您是否閱讀了General Usage指南?下面

https://bitbucket.org/chromiumembedded/cef/wiki/GeneralUsage#markdown-header-cefapp https://bitbucket.org/chromiumembedded/cef/wiki/GeneralUsage#markdown-header-processes

single_process模式的一些關鍵點是不支持,所以我從來沒有使用過。總的來說,我會避免它。多進程體系結構意味着您需要將調試器附加到進程。在這種情況下,Chromium指南與CEF相關。

https://www.chromium.org/developers/how-tos/debugging-on-windows#TOC-Attaching-to-the-renderer

+0

我會考慮這一點,但由於現在我無法調試我的代碼由於一個單獨的問題。如果適用,我會盡快回復您。 – Maurdekye

+0

我已閱讀了您鏈接到的頁面標題,並且我很難理解需要完成的操作。我嘗試在我的函數實現的頂部添加'CEF_REQUIRE_RENDERER_THREAD();'但它似乎仍然沒有工作。 – Maurdekye

+0

您有具體問題或一些代碼可供參考嗎? – amaitland