i follow the guide and write the code below, it seems not work....
- Code: Select all
class RefreshJsexecute {
public:
RefreshJsexecute() {
weak_this_ = weak_factory_.GetWeakPtr(); // break throw occur here in debug mode.....
}
void run(CefRefPtr<CefBrowser> browser) {
if (browser.get()) browser->GetMainFrame()->ExecuteJavaScript("location.reload();", CefString(), 0);
}
void post_task(CefRefPtr<CefBrowser> browser) {
CefPostDelayedTask(TID_UI, base::Bind(&RefreshJsexecute::run, weak_this_, browser), 10000);
}
private:
base::WeakPtr<RefreshJsexecute> weak_this_;
base::WeakPtrFactory<RefreshJsexecute> weak_factory_{ this };
};
bool ResourceRequest::OnResourceResponse(CefRefPtr<CefBrowser> browser,
CefRefPtr<CefFrame> frame,
CefRefPtr<CefRequest> request,
CefRefPtr<CefResponse> response) {
CEF_REQUIRE_IO_THREAD();
if (request->GetURL() == "xxxxx") {
RefreshJsexecute rj;
rj.post_task(browser);
}
return false;
}
the break line is: weak_this_ = weak_factory_.GetWeakPtr();
can anyone solve this?