In these circumstances "Who broke the glass?" would be the more usual. As it had clearly happened recently in time, since the mother was last there, and it was reasonably clear that it must have been one or other of the children - then the simple past tense would be idiomatically correct.
However, if the mother had been looking among some belongings, where she had not looked for a long time, and discovered something that had been broken, with no clear evidence as to who had broken it, or when it might have been, she might well say "Who has broken this precious thing?"
In other words, use the perfect if the circumstances are not recent, the time period not specific, or there is a general lack of clarity. e.g. I might say "Where did you go on holiday last year?", but "Where have you been on holiday these last few years?".