summaryrefslogtreecommitdiffstats
path: root/recipes-wam/wam
AgeCommit message (Collapse)AuthorFilesLines
2024-01-29Add a reverse proxy to enable grpc-web for webappsRoger Zanoni2-1/+2
This is needed because there's no browser api with enough control over http/2 requests, so we need a proxy that connects to the RPC backend and handle the communication between the app and service. The service is named "databroker-grpc-web-proxy.service" because each proxy instance connects to only one gRPC service, more services will be added to connect to other gRPC services. Bug-AGL: SPEC-4599 Signed-off-by: Roger Zanoni <rzanoni@igalia.com> Change-Id: I3b5bf6521dc0683639520626819c6a54be839e53 Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/meta-agl-demo/+/29425 ci-image-build: Jenkins Job builder account ci-image-boot-test: Jenkins Job builder account Tested-by: Jenkins Job builder account Reviewed-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org>
2023-11-23Make CEF the default and deprecate chromiumJan-Simon Moeller2-13/+1
We complete the migration to CEF (Chromium Embedded Framework) by making CEF the default and deprecating the outdated chromium recipe. Bug-AGL: SPEC-4975 Change-Id: I59e3cdedda46ad74947a7b7e8d51dea70ecbd033 Signed-off-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org> Reviewed-on: https://gerrit.automotivelinux.org/gerrit/c/AGL/meta-agl-demo/+/29449 Tested-by: Jenkins Job builder account ci-image-build: Jenkins Job builder account ci-image-boot-test: Jenkins Job builder account
2023-08-16fixup! [cef] Use bundled libwayland instead of the system libRoger Zanoni1-2/+0
When using the in-process-gpu flag, chromium fails to initialize gl and angle with the proper values. Instead, get back to using gpu process. Bug-AGL: SPEC-4871 Signed-off-by: Roger Zanoni <rzanoni@igalia.com> Change-Id: I46f6c30ccc7aa41625a353d68e3ebe68f3e8c3aa
2023-07-31[wam][cef] Fix wam user and working directoryRoger Zanoni2-3/+5
The WAM service needs to run with the correct user and proper working directory set to be able to find the nssdb containing the kuksa.val certificates. Bug-AGL: SPEC-4868 Signed-off-by: Roger Zanoni <rzanoni@igalia.com> Change-Id: I22fb5281b4f331d671fba79645435e5357bbca3e
2023-07-18[wam][cef] Make it possible to use cef as a backendRoger Zanoni8-152/+3875
This changes enables switching between the chromium and cef backends on wam by passing the agl-cef feature to the agl-setup script. Bug-AGL: SPEC-3872 Signed-off-by: Roger Zanoni <rzanoni@igalia.com> Change-Id: Ib5b4b139789ec8303fef0a210a7e8f2f724d0c00
2023-06-07Remove systemd user session and clean up packagegroups and imagespike_15.91.0pike/15.91.015.91.0Scott Murray2-27/+26
Remove the use of systemd user session to align with how upstream runs Weston, and to allow using all systemd sandboxing features with the compositor and homescreen, launcher, etc. applications. The changes for this touched enough packagegroups and images that further rework was done to address some of the cleanup described in SPEC-4813, see below for details. Changes: - Rework systemd units and recipes of affected applications. - Rework images to pull in image .bb files instead of .inc files. - Pull in the new agl-image-compositor as a base image where appropriate. - Update weston-terminal-conf recipe to use new split out weston-terminal package. - Use new agl-crosssdk bbclass where appropriate. - Pull some local common cross-SDK additions into a new agl-ivi-crosssdk.inc include file and use as appropriate. Note that this does have a side effect of likely correcting the contents of agl-image-ivi-crosssdk for some recent additions. - Remove flutter-gallery bbappend that turned it into an app, as we are not using it in images, have other examples now, and it seems better to not affect the contents of agl-image-flutter. - Remove unused agl-image-graphical-html5. If a downstream user does desire an image with Chromium+WAM without applications, restoring it can be considered. - Remove unused agl-image-graphical-qt5-crosssdk. - Remove all packagegroup-agl-profile-* packagegroups, as they were either empty or not providing value at this point. Any future plans for defining profiles can start from a clean sheet. - Added new packagegroup-agl-ivi-multimedia-hardware to hold some rcar3 specific additions (via override) that were previously being appended onto packagegroup-agl-graphical-multimedia even though they are machine-specific and that packagegroup is not. This may be a stopgap solution if the agl-ivi-* packagegroups are reworked further. - Replace some :append usage with += to avoid creating problems for downstream users. Bug-AGL: SPEC-4714, SPEC-4813 Change-Id: I544b1495bed1e2e2412a8e46b7d20d7622ec28c9 Signed-off-by: Scott Murray <scott.murray@konsulko.com>
2022-09-06wam: fix surface type name in application manifestJose Dapena Paz1-1/+1
Renamed appinfo.json field surface_role to be surface_type to be consistent with other parts of the code base. Took the chance to remove types that were not meaningful, and renamed default type (the one used when it is not set) to be default instead of none. Then updated the only applications setting the value to use the new propery. Those are html5-background and html5-homescreen. wam: 8ea41f7..4fbd6e6 4fbd6e6 [op][agl][wayland] Provide only supported AGL shell types html5-background: e91be22..aa7e2a8 aa7e2a8 Rename surface/role in appinfo.json to surface/type. bb4f497 autobuild: Remove autobuild scripts html-homescreen: fc0ffa4..f3cecb6 f3cecb6 Rename surface/role in appinfo.json to surface/type. Bug-AGL: SPEC-4505 Signed-off-by: Jose Dapena Paz <jdapena@igalia.com> Change-Id: I404717dd5d848220bd5f070b98de56df38a78e20
2022-07-31wam: use gRPC for internal IPC.needlefish_13.92.0needlefish/13.92.013.92.0Jose Dapena Paz1-2/+2
Update WAM to use GRPC for internal IPC instead of Unix domain sockets, dropping previous implementation. Update dependencies to use grpc and protobuf. chromium: 9d9fbef68a..9fe715038f 9fe715038f [op][agl][wayland] Drop window surface ID wam: 491dcd1..3cc744f 3cc744f [wam][agl][wayland] Remove surface ID. 12d9778 [wam][agl][ipc] Rename WamSocketLockFile to WamIPCLockFile fc5f7ff [wam][agl][ipc] Remove Unix Domain socket based IPC implementation 92a3356 [wam][agl][ipc] Introduce LaunchParams struct replacing LaunchData 61ce1d0 [wam][agl][ipc] Add gRPC implementation of internal IPC ae51589 [wam][agl] Make IPC pass its parameters instead of storing them Bug-AGL: SPEC-4252 Change-Id: I8edbe1d47a684f73feadfed6cbd944c01b6d2ceb Signed-off-by: Jose Dapena Paz <jdapena@igalia.com>
2022-06-14wam: ignore GPU block listJose Dapena Paz1-1/+1
Force GPU acceleration in all platforms even if they are in the block list. Signed-off-by: Jose Dapena Paz <jdapena@igalia.com> Change-Id: Ia598f8dd986ff769aed6692c037e03e10e68a5ef
2022-06-13chromium, wam: fix repository branches.Jose Dapena Paz1-1/+1
Though git hashes for OSE 2.16 rebase were added, the branch names are different reflecting the upstream baseline. Bug-AGL: SPEC-4377 Signed-off-by: Jose Dapena Paz <jdapena@igalia.com> Change-Id: I065ad84a36e120e9f425220251cb04a466a2f99a
2022-06-13chromium91=ose17.agl,wam=ose57: update Chromium and WAM to webOS OSE 2.16 ↵Jose Dapena Paz1-2/+2
baseline Rebased chromium91 and wam on top of the versions s hipped in webOS OSE 2.16 release. chromium91: ose11.agl..ose17.agl 78e203bfd6 [op][n_upsable][media] Fix upstream v4l2 video encoder for webos c6decb5ddd fixup! [op][n_upsable][media] Support for enabling use_neva_v4l2_codec 98ae785c0c [op][n_upsable][input] Fix crash on rwhva::OnTextSelectionChanged ed1a510acd [op][n_upsable][wayland] Check count inited displays c1afea619c [op][n_upsable][static_analysis] Fix "Unchecked return value" issue 1fbec7a090 [op][n_upsable][static_anaysis] Fix unrecoverable parse warning 5da09aead6 [op][n_upsable][suspend] Ignoring Page::SetPaused while its destroying 4fa834ef5e fixup! [op][n_upsable][app_shell] Implement Cookie Management using JS Injection 14e4a3fc83 [op][n_upsable][app_shell] Implement Cookie Management using JS Injection d5eebe0504 [op][n_ups][browser][app_shell] Disable Badging API f977972288 fixup! [op][n_upsable][media] Implement MediaSessionObserver for WebOS 36009fdf8d fixup! [op][n_upsable][app_shell] Implement site filter using JS Injection 06d44f5ebd fixup! [op][n_upsable][web_security] Check access to local file for media e5142a78ed fixup! [op][n_upsable][media] Fix crash in ForeignVideoWindowProvider e1dda8653e [oe][ds][gpu] Bypass the error when shared image is not cleared 2e1baa2ffd [op][n_upsable][app_shell] PopUp blocker feature using JS Injection 5b3a3e0bcc [op][n_upsable][app_shell] Implement site filter using JS Injection f06876e1c3 [op][n_upsable][app_shell] Implement URLDatabase using sqlite 6b29edc477 [op][upsable][build] breakpad: fix build with glibc-2.34 91cab725d2 [op][ups][build] abseil-cpp: fix build with glibc-2.34 wam: ose57.agl..ose58.agl 703efea [oe][locale] Fixed incorrect access to locale json data Bug-AGL: SPEC-4377 Change-Id: I5d0cb70c2d8ec8c68a73ad05a087c93a3a9912d2 Signed-off-by: Jose Dapena Paz <jdapena@igalia.com>
2022-05-13chromium, html5-*: adapt to kirkstoneJose Dapena Paz1-2/+2
Adapt the recipes to the changes required by Yocto kirkstone: * Explicit python2 dependency. * Replace _ with : as separator in variables. * Explicit pkgconfig dependency. * Assume always upstream ozone wayland. chromium91: 2c7cb69495..d052051b3b d052051b3b [op][ups][build] Fix with more recent libstdc++ in kirkstone deb1439137 [op][ups][build] Fix breakpad build with kirkstone glibc. e6ee1dd0d0 [op][ups][build] Fix abseil-cpp build with glibc in kirkstone wam: 692f706..31840bc 31840bc [op][w_upsable] IWYU: std::string used in LogManagerConsole 15ce17e [op][n_upsable][build] IWYU: std::numeric_limit used in WebPageBlink missing include. 848565d fixup! [op][agl] New QtLess AGL port html5-homescreen: 5c9e060..fc0ffa4 fc0ffa4 Update to recent dependencies a42b304 Launch background after launcher. html5-launcher: cb6b66c..1283e3b 1283e3b Update dependencies. html5-background: 7b79640..e91be22 e91be22 Update to recent dependencies. html5-hvac: e64d69b..6abbe87 6abbe87 Update to recent dependencies. Bug-AGL: SPEC-4261 Change-Id: I48581a57df3ff22d8aaab2334e4f9b4127a6d427 Signed-off-by: Jose Dapena Paz <jdapena@igalia.com>
2022-05-13chromium=91.0.4472.114.ose11.agl, wam=ose57.aglJose Dapena Paz1-3/+3
Move to webOS OSE 2.15.0 baseline of wam and chromium. This includes: * Migration from chromium 87.* to chromium 91.* * New error page. * Bring back LTTng support in WAM. * Misc fixes to AGL build for chromium 91. Bug-AGL: SPEC-4261 Change-Id: Ia81c515b97e27da53e054fdc89622b7be0e8e1b5 Signed-off-by: Jose Dapena Paz <jdapena@igalia.com>
2022-05-13wam, chromium, html5-*: improve initial frame, and drop usage of config.xmlJose Dapena Paz1-1/+1
Move to use appinfo.json, new CLI interface, and fix flickering partially. chromium87: be0370b198..c9a66f75a7 c9a66f75a7 fixup! [op][n_upsable][splash][fmp] New splash and FMP implementation d7953f5e17 Revert "[op][agl][splash] Show immediately apps" wam: 8dd3f17..f4c2e95 f4c2e95 fixup! agl/web_app_manager_service_agl: Fix minor typo c072a91 agl/web_app_manager_service_agl: Fix minor typo 761961c web_runtime_agl, web_app_manager_service_agl: Add WebOS appinfo.json support 1ac280e web_runtime_agl: Pass arguments rather than env variables 6e0477f web_runtime_agl: remove setupsurface, nobody is using it 0d83a34 web_runtime_agl: Remove CYNOGARA auth token 4159489 fixup! [op][agl][wayland] Properly adapt dimensions for web apps using panel html5-homescreen: 21bd1dc..7d89048 7d89048 Launch background after launcher. 5c9e060 Use appinfo.json instead of config.xml * Change branch to master html5-launcher: b371797..cb6b66c cb6b66c Use appinfo.json instead of config.xml * Change branch to master html5-background: 16db46b..7b79640 7b79640 Use appinfo.json instead of config.xml 160a4f9 Add .gitreview file * Use AGL gerrit and change branch to master html5-hvac: 45641bf..e64d69b e64d69b Use appinfo.json instead of config.xml * Change branch to master Bug-AGL: SPEC-3982, SPEC-4251, SPEC-4301, SPEC-4312, SPEC-4315 Change-Id: Ibd2bc428910e6e39c52e14b8e969fdea77000a84 Signed-off-by: Jose Dapena Paz <jdapena@igalia.com>
2022-05-03wam: improve shutdown procedureJose Dapena Paz1-0/+2
It was observed that restarting agl-session would crash and/or hang WAM. So this change binds WAM to agl-compositor in systemd service file. This means stopping compositor will stop WAM. It also fixes another problem on restart, as the WAM launcher processes from previous execution would still be alive. So it forces killing all the WAM processes for the user on shutdown. Bug-AGL: SPEC-4293 Change-Id: I5131cdd56c292c66d0f2d5ea88cf772ef9b4bd56 Signed-off-by: Jose Dapena Paz <jdapena@igalia.com>
2022-03-24wam: disable VSyncJose Dapena Paz1-1/+1
Enabling VSync callback support in Chromium, that sets EGL swap interval to one, seems to be problematic as we get hangs in several scenarios calling eglSwapBuffers and waiting forever for swap feedback. This happens, at least, on initial boot on Rasberry PI 4 and on H3. It also happens after launching HVAC from launcher. Bug-AGL: SPEC-4289, SPEC-4290 Change-Id: I5fcaba9b8f5a1a7a362efd48d8df339168691c5e Signed-off-by: Jose Dapena Paz <jdapena@igalia.com>
2022-03-07meta-agl-demo: use HTML5 homescreen+background+launcher in HTML5 demoJose Dapena Paz2-2/+2
Adapt to use again html5-homescreen and html5-background: * Added html5-background and html5-homescreen. * Now only html5-homescreen is launched from systemd, while html5-launcher and html5-background are launched from html5-homescreen logic. * Use landscape weston configuration as expected in HTML5 demo. * Pass --agl-shell-appid=homescreen to WebAppMgr script so it knows which application implements the UI of agl_shell wayland protocol. chromium: bc1410d..fa99cf3344 fa99cf3344 [op][agl][wayland] Activate applications when requested from applaunchd ab1a4cf05d [op][agl][injection] AGL D-Bus implementation of PAL appservice e5f6143e55 [op][agl][injection] Add application service injection wam: b0c1e46..8dd3f17 8dd3f17 [op][agl][wayland] Remove unused role code. defc5af [op][agl][wayland] Fix: do not ignore Panel shell surface type. 6683b08 [op][agl][wayland] Set AGL application ID in all cases 0bb9814 [op][agl][wayland] Properly adapt dimensions for web apps using panel 9af0d23 [op][agl][wayland] Properly pass surface size, type and edge to chromium e6df86b [op][agl][injection] Declare in web app XML the required injections Bug-AGL: SPEC-4250 Change-Id: Ie1b1181f3a67ea2ada1912db53e360178a4cf443 Signed-off-by: Jose Dapena Paz <jdapena@igalia.com>
2022-03-07Add back HTML5 launcher to HTML5 demoJose Dapena Paz1-1/+1
Add the web-based launcher to the HTML5 demo dropping original launcher. It includes changes to the launcher to match the new navigator.appservice API and JS injection and drops agl-js-api. Bug-AGL: SPEC-4249 Change-Id: I02a68fc81693a56aa19e213e8ee200c0ec4e3f42 Signed-off-by: Jose Dapena Paz <jdapena@igalia.com>
2022-02-17wam: rebase on top of webOS OSE QtLess implementationJose Dapena Paz1-3/+5
Update SRCREV and branch to @55.agl.marlin, that includes the webOS OSE implementation of QtLess, and AGL work as a single commit on top of it adapting to the new coding style. Bug-AGL: SPEC-4239 Change-Id: Icc08a6ea13d85854194e6ce0278f653ce8262787 Signed-off-by: Jose Dapena Paz <jdapena@igalia.com>
2022-02-15chromium, wam: update to chromium87 tree.Jose Dapena Paz2-5/+5
Update to chromium87 tree, and wam adapted to chromium87. This does not include yet the webOS OSE QtLess version, but the submission right before QtLess work. This is because in webOS OSE current chromium87 release, the only work after the submission we are using is QtLess, without adding any new functionality. Renamed the recipe and package name to be "chromium" instead of "chromium84" or "chromium87". Now we use PV to state the version of the upstream Chromium. The Chromium87 tree history has been heavily simplified to make it easier to rebase in next upgrades. Bug-AGL: SPEC-4142, SPEC-4225, SPEC-4227, SPEC-4228 Change-Id: I6caed396f758dd80291803266f6a59f1fec406c4 Signed-off-by: Jose Dapena Paz <jdapena@igalia.com>
2022-02-01chromium*, wam: fix systemd launching from systemdJose Dapena Paz5-121/+14
Instead of providing a SMACK aware system service for WAM per session instance, provide a systemd user service depending on the new services in Marlin. Update the chromium84 and wam heads to include the required changes. We also remove the patches applied from recipe, so they belong to the chromium tree now. chromium84: 3d6fd5dd0b..4a320225eb 4a320225eb [op][agl][wayland] Take into account wayland output transform 13d93f6dae [op][agl][wayland] Do not bind agl_shell by default. ca47b4fd0a [skia][build] fix skia no_sanitize build issues for gcc 3b7541e3cf GCC: supress invalid-offsetof warning 6cd04072fb Add a delay to agl ready event wam: 935be6b..8607609 8607609 [op][agl][wayland] UiSize should be system resolution. fcfeb67 [op][agl] Allow to run web applications in new application framework. Bug-AGL: SPEC-4223 Change-Id: Ie0bc3dd6878920a0ba1bfac4f32814a23e4d41e7 Signed-off-by: Jose Dapena Paz <jdapena@igalia.com>
2021-12-07web-runtime: bump chromium84 and wam SRCREVLorenzo Tilve1-2/+2
Update SRCREVs to new marlin branches removing the build dependencies with the appfw. Bug-AGL: SPEC-4121 Signed-off-by: Lorenzo Tilve <ltilve@igalia.com> Change-Id: I5cc9ffca3101b58f750c377dfa14355e2a1d1ce6
2021-11-03Prepare master for new framework integrationJan-Simon Möller1-1/+1
During the last workshop the transition to the new framework was presented. This change essentially deprecates the SMACK-based application framework. To prepare the integration of it, we remove the deprecated components: - recipes-apis : all agl-service-* - recipes-demos: all demo apps but homescreen - non-essential configurations Todo: We need to bring-back the html5 image in a follow-up w/o ties into the old framework. v2: kept WAM + Chromium recipes for reference v3: rebased Bug-AGL: SPEC-4121 Signed-off-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org> Change-Id: I58075f5f1e477106a1aad3d2171a0904bf0cb16e
2021-10-07wam_git: Add protobuf dependency for WAMMarius Vlad1-1/+1
We're not currently using protobuf, but it would be of tremendous help if we are to be ready for the next integration phase which started to make use of it. Makes development much easier to do and it won't make such a big impact to have it early. Bug-AGL: SPEC-3967 Signed-off-by: Marius Vlad <marius.vlad@collabora.com> Change-Id: Ie35204a11a1f2e28c4fa3ce6566d17cc8c0421dd
2021-08-20Convert to new override syntaxScott Murray1-5/+5
This is the result of running a slightly customized version of the convert-overrides.py script from poky with additional overrides added. The intent of these changes is to minimize the effort to keep the "next" branch that builds against poky master up to date and tested in preparation for the switch to the next Yocto LTS release in early 2022. Bug-AGL: SPEC-4052 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: I6eeadd2c985c008b04f8f9815bf0f6fb064bedac
2021-03-24web-runtime: Update from chromium79 to chromium84Roger Zanoni2-5/+5
This patch contains all the squashed changes needed to bump WAM and chromium, including the ported changes from cr79. Bug-AGL: SPEC-3806 Signed-off-by: Roger Zanoni <rzanoni@igalia.com> Change-Id: If2b18e2978e8b1050e4b167b9627c1a526867cfb
2021-02-02wam: Fix startup issue on qemux86-64Lorenzo Tilve1-1/+1
There was an issue on WAM startup related with the initialization of the pmlog that was causing a crash on qemu. Update the WAM version to avoid that crash. It includes a revert on a change added to the logging system that triggered memory errors on qemu, and which with the fix for user-data-dir creation, allow WAM to startup correctly. https://github.com/Igalia/webosose-wam/commit/8a1ec2f3e474199a689ae71a12ba70a230770c0d BUG-AGL: SPEC-3780 BUG-AGL: SPEC-3781 Signed-off-by: Lorenzo Tilve <ltilve@igalia.com> Change-Id: Id528f8e3270e4f5417fbfda4cdb6a10b001cd6bb
2021-01-27wam: add user setup script/servicekoi_10.93.0koi/10.93.010.93.0Scott Murray3-0/+42
Add a per-user setup script, systemd unit to run it, and add the unit as a dependency of systemd's user-runtime-dir@.service so it will be run before the user services on each boot. This should fix the various permission issues currently being seen with WAM startup. Bug-AGL: SPEC-3781 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: Ie45b43a39530c23439332cdcd7f4550c9f6fc23c
2021-01-13web-runtime: Bump chromium79 and wam to adress first-frame dection and loggingLorenzo Tilve1-1/+1
Bump the versions of Chromium79 to include a workaround for the webapps launching delay that was introduced in order to address problems happening with first-frame detection. These updates also fix full WAM verbosity to journalctl when defined, and building Chromium with externalsrc, and removes lld and gold. Also iclude explicit dependency chain when building html5 dempo platform to packagegroup-agl-profile-graphical-html5. Bug-AGL: SPEC-3576 Bug-AGL: SPEC-3767 Signed-off-by: Lorenzo Tilve <ltilve@igalia.com> Change-Id: I34b0001c58522cfc7940d0384809e14e3d999ea8
2021-01-08web-runtime: Update from chromium68 to chromium79Lorenzo Tilve2-5/+11
This patch contains all the squashed changes needed to bump WAM and Chromium to M79, including all the ported changes from both upstream Chromium, webOSE and and the former chromium 68 version. It includes the needed changes on the recipes, and bumps the versions to the new commits/branches of the Chromium and Wam repositories. The split of the ongoing changes merged is available here: https://github.com/Igalia/meta-agl-html5-dev/commits/chromium79 Bug-AGL: SPEC-3576 Change-Id: Ia0de6f11001189789d4ffbf01ed81929c57bc7c5 Signed-off-by: Lorenzo Tilve <ltilve@igalia.com>
2020-12-17SPEC-3723: restructure meta-agl-demoJan-Simon Moeller4-0/+346
All demo related components should be in here now. We keep the packagegroups on purpose for now to stay backward-compatible. v2: layer does pass yocto-check-layer, dependencies adapted v3: remove the dynamic-layer setup, use all-in-one approach v4: Fixed comments from Paul Barker. Tnx! v5: Removed wayland/weston/agl-compositor additions, except for demo specific weston-init bbappend Follow-up changes required later: - massaging packagegroups - scrub of recipes Bug-AGL: SPEC-3723 Signed-off-by: Jan-Simon Moeller <jsmoeller@linuxfoundation.org> Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: I47cefd8c23d46b2cdd063470e3f7d97d5ad952d8