Używam Mavericks i Google Chrome Wersja 34.0.1797.2 dev.
To jest błąd, który otrzymuję:
Jan 25 17:09:12 genesis Google Chrome Helper[46267]: Process unable to create connection because the sandbox denied the right to lookup com.apple.coreservices.launchservicesd and so this process cannot talk to launchservicesd. : LSXPCClient.cp #426 `___ZN26LSClientToServerConnection21setupServerConnectionEiPK14__CFDictionary_block_invoke()` q=com.apple.main-thread
Jan 25 17:09:12 genesis Google Chrome Helper[46267]: Process unable to create connection because the sandbox denied the right to lookup com.apple.coreservices.launchservicesd and so this process cannot talk to launchservicesd.
Jan 25 17:09:12 genesis Google Chrome Helper[46267]: CGSLookupServerRootPort: Failed to look up the port for "com.apple.windowserver.active" (1100)
Masz pojęcie, co może być tego przyczyną? Przeszukałem go i nie znalazłem pojęcia ...
google-chrome
Paweł Gościcki
źródło
źródło
Odpowiedzi:
Jak zapewne wiesz, Google Chrome działa jako aplikacja wieloprocesowa . Masz swój początkowy proces „Google Chrome”, który zarządza interfejsem użytkownika i odtwarza „host” dla szeregu innych procesów. Dla każdej zakładki otwieranej w Chrome tworzony jest nowy proces „renderer”, proces „wtyczki” dla każdego instalowanego rozszerzenia oraz osobny proces „GPU” dla kodu komunikującego się z GPU systemu. Każdy z tych procesów pojawia się w monitorze aktywności jako proces „Google Chrome Helper”.
Aby zwiększyć bezpieczeństwo Chrome, procesy renderujące działają w piaskownicy . Mogą rozmawiać z siecią tylko przez proces hosta i mogą rozmawiać tylko z określonymi plikami (na przykład czcionkami i profilami ColorSync). Nie mogą też rozmawiać z innymi procesami w systemie, co powoduje te komunikaty w dzienniku. Procesy renderera próbują rozmawiać z procesami uruchamiania i obsługi okien, ale nie można tego zrobić z powodu ich piaskownicy.
Ten błąd został rozwiązany przez inżyniera oprogramowania w zespole Google Chrome ds. Bezpieczeństwa przy zatwierdzeniu w lutym 2014 r. Usunięcie tego jednego wiersza kodu rozwiązało problem.
[NSApplication sharedApplication];
Wywołanie metody sharedApplication powoduje między innymi połączenie między aplikacją a WindowServer systemu OS X, co może oznaczać błąd w błędzie CGSLookupServerRootPort.
Zamiarem Chrome było wywołanie tej metody w celu „rozgrzania” niektórych zasobów przed włączeniem piaskownicy; uzyskiwanie dostępu do niektórych plików, procesów lub zasobów sieciowych przed wprowadzeniem ograniczeń piaskownicy. Wydaje się jednak, że w pewnym momencie ta próba zaczęła się nie powieść, co spowodowało błędy w dzienniku. Domyślam się, że Apple uznał tę „rozgrzewkę” za próbę oszukiwania piaskownicy i zaczął ją ograniczać.
Jeśli czytam poprawnie, ta zmiana dotarła do kanału stabilnego wydania wraz z aktualizacją Google Chrome do 34.0.1847.131 w kwietniu 2014.
Co ciekawe, zespół Chrome omawiał usuwanie tych wywołań metody sharedApplication w październiku 2013 r., A nawet dyskutował nad usunięciem kakao z procesów renderujących jako cel jeszcze w 2009 r.
W powiązanej notatce Apple opublikowało poprawkę bezpieczeństwa w kwietniu 2014 r., Aby rozwiązać błąd polegający na tym, że „sesje WindowServer mogą być tworzone przez aplikacje w piaskownicy”.
źródło