MCPcopy Create free account
hub / github.com/PenguLoader/PenguLoader / HookMainBrowserClient

Function HookMainBrowserClient

core/src/browser/browser.cc:37–100  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

35}
36
37static void HookMainBrowserClient(cef_client_t *client)
38{
39 void HookKeyboardHandler(cef_client_t *client);
40 HookKeyboardHandler(client);
41
42 // Hook LifeSpanHandler.
43 static auto GetLifeSpanHandler = client->get_life_span_handler;
44 // Don't worry about calling convention here (stdcall).
45 client->get_life_span_handler = [](struct _cef_client_t* self) -> cef_life_span_handler_t*
46 {
47 auto handler = GetLifeSpanHandler(self);
48
49 // Hook OnAfterCreated().
50 OnAfterCreated = handler->on_after_created;
51 handler->on_after_created = Hooked_OnAfterCreated;
52
53 return handler;
54 };
55
56 static auto OnProcessMessageReceived = client->on_process_message_received;
57 client->on_process_message_received = [](struct _cef_client_t* self,
58 struct _cef_browser_t* browser,
59 struct _cef_frame_t* frame,
60 cef_process_id_t source_process,
61 struct _cef_process_message_t* message) -> int
62 {
63 if (source_process == PID_RENDERER)
64 {
65 CefScopedStr name{ message->get_name(message) };
66 auto margs = message->get_argument_list(message);
67
68 if (name.equal("@open-devtools"))
69 {
70 browser::open_devtools(browser);
71 return 1;
72 }
73 else if (name.equal("@reload-client"))
74 {
75 browser->reload_ignore_cache(browser);
76 return 1;
77 }
78 else if (name.equal("@set-window-vibrancy"))
79 {
80 if (margs->get_type(margs, 0) == VTYPE_NULL)
81 window::clear_vibrancy(browser::window);
82 else
83 {
84 uint32_t param1 = (uint32_t)margs->get_double(margs, 0);
85 uint32_t param2 = (uint32_t)margs->get_double(margs, 1);
86 window::apply_vibrancy(browser::window, param1, param2);
87 }
88 return 1;
89 }
90 else if (name.equal("@set-window-theme"))
91 {
92 bool dark = margs->get_bool(margs, 0);
93 window::set_theme(browser::window, dark);
94 return 1;

Callers 1

Calls 2

HookKeyboardHandlerFunction · 0.85
equalMethod · 0.80

Tested by

no test coverage detected