66#include < stdio.h>
77
88// The const_cast<> were required in Cython <= 0.17.4,
9- // todo : get rid of it.
9+ // TODO : get rid of it.
1010
11- //
11+ // -----------------------------------------------------------------------------
1212// CefLoadHandler
13- //
13+ // -----------------------------------------------------------------------------
1414
1515void ClientHandler::OnLoadEnd (
1616 CefRefPtr<CefBrowser> browser,
@@ -39,9 +39,9 @@ bool ClientHandler::OnLoadError(
3939 browser, frame, errorCode, const_cast <CefString&>(failedUrl), errorText);
4040}
4141
42- //
42+ // -----------------------------------------------------------------------------
4343// CefKeyboardHandler
44- //
44+ // -----------------------------------------------------------------------------
4545
4646bool ClientHandler::OnKeyEvent (
4747 CefRefPtr<CefBrowser> browser,
@@ -55,9 +55,9 @@ bool ClientHandler::OnKeyEvent(
5555 browser, eventType, keyCode, modifiers, isSystemKey, isAfterJavascript);
5656}
5757
58- //
58+ // -----------------------------------------------------------------------------
5959// CefV8ContextHandler
60- //
60+ // -----------------------------------------------------------------------------
6161
6262void ClientHandler::OnContextCreated (
6363 CefRefPtr<CefBrowser> cefBrowser,
@@ -86,9 +86,9 @@ void ClientHandler::OnUncaughtException(
8686 browser, frame, context, exception, stackTrace);
8787}
8888
89- //
89+ // -----------------------------------------------------------------------------
9090// CefRequestHandler
91- //
91+ // -----------------------------------------------------------------------------
9292
9393bool ClientHandler::OnBeforeBrowse (
9494 CefRefPtr<CefBrowser> browser,
@@ -177,20 +177,22 @@ CefRefPtr<CefCookieManager> ClientHandler::GetCookieManager(
177177 browser, const_cast <CefString&>(main_url));
178178}
179179
180- //
180+ // -----------------------------------------------------------------------------
181181// CefDisplayHandler
182- //
182+ // -----------------------------------------------------------------------------
183183
184184void ClientHandler::OnAddressChange (CefRefPtr<CefBrowser> browser,
185185 CefRefPtr<CefFrame> frame,
186186 const CefString& url) {
187+ REQUIRE_UI_THREAD ();
187188 DisplayHandler_OnAddressChange (browser, frame, const_cast <CefString&>(url));
188189}
189190
190191bool ClientHandler::OnConsoleMessage (CefRefPtr<CefBrowser> browser,
191192 const CefString& message,
192193 const CefString& source,
193194 int line) {
195+ REQUIRE_UI_THREAD ();
194196 return DisplayHandler_OnConsoleMessage (
195197 browser, const_cast <CefString&>(message),
196198 const_cast <CefString&>(source), line);
@@ -200,45 +202,53 @@ void ClientHandler::OnContentsSizeChange(CefRefPtr<CefBrowser> browser,
200202 CefRefPtr<CefFrame> frame,
201203 int width,
202204 int height) {
205+ REQUIRE_UI_THREAD ();
203206 DisplayHandler_OnContentsSizeChange (browser, frame, width, height);
204207}
205208
206209void ClientHandler::OnNavStateChange (CefRefPtr<CefBrowser> browser,
207210 bool canGoBack,
208211 bool canGoForward) {
212+ REQUIRE_UI_THREAD ();
209213 DisplayHandler_OnNavStateChange (browser, canGoBack, canGoForward);
210214}
211215
212216void ClientHandler::OnStatusMessage (CefRefPtr<CefBrowser> browser,
213217 const CefString& value,
214218 StatusType type) {
219+ REQUIRE_UI_THREAD ();
215220 DisplayHandler_OnStatusMessage (browser, const_cast <CefString&>(value), type);
216221}
217222
218223
219224void ClientHandler::OnTitleChange (CefRefPtr<CefBrowser> browser,
220225 const CefString& title) {
226+ REQUIRE_UI_THREAD ();
221227 DisplayHandler_OnTitleChange (browser, const_cast <CefString&>(title));
222228}
223229
224230bool ClientHandler::OnTooltip (CefRefPtr<CefBrowser> browser,
225231 CefString& text) {
232+ REQUIRE_UI_THREAD ();
226233 return DisplayHandler_OnTooltip (browser, text);
227234}
228235
229- //
236+ // -----------------------------------------------------------------------------
230237// CefLifeSpanHandler
231- //
238+ // -----------------------------------------------------------------------------
232239
233240bool ClientHandler::DoClose (CefRefPtr<CefBrowser> browser) {
241+ REQUIRE_UI_THREAD ();
234242 return LifespanHandler_DoClose (browser);
235243}
236244
237245void ClientHandler::OnAfterCreated (CefRefPtr<CefBrowser> browser) {
246+ REQUIRE_UI_THREAD ();
238247 LifespanHandler_OnAfterCreated (browser);
239248}
240249
241250void ClientHandler::OnBeforeClose (CefRefPtr<CefBrowser> browser) {
251+ REQUIRE_UI_THREAD ();
242252 LifespanHandler_OnBeforeClose (browser);
243253}
244254
@@ -248,27 +258,31 @@ bool ClientHandler::OnBeforePopup(CefRefPtr<CefBrowser> parentBrowser,
248258 const CefString& url,
249259 CefRefPtr<CefClient>& client,
250260 CefBrowserSettings& settings) {
261+ REQUIRE_UI_THREAD ();
251262 // @TODO
252263 return false ;
253264}
254265
255266bool ClientHandler::RunModal (CefRefPtr<CefBrowser> browser) {
267+ REQUIRE_UI_THREAD ();
256268 return LifespanHandler_RunModal (browser);
257269}
258270
259- //
271+ // -----------------------------------------------------------------------------
260272// CefRenderHandler
261- //
273+ // -----------------------------------------------------------------------------
262274
263275#if defined(OS_WIN)
264276
265277bool ClientHandler::GetViewRect (CefRefPtr<CefBrowser> browser,
266278 CefRect& rect) {
279+ REQUIRE_UI_THREAD ();
267280 return RenderHandler_GetViewRect (browser, rect);
268281}
269282
270283bool ClientHandler::GetScreenRect (CefRefPtr<CefBrowser> browser,
271284 CefRect& rect) {
285+ REQUIRE_UI_THREAD ();
272286 return RenderHandler_GetScreenRect (browser, rect);
273287}
274288
@@ -277,33 +291,56 @@ bool ClientHandler::GetScreenPoint(CefRefPtr<CefBrowser> browser,
277291 int viewY,
278292 int & screenX,
279293 int & screenY) {
294+ REQUIRE_UI_THREAD ();
280295 return RenderHandler_GetScreenPoint (
281296 browser, viewX, viewY, screenX, screenY);
282297}
283298
284299void ClientHandler::OnPopupShow (CefRefPtr<CefBrowser> browser,
285300 bool show) {
301+ REQUIRE_UI_THREAD ();
286302 RenderHandler_OnPopupShow (browser, show);
287303}
288304
289305void ClientHandler::OnPopupSize (CefRefPtr<CefBrowser> browser,
290306 const CefRect& rect) {
307+ REQUIRE_UI_THREAD ();
291308 RenderHandler_OnPopupSize (browser, const_cast <CefRect&>(rect));
292309}
293310
294311void ClientHandler::OnPaint (CefRefPtr<CefBrowser> browser,
295312 PaintElementType type,
296313 const RectList& dirtyRects,
297314 const void * buffer) {
315+ REQUIRE_UI_THREAD ();
298316 RenderHandler_OnPaint (browser, type,
299317 const_cast <RectList&>(dirtyRects),
300318 const_cast <void *>(buffer));
301319}
302320
303321void ClientHandler::OnCursorChange (CefRefPtr<CefBrowser> browser,
304322 CefCursorHandle cursor) {
323+ REQUIRE_UI_THREAD ();
305324 RenderHandler_OnCursorChange (browser, cursor);
306325}
307326
308- // OS_WIN / CefRenderHandler
309- #endif
327+ // #if defined(OS_WIN) - CefRenderHandler
328+ #endif
329+
330+ // -----------------------------------------------------------------------------
331+ // CefDragHandler
332+ // -----------------------------------------------------------------------------
333+
334+ bool ClientHandler::OnDragStart (CefRefPtr<CefBrowser> browser,
335+ CefRefPtr<CefDragData> dragData,
336+ DragOperationsMask mask) {
337+ REQUIRE_UI_THREAD ();
338+ return DragHandler_OnDragStart (browser, dragData, mask);
339+ }
340+
341+ bool ClientHandler::OnDragEnter (CefRefPtr<CefBrowser> browser,
342+ CefRefPtr<CefDragData> dragData,
343+ DragOperationsMask mask) {
344+ REQUIRE_UI_THREAD ();
345+ return DragHandler_OnDragEnter (browser, dragData, mask);
346+ }
0 commit comments