After the rock struck her in the head, she went into cardiac arrest, police said.
Police said the rock was thrown during an altercation between people in the vehicle and a group of people standing in the car park.
Police officers and members of the public conducted CPR on the woman until paramedics arrived.
She was then rushed to hospital where she remains in the ICU.
Read Related Also: Medicaid expansion breakthrough within reach in North Carolina
The 17-year-old from Kensington has been charged with grievous bodily harm and breach of bail.
He is due to face Perth Children’s Court today.
Detectives are calling for anyone who witnessed the incident, or has mobile phone or dashcam footage taken in the carpark between 7pm and 7.30pm to contact Crime Stoppers.