cef can't load url after CefRegisterExtension

Having problems with building or using CEF's C/C++ APIs? This forum is here to help. Please do not post bug reports or feature requests here.

cef can't load url after CefRegisterExtension

Postby jiayun » Mon Aug 08, 2022 10:35 pm

Dear experts,

I work on a project, use CEF, load whiteboard url, when whiteboard url loaded, page will call window.whiteboard.postMessage, it need get handled from C++ code side, so I need inject js before page load.
So I do CefRegisterExtension in OnWebKitInitialized, code is:
const auto optimizationScript = R"(
window.whiteboard = window.whiteboard || {};
window.whiteboard.optimization = {
mode: "UCF",
};
)";
CefRegisterExtension("v8/optimizationScript", optimizationScript, new ClientV8ExtensionHandler(this));

const auto setupChannelScript = R"(
window.whiteboard = window.whiteboard || {};
(function() {
window.whiteboard.postMessage = function(jsonMsg) {
try {
window.postMessage(jsonMsg);
} catch (error) {
console.error('WinodwsBridge postMessage:', error);
}
};
})();
)";
CefRegisterExtension("v8/setupChannelScript", setupChannelScript, new ClientV8ExtensionHandler(this));
After I add above code, url can't be loaded, OnContextCreated(CefRefPtr<CefBrowser> browser, CefRefPtr<CefFrame> frame, CefRefPtr<CefV8Context> context) can't be triggered.
If I remove above code, OnContextCreated will be triggered and url can load.
Please help advise, thanks.
jiayun
Newbie
 
Posts: 1
Joined: Thu Aug 04, 2022 9:15 am

Re: cef can't load url after CefRegisterExtension

Postby magreenblatt » Tue Aug 09, 2022 8:39 am

You can't access the "window" object when loading an extension.
magreenblatt
Site Admin
 
Posts: 12382
Joined: Fri May 29, 2009 6:57 pm


Return to Support Forum

Who is online

Users browsing this forum: No registered users and 32 guests