Faits :
A.
A._ a travaillé en qualité de collaboratrice de production au service de B._ SA. A ce titre, elle était assurée obligatoirement contre le risque d'accident auprès de la Caisse nationale suisse d'assurance en cas d'accidents (CNA).
Le 24 février 2012, l'assurée a glissé et est tombée durant son travail (déclaration d'accident du 2 mars 2012). La doctoresse C._, spécialiste en neurologie, a indiqué que la chute en avant, avec une implication non précisée de la colonne cervicale, avait été suivie de douleurs cervicales progressives. Posant le diagnostic de cervico-brachialgie bilatérale, de prédominance gauche, la neurologue est partie de l'hypothèse que l'incident avait activé une arthrose cervicale sous-jacente. Au status neurologique, elle n'a toutefois relevé aucun syndrome déficitaire nerveux périphérique ou central, en particulier pas dans le domaine de la racine C7 à gauche. Cependant, une irritation radiculaire était probable (rapport du 10 juillet 2012). La CNA a pris le cas en charge.
Lors d'un examen pratiqué le 10 février 2014, la doctoresse C._ a constaté que le status neurologique était superposable à celui de 2012 et relevé l'absence d'éléments nouveaux (rapport du 11 février 2014).
Se fondant sur l'examen du docteur D._, médecin d'arrondissement, spécialiste en médecine physique, réadaptation et rhumatologie (rapport du 5 décembre 2014), la CNA a procédé à la clôture du cas au 14 décembre 2014 en ce qui concerne les suites de l'accident et mis fin au versement des indemnités journalières à cette date, par décision du 10 décembre 2014 confirmée sur opposition le 26 juin 2015.
B.
A._ a déféré cette décision sur opposition au Tribunal cantonal du canton de Fribourg, Cour des assurances sociales, en demandant son annulation. A titre principal, elle a conclu à ce que la CNA fût condamnée à allouer ses prestations au-delà du 14 décembre 2014; à titre subsidiaire, elle a conclu au renvoi de la cause à cet assureur.
Par jugement du 29 septembre 2016, la juridiction cantonale a rejeté le recours.
C.
A._ interjette un recours en matière de droit public contre ce jugement dont elle demande l'annulation. Elle conclut derechef et principalement à la poursuite de la prise en charge du cas à compter du 14 décembre 2014, subsidiairement au renvoi de la cause au tribunal cantonal. Elle sollicite le bénéfice de l'assistance judiciaire.
L'intimée conclut au rejet du recours. L'Office fédéral de la santé publique a renoncé à se déterminer.

Considérant en droit :
1.
Le recours est dirigé contre un arrêt final (<ref-law>) rendu en matière de droit public (<ref-law>) par une autorité cantonale de dernière instance (art. 86 al. 1 let. d LTF). Il a été déposé dans le délai (<ref-law>) et la forme (<ref-law>) prévus par la loi. Il est donc recevable.
2.
Le litige porte sur le point de savoir si l'intimée était fondée, par sa décision sur opposition du 26 juin 2015, à cesser la prise en charge des suites de l'accident survenu le 24 février 2012 à compter du 14 décembre 2014, singulièrement, s'il existe un lien de causalité naturelle et adéquate entre l'accident et les troubles persistant après cette date.
Lorsque le jugement entrepris porte sur des prestations en espèces et en nature de l'assurance-accidents, le Tribunal fédéral constate avec un plein pouvoir d'examen les faits communs aux deux objets litigieux et se fonde sur ces constatations pour statuer, en droit, sur ces deux objets. En revanche, les faits qui ne seraient pertinents que pour statuer sur le droit aux prestations en nature ne sont revus que dans les limites définies par les art. 97 al. 1 et 105 al. 2 LTF (arrêt 8C_316/2013 du 10 février 2014 consid. 2 et les références).
3.
Selon l'<ref-law>, les prestations d'assurance sont allouées en
cas d'accident professionnel, d'accident non professionnel et de maladie professionnelle.
3.1. Le droit à des prestations découlant d'un accident assuré suppose d'abord, entre l'événement dommageable de caractère accidentel et l'atteinte à la santé, un lien de causalité naturelle. Cette exigence est remplie lorsqu'il y a lieu d'admettre que, sans cet événement accidentel, le dommage ne se serait pas produit du tout, ou qu'il ne serait pas survenu de la même manière (<ref-ruling> consid. 3.1 p. 181; 402 consid. 4.3.1 p. 406; <ref-ruling> consid. 1 p. 337; <ref-ruling> consid. 1b p. 289 et les références). Le droit à des prestations de l'assurance-accidents suppose en outre l'existence d'un lien de causalité adéquate entre l'accident et l'atteinte à la santé. La causalité est adéquate si, d'après le cours ordinaire des choses et l'expérience de la vie, le fait considéré était propre à entraîner un effet du genre de celui qui s'est produit, la survenance de ce résultat paraissant de façon générale favorisée par une telle circonstance (<ref-ruling> consid. 3.2 p. 181; 402 consid. 2.2 p. 405; <ref-ruling> consid. 5a p. 461 et les références).
3.2. En vertu de l'<ref-law>, les prestations pour soins, les remboursements de frais ainsi que les indemnités journalières et les allocations pour impotent ne sont pas réduits lorsque l'atteinte à la santé n'est que partiellement imputable à l'accident. Lorsqu'un état maladif préexistant est aggravé ou, de manière générale, apparaît consécutivement à un accident, le devoir de l'assurance-accidents d'allouer des prestations cesse si l'accident ne constitue pas la cause naturelle (et adéquate) du dommage, soit lorsque ce dernier résulte exclusivement de causes étrangères à l'accident. Tel est le cas lorsque l'état de santé de l'intéressé est similaire à celui qui existait immédiatement avant l'accident ( statu quo ante) ou à celui qui existerait même sans l'accident par suite d'un développement ordinaire ( statu quo sine) (cf. RAMA 1994 n° U 206 p. 326 consid. 3b, 1992 n° U 142 p. 75; arrêts 8C_373/2013 du 11 mars 2014 consid. 3.2; 8C_1003/2010 du 22 novembre 2011 consid. 1.2; 8C_552/2007 du 19 février 2008 consid. 2; FRÉSARD / MOSER-SZELESS, L'assurance-accidents obligatoire, in Schweizerisches Bundesverwaltungsrecht [SBVR], Sécurité sociale, 3 e éd., n os 107 ss p. 930). A contrario, aussi longtemps que le statu quo sine vel ante n'est pas rétabli, l'assureur-accidents doit prendre à sa charge le traitement de l'état maladif préexistant, dans la mesure où il s'est manifesté à l'occasion de l'accident ou a été aggravé par ce dernier (arrêt 8C_373/2013 du 11 mars 2014 consid. 3.2). En principe, on examinera si l'atteinte à la santé est encore imputable à l'accident ou ne l'est plus (statu quo ante ou statu quo sine) sur le critère de la vraisemblance prépondérante, usuel en matière de preuve dans le domaine des assurances sociales (<ref-ruling> consid. 3.1 p. 181, 402 consid. 4.3.1 p. 406 et les références).
4.
4.1. La juridiction cantonale s'est référée en particulier à l'avis des docteurs E._, spécialiste en médecine physique et réhabilitation ainsi qu'en rhumatologie, et F._, médecins à la Clinique romande de réadaptation. Dans leur rapport du 13 janvier 2014 relatif à un séjour effectué du 11 décembre 2013 au 8 janvier 2014, ces derniers avaient attesté que la symptomatologie dépressive présente en 2012 avait laissé place à un trouble somatoforme sans lien avec l'accident. Ils avaient ajouté que la situation était stabilisée au plan médical, les douleurs rapportées étant des douleurs musculaires tensionnelles, sans qu'il y ait en tout cas d'explications par les troubles dégénératifs ou une autre atteinte, en particulier neurologique. Il n'y avait pas d'atteinte lésionnelle identifiable ou de comorbidité psychiatrique pouvant justifier le maintien de l'incapacité de travail.
Les juges cantonaux ont aussi mentionné les avis des docteurs G._, médecin-chef du service ORL et chirurgie cervico-faciale de l'hôpital H._ (rapport du 20 octobre 2014), et D._ (rapport du 5 décembre 2014). Ils ont rappelé que le premier nommé avait relevé le caractère dégénératif des troubles à la colonne vertébrale, tandis que le second avait estimé que le statu quo était déjà atteint depuis un certain temps et que la prise en charge de la problématique douloureuse relevait de l'assurance-maladie.
Quant au lien de causalité entre l'accident et les douleurs subsistantes, la juridiction cantonale ne l'a pas retenu. Se référant à la jurisprudence applicable en la matière (jugement, consid. 3 p. 10), elle a considéré que le fait que les douleurs se sont manifestées et ont persisté après l'accident ne suffisait pas pour admettre l'existence de ce lien. Elle a jugé que l'état de santé était fortement influencé par des facteurs sans lien avec l'accident, lequel ne saurait être qualifié de particulièrement grave, que cela soit au regard des circonstances dans lesquelles il s'est produit ou des séquelles qu'il a pu directement causer pendant un certain temps. De plus, les séquelles n'ont pas nécessité un traitement médical contraignant. Le tribunal cantonal a dès lors confirmé la décision administrative et admis que les affections n'étaient plus en lien de causalité avec l'accident, à tout le moins à partir de décembre 2014.
4.2. La recourante se plaint d'une violation de l'<ref-law>. A son avis, la juridiction cantonale aurait dû admettre l'existence d'un lien de causalité, au motif que sa vraisemblance l'emporte, notamment à la lumière des avis des docteurs C._ et I._ et du professeur J._. Pour elle, il est incontestable que son état de santé aurait été différent si l'événement accidentel du 24 février 2012 n'avait pas eu lieu.
Par ailleurs, la recourante se prévaut d'une violation de l'<ref-law>. A cet égard, quand bien même elle aurait présenté un état maladif antérieur, elle estime que les premiers juges auraient dû condamner l'assureur-accidents à prendre en charge le traitement de l'état maladif préexistant, aussi longtemps que le statu quo sine n'était pas rétabli.
En outre, la recourante reproche à la juridiction cantonale d'avoir violé son droit à la protection de l'arbitraire (art. 9 Cst.). Relevant que l'autorité précédente s'est basée notamment sur les rapports établis juste après l'accident par les docteurs K._, G._ et D._, elle soutient que dans le cadre de l'analyse apportée au lien de causalité adéquate, les juges cantonaux n'ont pas suffisamment et correctement pris en compte l'avis du docteur J._ lequel avait affirmé que ses douleurs étaient des conséquences directes de l'accident, ni celui de la doctoresse C._ pour qui l'incident avait activé une arthrose cervicale sous-jacente. A ses yeux, des investigations médicales complémentaires et judiciaires auraient eu le mérite de clarifier objectivement la situation.
4.3. L'examen des avis médicaux invoqués par la recourante (professeur J._, docteurs C._ et I._) ne permet pas de remettre en cause l'appréciation de la causalité naturelle par les premiers juges. En particulier, le professeur J._ (cf. rapports des 19 décembre 2014 et 6 février 2015) a uniquement indiqué que les douleurs au niveau des vertèbres C2 à C7 ne s'étaient manifestées qu'après l'accident et qu'elles avaient persisté depuis lors. En soi, cette appréciation médicale ne suffit pas pour admettre l'existence du lien de causalité contesté au-delà du 14 décembre 2014, près de trois ans après l'événement accidentel, d'autant moins que l'avis de la neurologue C._ qu'elle invoque ne va pas dans le sens de son argumentation et ne lui est d'aucun secours. En effet, la doctoresse C._ ne s'est pas exprimée sur la causalité naturelle (cf. rapport du 11 février 2014).
La recourante ne conteste pas l'existence d'un syndrome douloureux chronique avec somatisation massive que le docteur D._ a mis en évidence. Dès lors que les causes des douleurs et de leurs incidences sur la capacité de travail exigible sont connues, de plus amples investigations médicales apparaissent superflues. Le grief - implicite - de violation de l'art. 61 let. c LPGA est infondé.
Vu ce qui précède, il faut admettre que le lien de causalité naturelle entre l'accident survenu en février 2012 et les douleurs aux vertèbres cervicales qui persistaient en décembre 2014 avait disparu. Il s'ensuit que la suppression des prestations est conforme au droit fédéral.
5.
Une partie ne remplit les conditions de l'assistance judiciaire que si elle ne dispose pas de ressources suffisantes et si ses conclusions ne paraissent pas vouées à l'échec (cf. <ref-law>; <ref-ruling> consid. 2.3.1 p. 135, 128 I 225 consid. 2.5.3 p. 236 et les références).
A la lecture des considérants du jugement attaqué et du recours tel qu'il est motivé, ce dernier était dépourvu de chances de succès, si bien que la demande d'assistance judiciaire doit être rejetée pour ce motif.
La recourante, qui succombe, supportera les frais de la procédure (<ref-law>).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté.
2.
La demande d'assistance judiciaire est rejetée.
3.
Les frais judiciaires, arrêtés à 800 fr., sont mis à la charge de la recourante.
4.
Le présent arrêt est communiqué aux parties, au Tribunal cantonal du canton de Fribourg, Cour des assurances sociales, et à l'Office fédéral de la santé publique.
Lucerne, le 18 mai 2017
Au nom de la Ire Cour de droit social
du Tribunal fédéral suisse
Le Président : Maillard
Le Greffier : Berthoud