Faits: A. B._, née en 1974, a été au service de X._ SA en qualité d'ouvrière de février 2003 à décembre 2006. Souffrant d'une capsulite des épaules prédominante à gauche, au décours, en raison de travaux répétitifs avec les bras, elle a cessé cette activité professionnelle depuis juillet 2006. Selon le docteur R._, spécialiste en rhumatologie, sa patiente a été incapable de travailler de juillet 2006 à mai 2007; à compter du 21 mai 2007, elle dispose à nouveau d'une capacité entière de travail, à la condition d'éviter les travaux exigeant le maintien des bras surélevés (rapport du 21 juillet 2008). Le docteur C._, médecin au Service médical régional, a fixé la capacité de travail exigible à 30 % dans l'activité habituelle et à 100 % dans une activité adaptée (appréciation du 16 septembre 2008). Par décision du 28 novembre 2008, l'Office cantonal de l'assurance-invalidité du canton de Genève a fixé le degré d'invalidité de B._ à 7 % et rejeté la demande de prestations qu'elle avait déposée le 3 juin 2008. B. B._ a déféré cette décision au Tribunal cantonal des assurances sociales de la République et canton de Genève. Le docteur M._, spécialiste en médecine physique et rééducation, nouveau médecin traitant, a été entendu par le tribunal le 7 avril 2009. Lors de cette audience, l'assurée a produit un rapport de l'Atelier de réadaptation professionnelle de l'Hôpital Y._ du 1er avril 2009, signé par V._, technicien responsable. Par jugement du 28 avril 2009, la juridiction cantonale a rejeté le recours. C. B._ interjette un recours en matière de droit public contre ce jugement dont elle demande l'annulation. Elle conclut principalement à la prise en charge d'une réadaptation professionnelle et à l'allocation d'une rente entière d'invalidité depuis le 1er juillet 2007, subsidiairement au renvoi de la cause au tribunal cantonal. L'intimé conclut au rejet du recours, tandis que l'Office fédéral des assurances sociales a renoncé à se déterminer. 