{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":100781035,"defaultBranch":"master","name":"webview","ownerLogin":"webview","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2017-08-19T08:26:00.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/4168812?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1694860625.0","currentOid":""},"activityList":{"items":[{"before":"adbb85d0f54537b8034ece0bab67c7d1438e3cda","after":"93be13a101e548c13d47ae36a6ea00300b2ecfc0","ref":"refs/heads/master","pushedAt":"2024-04-22T16:39:31.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"SteffenL","name":"Steffen André Langnes","path":"/SteffenL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1543854?s=80&v=4"},"commit":{"message":"Avoid warning C4005: 'WIN32_LEAN_AND_MEAN': macro redefinition (#1106)","shortMessageHtmlLink":"Avoid warning C4005: 'WIN32_LEAN_AND_MEAN': macro redefinition (#1106)"}},{"before":"141c23e9f10307d66247cbc23aa2d3fae0e9eab6","after":"adbb85d0f54537b8034ece0bab67c7d1438e3cda","ref":"refs/heads/master","pushedAt":"2024-02-27T09:36:11.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"SteffenL","name":"Steffen André Langnes","path":"/SteffenL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1543854?s=80&v=4"},"commit":{"message":"Default-construct basic_result with value (#1100)\n\nIt makes sense for \"result\" to either have a value or an error, but not\r\nto have neither.","shortMessageHtmlLink":"Default-construct basic_result<T, ...> with value (#1100)"}},{"before":"a5869a3f0ed97157713c1f8ec0a4ca26f2070d01","after":"141c23e9f10307d66247cbc23aa2d3fae0e9eab6","ref":"refs/heads/master","pushedAt":"2024-02-27T08:24:51.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"SteffenL","name":"Steffen André Langnes","path":"/SteffenL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1543854?s=80&v=4"},"commit":{"message":"Rework error handling and reporting (#1099)\n\nC/C++ API:\r\n* Add \"webview_error_t\" enum with error codes.\r\n\r\nC++ API:\r\n* Add \"error_info\" class to hold error information (code, message).\r\n* Add \"result\" and \"noresult\" classes for returning to the caller either\r\n a success value or error information. \"result\" should be used for\r\n functions that return a value; \"noresult\" should be used for functions\r\n that don't return a value. Either case allows caller to check whether\r\n the call was successful, and if not, check the error information.\r\n The return type can be constructed from the value or \"error_info\"\r\n instance. For example, returning \"{}\" can construct a successful\r\n \"noresult\", \"{...}\" can construct a successful `result<...>` and\r\n \"error_info{...}\" can construct a result with an error.\r\n* Add \"exception\" class that can be thrown in constructors.\r\n* Constructors may now throw \"exception\".\r\n* Add try-catch block to C++ examples because constructors may throw.\r\n\r\nC API:\r\n* Functions should return type \"webview_error_t\" to allow for error\r\n handling. \"api_filter()\" catches exceptions and converts error\r\n information into \"webview_error_t\".\r\n* Function arguments are now checked to reduce chance of crashing.\r\n* Add macros for checking error codes (WEBVIEW_SUCCEEDED, WEBVIEW_FAILED).","shortMessageHtmlLink":"Rework error handling and reporting (#1099)"}},{"before":"fb6b17d826041411e6346cd9a785a5ceba7987c4","after":"a5869a3f0ed97157713c1f8ec0a4ca26f2070d01","ref":"refs/heads/master","pushedAt":"2024-02-25T06:48:36.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"SteffenL","name":"Steffen André Langnes","path":"/SteffenL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1543854?s=80&v=4"},"commit":{"message":"Rework RPC code and examples (#1097)\n\n* Rename parameter \"seq\" (sequential number) to \"id\" (identifier).\r\n\r\n* Generate IDs with a length of 32 random characters.\r\n\r\n* Replace user (init) script on bind/unbind to fix bug where scripts are\r\n never removed and instead pile up for each bind/unbind operation.\r\n\r\n* JS RPC operations are now exposed through \"window.__webview__\".\r\n\r\n A bound function can now be invoked via JS as follows:\r\n\r\n window.__webview__.call(name, ...args)\r\n\r\n The following is still possible and forwards to \"__webview__.call()\":\r\n\r\n window.count(...args)\r\n\r\n* Modernize examples.\r\n\r\n* Fix/Suppress warnings","shortMessageHtmlLink":"Rework RPC code and examples (#1097)"}},{"before":"52952dc5ccfacdfb84bd3bb7cde869cbbaa5439e","after":"fb6b17d826041411e6346cd9a785a5ceba7987c4","ref":"refs/heads/master","pushedAt":"2024-02-20T04:50:22.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"SteffenL","name":"Steffen André Langnes","path":"/SteffenL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1543854?s=80&v=4"},"commit":{"message":"Link dl library (Linux/macOS) (#1093)\n\nFixes a possible error about undefined reference to symbol \"dlclose\".\r\n\r\nError observed with Ubuntu 20.04.6, GCC 9.4.0.","shortMessageHtmlLink":"Link dl library (Linux/macOS) (#1093)"}},{"before":"94db2cd956986f05008a36d93b1d2c48fa01318c","after":"52952dc5ccfacdfb84bd3bb7cde869cbbaa5439e","ref":"refs/heads/master","pushedAt":"2024-02-19T06:23:29.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"SteffenL","name":"Steffen André Langnes","path":"/SteffenL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1543854?s=80&v=4"},"commit":{"message":"Fix warnings (#1090)\n\n* Disable const correctness check for value variables\r\n\r\n* Reduce noise when running lint check\r\n\r\n* Fix/Suppress warnings (Linux)\r\n\r\n* Avoid warning missing terminating \" character\r\n\r\nEmitted by GCC 12.3 when including the webview.h header in a C program.\r\n\r\n* Fix warning (macOS)\r\n\r\n* Fix warnings (Win32)","shortMessageHtmlLink":"Fix warnings (#1090)"}},{"before":"f74347a161d2bb6906db6f19eaaa4ac693dd062e","after":"94db2cd956986f05008a36d93b1d2c48fa01318c","ref":"refs/heads/master","pushedAt":"2024-02-19T01:47:43.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"SteffenL","name":"Steffen André Langnes","path":"/SteffenL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1543854?s=80&v=4"},"commit":{"message":"Change size hints from #define to an enum (#1089)","shortMessageHtmlLink":"Change size hints from #define to an enum (#1089)"}},{"before":"2eaa7ee49f7cec44a5633e222c45a17844a1a12f","after":"f74347a161d2bb6906db6f19eaaa4ac693dd062e","ref":"refs/heads/master","pushedAt":"2024-02-18T19:16:46.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"SteffenL","name":"Steffen André Langnes","path":"/SteffenL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1543854?s=80&v=4"},"commit":{"message":"Initial work on documentation generation with Doxygen (#1088)","shortMessageHtmlLink":"Initial work on documentation generation with Doxygen (#1088)"}},{"before":"94554a985cdd1015969baba3223845085369857b","after":"2eaa7ee49f7cec44a5633e222c45a17844a1a12f","ref":"refs/heads/master","pushedAt":"2024-02-18T10:00:35.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"SteffenL","name":"Steffen André Langnes","path":"/SteffenL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1543854?s=80&v=4"},"commit":{"message":"Fix various memory management issues (macOS) (#1087)","shortMessageHtmlLink":"Fix various memory management issues (macOS) (#1087)"}},{"before":"c4833a42d30fecac6d8cbe5e4932dd4eed6bcab3","after":"94554a985cdd1015969baba3223845085369857b","ref":"refs/heads/master","pushedAt":"2024-02-18T09:47:20.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"SteffenL","name":"Steffen André Langnes","path":"/SteffenL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1543854?s=80&v=4"},"commit":{"message":"Fixes for destruct behavior/cleanup (#1086)\n\n* Allow skipping termination on window destruction\r\n\r\n* Disconnect handlers to avoid callbacks invoked during destruction (GTK)\r\n\r\n* Only close owned windows (Cocoa)\r\n\r\n* Fix window ref count after removing window delegate (Cocoa)\r\n\r\n* Fix window delegate not being released (Cocoa)\r\n\r\n* Disconnect handlers to avoid callbacks invoked during destruction (Win32)\r\n\r\n* Quit main loop after processing event queue (GTK)\r\n\r\nAligns behavior with other backends while also fixing issue with\r\nresolve() being called in or after a binding callback and work is put\r\non the event queue without being cleared or processed until the next\r\ncall to run(). The next run() would then attempt to process the work,\r\nbut the webview instance could be different.\r\n\r\n* Deplete run loop (event) queue upon destruct\r\n\r\nAligns the behavior of window closing being effective immediately upon\r\ndestruction of the webview instance across backends.\r\n\r\n* Clear pointers to window/widget on close (GTK)\r\n\r\nFixes attempting to destroy them after window is closed.\r\n\r\n* Destroy message window later (Win32)\r\n\r\n* Clear pointer to widget on close (Cocoa)\r\n\r\n* Remove excess argument for release message (Cocoa)\r\n\r\n* Release webview widget on destruct (Cocoa)","shortMessageHtmlLink":"Fixes for destruct behavior/cleanup (#1086)"}},{"before":"9ff4c3449e1c37397df72874dad122f617de7581","after":"c4833a42d30fecac6d8cbe5e4932dd4eed6bcab3","ref":"refs/heads/master","pushedAt":"2024-02-15T10:31:57.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"SteffenL","name":"Steffen André Langnes","path":"/SteffenL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1543854?s=80&v=4"},"commit":{"message":"Last window closed custom logic (macOS) (#1085)\n\n* Split window/web view set-up into separate functions (macOS)\r\n\r\n* Control stopping the run loop when last window is closed (macOS)\r\n\r\nWe used to let the system/UI framework automatically handle when to\r\nterminate the app after the last window was closed. We used custom logic\r\nto stop the run loop instead of terminating the whole process.\r\n\r\nNow we handle the stopping of the run loop without having to awkwardly\r\ninitiate termination just to block it and do something else instead.\r\n\r\nFuture work can e.g. add a flag that allows the user of the library to\r\nchoose whether to \"terminate\" (stop the run loop) when the last window\r\nis closed.","shortMessageHtmlLink":"Last window closed custom logic (macOS) (#1085)"}},{"before":"ab0655df1d727fb42bdf5ce1b66122402f7836f2","after":"9ff4c3449e1c37397df72874dad122f617de7581","ref":"refs/heads/master","pushedAt":"2024-02-15T10:22:02.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"SteffenL","name":"Steffen André Langnes","path":"/SteffenL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1543854?s=80&v=4"},"commit":{"message":"Change webview class hierarchy (#1084)\n\n* Change webview class hierarchy\r\n\r\nEach backend implemented methods that were part of the C++ API; however,\r\nthe compiler didn't enforce this. This work moves code from the\r\n\"webview\" class into a new \"webview_base\" class that each backend should\r\ninherit. Pure virtual methods in the base class ensure that each backend\r\nmust implement the methods.\r\n\r\nAnother benefit is that each backend can share common code through the\r\nbase class.\r\n\r\nFor now, the \"webview\" type is an alias of \"browser_engine\" in order to\r\nretain backward compatibility.\r\n\r\n* Move window ref count code to base class\r\n\r\nEliminates code that had been duplicated into the backend classes.","shortMessageHtmlLink":"Change webview class hierarchy (#1084)"}},{"before":"4b01c945fc1391646aa585f1e242048a781cc508","after":"ab0655df1d727fb42bdf5ce1b66122402f7836f2","ref":"refs/heads/master","pushedAt":"2024-02-14T12:26:26.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"SteffenL","name":"Steffen André Langnes","path":"/SteffenL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1543854?s=80&v=4"},"commit":{"message":"Update GHA actions (#1083)\n\n* Update actions/checkout to v4\r\n\r\nFixes warning \"Node.js 16 actions are deprecated\".\r\n\r\n* Update DoozyX/clang-format-lint-action to v0.16\r\n\r\n* GHA clang-format check should exclude build directory\r\n\r\nWebView2 used to be downloaded into the \"scripts\" directory but it now\r\ngoes into the \"build\" directory.","shortMessageHtmlLink":"Update GHA actions (#1083)"}},{"before":"bca7c43b618ad228dfe233ca308da879c7844d8f","after":"4b01c945fc1391646aa585f1e242048a781cc508","ref":"refs/heads/master","pushedAt":"2024-02-14T08:34:08.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"SteffenL","name":"Steffen André Langnes","path":"/SteffenL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1543854?s=80&v=4"},"commit":{"message":"Lifecycle improvements (#1082)\n\nAll backends:\r\n* Destroy widget on destruction of the webview instance.\r\n* Close window on destruction of the webview instance.\r\n\r\nCocoa:\r\n* Remove the application delegate from the shared NSApplication instance\r\n if we set it, and release the delegate on destruction of the webview\r\n instance.\r\n* Always add method applicationDidFinishLaunching to avoid complexity.","shortMessageHtmlLink":"Lifecycle improvements (#1082)"}},{"before":"e2dbac716d7328329090a91d277a0efc42f425fc","after":"bca7c43b618ad228dfe233ca308da879c7844d8f","ref":"refs/heads/master","pushedAt":"2024-02-14T08:00:06.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"SteffenL","name":"Steffen André Langnes","path":"/SteffenL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1543854?s=80&v=4"},"commit":{"message":"Fix move support in native_library and com_init_wrapper (#1081)\n\nnative_library marked move operations as default which would copy the handle.\r\n\r\ncom_init_wrapper didn't check itself.","shortMessageHtmlLink":"Fix move support in native_library and com_init_wrapper (#1081)"}},{"before":"16a1af8d308360722073b2361a19f5295f02f76b","after":"e2dbac716d7328329090a91d277a0efc42f425fc","ref":"refs/heads/master","pushedAt":"2024-02-14T06:48:35.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"SteffenL","name":"Steffen André Langnes","path":"/SteffenL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1543854?s=80&v=4"},"commit":{"message":"Delete webview copy/move constructor/assignment (#1080)\n\nDelete the copy/move constructor/assignment operator of the webview\r\nclass to make it clear that it doesn't support these operations.\r\n\r\nCopying doesn't make much sense here. More work is needed to support\r\nstd::move due to the pointer to the webview class being passed around,\r\ne.g. to callback functions. When the original webview instance is\r\ndestroyed then callbacks will end up trying to use the destroyed\r\nwebview instance.\r\n\r\nWin32 already had the constructors/assignment operators deleted so this\r\nsimply aligns GTK/Cocoa code with Win32 code.","shortMessageHtmlLink":"Delete webview copy/move constructor/assignment (#1080)"}},{"before":"eb6774d63e1208f69d2cb73f0cec3505cb952ba0","after":"16a1af8d308360722073b2361a19f5295f02f76b","ref":"refs/heads/master","pushedAt":"2024-02-14T05:50:57.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"SteffenL","name":"Steffen André Langnes","path":"/SteffenL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1543854?s=80&v=4"},"commit":{"message":"Remove unused variable (Win32) (#1079)","shortMessageHtmlLink":"Remove unused variable (Win32) (#1079)"}},{"before":"fe246934219dc1c35303bb9a45998fe98df412b0","after":"eb6774d63e1208f69d2cb73f0cec3505cb952ba0","ref":"refs/heads/master","pushedAt":"2024-02-14T05:02:29.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"SteffenL","name":"Steffen André Langnes","path":"/SteffenL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1543854?s=80&v=4"},"commit":{"message":"Fix WKWebViewConfiguration leak (macOS) (#1078)","shortMessageHtmlLink":"Fix WKWebViewConfiguration leak (macOS) (#1078)"}},{"before":"af975dada68634237cd87156f9783b0839207a12","after":"fe246934219dc1c35303bb9a45998fe98df412b0","ref":"refs/heads/master","pushedAt":"2024-02-12T13:16:06.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"SteffenL","name":"Steffen André Langnes","path":"/SteffenL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1543854?s=80&v=4"},"commit":{"message":"Prevent unintentionally posting quit message multiple times (Win32) (#1077)","shortMessageHtmlLink":"Prevent unintentionally posting quit message multiple times (Win32) (#…"}},{"before":"2b5e446d7bbec96551624fe3e547fffaf5243173","after":"af975dada68634237cd87156f9783b0839207a12","ref":"refs/heads/master","pushedAt":"2024-02-12T05:18:43.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"SteffenL","name":"Steffen André Langnes","path":"/SteffenL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1543854?s=80&v=4"},"commit":{"message":"Reduce interference with user-owned window (Win32) (#1076)\n\nOnly show window and grab focus when window is owned.\r\n\r\nAlso update the documentation of webview_create to make it more clear that\r\nresponsibilities change depending on whether an existing window is passed\r\nin.","shortMessageHtmlLink":"Reduce interference with user-owned window (Win32) (#1076)"}},{"before":"3a00acc19aff710e64425bd3ea76ee9124e205d2","after":"2b5e446d7bbec96551624fe3e547fffaf5243173","ref":"refs/heads/master","pushedAt":"2024-02-12T05:01:42.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"SteffenL","name":"Steffen André Langnes","path":"/SteffenL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1543854?s=80&v=4"},"commit":{"message":"Expose native handles to web views (#1064)\n\nExpose native handles/pointers to give more control to the user of the library.\r\n\r\n---------\r\n\r\nCo-authored-by: Steffen André Langnes ","shortMessageHtmlLink":"Expose native handles to web views (#1064)"}},{"before":"12f68a477d66c7ca9316063ccf3402e8f79a3e83","after":"3a00acc19aff710e64425bd3ea76ee9124e205d2","ref":"refs/heads/master","pushedAt":"2024-02-11T14:35:52.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"SteffenL","name":"Steffen André Langnes","path":"/SteffenL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1543854?s=80&v=4"},"commit":{"message":"Embed WebView2 into a child window (Win32) (#1074)\n\nLinux/GTK and macOS/Cocoa both support automatic UI layouting and can\r\ntherefore automatically resize the webview widget when embedded into a\r\nnon-owned window, but Windows/Win32 has no automatic layout system.\r\nI don't believe that we can non-intrusively determine when the widget\r\nshould be resized. An intrusive way could be to replace the non-owned\r\nwindow's WndProc.\r\n\r\nThis work creates a UI widget (child window) that WebView2 can render\r\nonto, and this widget is embedded into the top-level window.\r\nIf we expose the native handle of this widget then we can let the owner\r\nof the window take responsibility of resizing the widget.","shortMessageHtmlLink":"Embed WebView2 into a child window (Win32) (#1074)"}},{"before":"6e0d7d609c34ed47e4b13b4830b0594f0b57829b","after":"12f68a477d66c7ca9316063ccf3402e8f79a3e83","ref":"refs/heads/master","pushedAt":"2024-02-10T13:19:37.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"SteffenL","name":"Steffen André Langnes","path":"/SteffenL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1543854?s=80&v=4"},"commit":{"message":"Fix MSVC warnings (#1075)","shortMessageHtmlLink":"Fix MSVC warnings (#1075)"}},{"before":"2ba5e8edf18f99a667096b96985de9e0c016ea53","after":"6e0d7d609c34ed47e4b13b4830b0594f0b57829b","ref":"refs/heads/master","pushedAt":"2024-02-10T06:23:17.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"SteffenL","name":"Steffen André Langnes","path":"/SteffenL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1543854?s=80&v=4"},"commit":{"message":"Set focus to webview widget when owned window activates (Win32) (#1073)\n\nPreviously, the webview widget would lose focus when the top-level\r\nwindow went into the background and then into the foreground.\r\n\r\nThis behavior would break the workflow e.g. during alt-tabbing by\r\nrequiring the user to click with the mouse inside the webview widget\r\nin order to regain focus.\r\n\r\nThe behavior on Linux is that focus is automatically regained.","shortMessageHtmlLink":"Set focus to webview widget when owned window activates (Win32) (#1073)"}},{"before":"74abe5daafa355a623eb510e6de9683c652f6bbb","after":"2ba5e8edf18f99a667096b96985de9e0c016ea53","ref":"refs/heads/master","pushedAt":"2024-02-10T05:36:06.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"SteffenL","name":"Steffen André Langnes","path":"/SteffenL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1543854?s=80&v=4"},"commit":{"message":"Allow passing HWND to webview_create (Win32) (#1072)\n\nThe function originally took a pointer to HWND, but it's more natural\r\nfor a caller to pass an HWND which by itself is a pointer.\r\n\r\nSupport for passing a pointer to HWND is retained by checking whether\r\nthe supplied value is an existing window.\r\n\r\nDocumentation was reworded a bit for clarity.","shortMessageHtmlLink":"Allow passing HWND to webview_create (Win32) (#1072)"}},{"before":"c85fc9cc473a173c369e13292e628d8d598f150e","after":"74abe5daafa355a623eb510e6de9683c652f6bbb","ref":"refs/heads/master","pushedAt":"2024-02-10T05:06:50.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"SteffenL","name":"Steffen André Langnes","path":"/SteffenL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1543854?s=80&v=4"},"commit":{"message":"Fix webview_get_window documentation for Win32 (#1071)\n\nDocumentation for this function claimed that it would return an \"HWND\r\npointer\" (pointer to HWND?), but it actually returns an HWND.\r\n\r\nReworded the documentation for clarity and readability.","shortMessageHtmlLink":"Fix webview_get_window documentation for Win32 (#1071)"}},{"before":"2405c2cd63f3d4b9bcd24f5ad6dfa13660178d7f","after":"c85fc9cc473a173c369e13292e628d8d598f150e","ref":"refs/heads/master","pushedAt":"2024-02-07T05:17:46.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"SteffenL","name":"Steffen André Langnes","path":"/SteffenL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1543854?s=80&v=4"},"commit":{"message":"Fix JSON escaping with UTF-8 (#1069)\n\nThis work fixes a bug where returning UTF-8-encoded strings from bound C++\r\nfunctions could cause the JS callbacks to not be invoked. The bug could be\r\ntriggered with characters encoded with a size greater than 1 byte.\r\n\r\nCases of incorrect escaping of characters:\r\n\r\n* DEL (0x7f) isn't required to be escaped and is therefore no longer being\r\n escaped.\r\n* 0x80 through 0x9f were escaped but 0x80 and up is used for multibyte\r\n characters in context with UTF-8-encoding. For example, the UTF-8 byte\r\n sequence of the Unicode character '⌨' is {0xe3, 0x8c, 0xa8}; however,\r\n 0x8c would be escaped and break the sequence.\r\n* Characters \\b, \\f, \\n, \\r and \\t are now properly escaped.\r\n\r\nExisting code reserved more memory than needed for the escaped string.\r\nThis has been corrected, and an assert() has been added to make sure that\r\nwe reserve the exact amount needed.","shortMessageHtmlLink":"Fix JSON escaping with UTF-8 (#1069)"}},{"before":"f699fb57f922d028440b99b22154a16b2cfb3e77","after":"2405c2cd63f3d4b9bcd24f5ad6dfa13660178d7f","ref":"refs/heads/master","pushedAt":"2024-01-10T02:52:29.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"SteffenL","name":"Steffen André Langnes","path":"/SteffenL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1543854?s=80&v=4"},"commit":{"message":"Workaround for blank window with WebKit/DMA-BUF/NVIDIA/X11 (#1060)\n\nWebKit 2.42 along with X11 and NVIDIA GPU driver triggers bug:\r\nhttps://bugs.webkit.org/show_bug.cgi?id=261874\r\n\r\nThe bug causes a blank window. Instead of waiting for the problem\r\nto be fixed, this work attempts to check for these conditions before\r\nsetting the environment variable WEBKIT_DISABLE_DMABUF_RENDERER to 1.\r\n\r\nIf the variable WEBKIT_DISABLE_DMABUF_RENDERER has already been set\r\nthen the workaround is not applied.","shortMessageHtmlLink":"Workaround for blank window with WebKit/DMA-BUF/NVIDIA/X11 (#1060)"}},{"before":"075bfa0bd3d8fd0f782c21f06c317ea8c58f00c3","after":"f699fb57f922d028440b99b22154a16b2cfb3e77","ref":"refs/heads/master","pushedAt":"2024-01-03T18:22:44.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"SteffenL","name":"Steffen André Langnes","path":"/SteffenL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1543854?s=80&v=4"},"commit":{"message":"Reduce interference with user-owned window (GTK) (#1054)\n\n* Reduce interference with user-owned window (GTK)\r\n\r\nDon't attempt to show window or grab focus when a user-owned window\r\nis passed in.\r\n\r\n* Always show widget","shortMessageHtmlLink":"Reduce interference with user-owned window (GTK) (#1054)"}},{"before":"45cd7200a491ca8f14dbf0302f6ec2ee6aa5a1f9","after":"075bfa0bd3d8fd0f782c21f06c317ea8c58f00c3","ref":"refs/heads/master","pushedAt":"2024-01-03T18:22:03.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"SteffenL","name":"Steffen André Langnes","path":"/SteffenL","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1543854?s=80&v=4"},"commit":{"message":"Fix WebKitGTK deprecation warning using modern API with fallback (#1022)\n\nBuilding the library on Ubuntu 22.04 emits a warning saying that\r\n`webkit_web_view_run_javascript` is deprecated and should be replaced\r\nwith `webkit_web_view_evaluate_javascript`.\r\n\r\nThis work adds initial support for dynamically importing\r\n`webkit_web_view_evaluate_javascript` while falling back to\r\n`webkit_web_view_run_javascript` without issuing a warning. It also\r\nfacilitates potential future work on deciding at runtime whether to use\r\n`webkit2gtk-4.0` or `webkit2gtk-4.1`.\r\n\r\n`webkit_web_view_evaluate_javascript` became available in WebKit2GTK 2.40\r\nwhich is only available for the most recent Linux distros. For example,\r\nUbuntu 20.04 only has WebKit2GTK 2.38 so we can't use\r\n`webkit_web_view_evaluate_javascript` there.\r\n\r\nWhat doesn't seem like good options to me:\r\n* Decide at compile-time whether to statically import the modern API,\r\n because then the program will only work on the most recent Linux distros.\r\n* Statically import the old API, because that emits the warning.\r\n\r\nI believe this leaves us with only one realistic option: dynamically import\r\nthe most modern API we support and fall back to an older one.\r\n\r\nOn a similar note, `webkit2gtk-4.0` is also deprecated and replaced with\r\n`webkit2gtk-4.1`, with the latter only available for recent Linux distros.\r\nThe only difference between WebKit2GTK API 4.0 and 4.1 is that 4.0 depends\r\non `libsoup2` while 4.1 depends on `libsoup3`.\r\n\r\nWe can't just cut off every user who is on a slightly older Linux distro.","shortMessageHtmlLink":"Fix WebKitGTK deprecation warning using modern API with fallback (#1022)"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAENztqVAA","startCursor":null,"endCursor":null}},"title":"Activity · webview/webview"}