SShortSingh.
Back to feed

How a Playwright Bug Broke macOS Dock Chrome and the Fix Using Bundle ID Split

0
·1 views

A developer running automated browser scripts via Playwright discovered that directly executing the Chrome binary caused macOS LaunchServices to permanently register Chrome as already running, breaking Dock and Spotlight launches with an error -600. The conflict arose because Playwright's channel:'chrome' option exec's the Chrome binary directly, leaving LaunchServices convinced the app is active even after the automation process exits. The permanent fix involved copying Google Chrome.app to a separate app with a distinct bundle ID, effectively making the automation instance invisible to the regular Chrome. Since rewriting Info.plist invalidates Google's code signature, the copied app must be re-signed ad-hoc using codesign --force --deep --sign to prevent helper processes from being killed. A safety check in the script also ensures the rebuild is skipped if the automation Chrome is currently running, avoiding binary replacement mid-session.

Read the full story at DEV Community

This is an AI-generated summary. ShortSingh links to the original source for the complete article.

Discussion (0)

Log in to join the discussion and vote.

Log in

Related stories

0
ProgrammingDEV Community ·

Developer Reviews Tencent EdgeOne Makers, Shares Web Deployment Best Practices

A developer has shared a hands-on review of Tencent EdgeOne Makers, a platform that allows developers to build, test, and deploy web projects in a real environment. The review highlights key considerations including performance optimization, such as compressing images and removing unused files, to ensure consistent load times across devices and networks. The author also stresses that security practices — like keeping API keys and passwords out of public source code — should be adopted early, especially by beginners. Testing beyond the local environment is recommended, with the developer suggesting a continuous cycle of building, publishing, checking, and improving. The piece concludes with practical advice for young developers, emphasizing clean project structure and thorough testing at every stage.

0
ProgrammingDEV Community ·

How to Build a Reliable Small-Scale Test for AI Memory Systems

AI memory systems often appear impressive in demos, but a convincing output is not proof they will perform reliably in real-world use. A practical evaluation method involves creating a minimal note with a known date, owner, decision, and explicit limitation, then testing retrieval, interpretation, missing information, updates, and historical recall separately. Testers should verify not just the answer but the source evidence behind it, checking whether names, dates, and negations such as 'not approved yet' are preserved accurately. Updating a fact and re-querying helps distinguish whether the system correctly identifies the most current value versus an outdated one. Repeating the test across sessions with source inspection at every step provides a reproducible way to pinpoint whether failures stem from retrieval, interpretation, data freshness, or unsupported generation.

0
ProgrammingDEV Community ·

Developer Uses AI-Generated JavaScript to Validate Swift App Game Rules Before Coding

A solo developer working on ToneDrill, a guitar practice iOS app, has begun building a new feature called Chord Tone Practice, which challenges players to locate chord-tone patterns on a guitar fretboard. Before writing any SwiftUI code, the developer used Codex to generate a JavaScript validation script that tested 504 combinations of root notes, chord qualities, patterns, and fret ranges. The script confirmed there were no dead-end scenarios, overlapping answers, or conditions with zero valid solutions. This cross-language validation approach — using JavaScript to pre-test rules for a Swift app — was a new workflow for the developer. With the core game logic now verified, the next phase will focus on building the user interface in SwiftUI.

0
ProgrammingDEV Community ·

How Developers Are Building AI Pose Correction Tools Using React Native and MediaPipe

A new developer tutorial demonstrates how to build a smartphone-based physical therapy coach using React Native and MediaPipe's Pose Landmarker model. The application captures real-time body landmarks via the device camera and uses trigonometry to calculate joint angles, providing instant form feedback to users. All processing runs on-device using TensorFlow Lite with GPU acceleration, targeting 60 FPS performance while preserving user privacy. The pipeline routes camera frames directly into the MediaPipe inference engine to minimize latency overhead typical in React Native bridge calls. The tutorial also highlights production considerations such as handling motion jitter with Kalman Filters and adapting to varied lighting and body types.