Faits :
A.
Par décisions des 6 janvier et 8 mars 2011, l'Office de l'assurance-invalidité du canton de Fribourg (ci-après: l'office AI) a alloué une demi-rente d'invalidité à A._ (née en 1982), à partir du 1 er octobre 2006, sous réserve des périodes d'indemnités journalières. Dans le cadre d'une révision du droit à cette prestation, l'office AI a fixé le taux d'invalidité de l'assurée à 36 % et supprimé la demi-rente à partir du 1 er juin 2015, par décision du 17 avril 2015. Cette décision a été annulée par le Tribunal cantonal du canton de Fribourg, Cour des assurances sociales, qui, par arrêt du 15 novembre 2016, a renvoyé la cause à l'office AI pour instruction complémentaire et nouvelle décision au sens des considérants.
L'office AI a soumis l'assurée à une expertise bidisciplinaire. Les docteurs B._, spécialiste en psychiatrie et psychothérapie, et C._, spécialiste en médecine interne générale et en rhumatologie, ont conclu que l'assurée disposait d'une capacité de travail de 65 % dans son activité habituelle ou dans une activité adaptée, sans diminution de rendement (rapports respectifs des 15 et 17 juillet 2017). Les docteurs D._, spécialiste en psychiatrie et psychothérapie, psychiatre traitant, et E._, spécialiste en médecine générale, ont pris position sur les conclusions de l'expertise, respectivement les 29 novembre et 28 décembre 2017. Par ailleurs, l'office AI a mis en oeuvre une enquête économique sur le ménage, à l'issue de laquelle l'enquêteur a retenu une incapacité de travail de 4,36 % (rapport du 23 avril 2018).
Dans un projet de décision du 12 juin 2018, l'office AI a fait savoir à l'assurée qu'il envisageait de supprimer la rente. Les objections de l'assurée ont été soumises au docteur B._ (avis du 23 septembre 2018). Appliquant la méthode mixte d'évaluation de l'invalidité, l'office AI a supprimé le droit à la demi-rente par décision du 18 octobre 2018, compte tenu d'un taux d'invalidité global de 28 % (empêchement de 34,60 % pour la part consacrée à l'activité lucrative de 80 %; aucun empêchement pour la part des tâches ménagères de 20 %).
B.
Saisi d'un recours de A._ contre cette décision, le Tribunal cantonal l'a admis par arrêt du 10 décembre 2020, en ce sens qu'il a reconnu le droit de l'assurée à une demi-rente d'invalidité du 1 er juin 2015 au 30 novembre 2018, puis à un quart de rente dès le 1 er décembre 2018. En bref, il a porté le taux d'invalidité à 55 % dans l'activité lucrative et à 7,82 % dans la partie ménagère, fixant ainsi le taux global à 46 % ([55 % x 0.8] + [7,82 % x 0.2]).
C.
A._ interjette un recours en matière droit public contre cet arrêt dont elle demande l'annulation. A titre principal, elle conclut à la poursuite du versement de la demi-rente au-delà du 30 novembre 2018. A titre subsidiaire, elle conclut au renvoi de la cause à l'office intimé pour mise en oeuvre d'une expertise psychiatrique relative à l'incapacité de travail sur le plan ménager et nouvelle décision.
L'intimé conclut au rejet du recours. L'Office fédéral des assurances sociales a renoncé à se déterminer.

Considérant en droit :
1.
Le recours en matière de droit public (<ref-law>) peut être formé pour violation du droit au sens des art. 95 et 96 LTF. Le Tribunal fédéral applique le droit d'office (<ref-law>). Il statue sur la base des faits retenus par la juridiction précédente (<ref-law>), qu'il peut rectifier ou compléter d'office si des lacunes et erreurs manifestes apparaissent aussitôt (<ref-law>). Le recourant n'est habilité à critiquer les constatations de fait que si les faits ont été établis de manière manifestement inexacte ou en violation du droit au sens de l'<ref-law> (<ref-law>), et si la correction du vice est susceptible d'influer sur le sort de la cause (cf. <ref-ruling> consid. 4.3 et les références).
2.
Les constatations de l'autorité cantonale de recours sur l'atteinte à la santé, la capacité de travail de la personne assurée et l'exigibilité - pour autant qu'elles ne soient pas fondées sur l'expérience générale de la vie - relèvent d'une question de fait et ne peuvent donc être contrôlées par le Tribunal fédéral que sous un angle restreint (<ref-ruling> consid. 3.2). Il en va de même de la constatation d'un empêchement pour les différents postes constituant l'activité ménagère (arrêt 9C_108/2021 du 1 er septembre 2021 consid. 3). On rappellera, en particulier, qu'il n'y a pas arbitraire du seul fait qu'une solution autre que celle de l'autorité cantonale semble concevable, voire préférable (<ref-ruling> consid. 2.2; <ref-ruling> consid. 6.1). Pour qu'une décision soit annulée pour cause d'arbitraire, il ne suffit pas que sa motivation soit insoutenable; il faut encore que cette décision soit arbitraire dans son résultat (<ref-ruling> consid. 3.4).
3.
3.1. Compte tenu des motifs et conclusions du recours, le litige a trait au maintien du droit de la recourante à une demi-rente de l'assurance-invalidité au-delà du 30 novembre 2018, dans le cadre de la révision du droit à cette prestation. Est uniquement contestée l'appréciation de la juridiction cantonale relative aux empêchements de la recourante dans la sphère ménagère en raison d'affections psychiques.
3.2. L'arrêt entrepris expose de manière complète les dispositions légales et les principes jurisprudentiels relatifs à la notion d'invalidité (art. 7 et 8 al. 1 LPGA, en lien avec l'<ref-law>), à la méthode mixte d'évaluation de l'invalidité (<ref-law> en corrélation avec l'art. 27 bis RAI), à la révision de rentes (<ref-law>), ainsi qu'au caractère invalidant de troubles psychiques et psychosomatiques (<ref-ruling>). L'instance précédente a également rappelé que la tâche du médecin consiste à porter un jugement sur l'état de santé et à indiquer dans quelle mesure et pour quelles activités l'assuré est incapable de travailler (cf. <ref-ruling> consid. 5.2.1 et les références); elle a aussi précisé les règles applicables à la valeur probante d'une enquête économique sur le ménage (<ref-ruling>; arrêt 9C_658/2020 du 5 février 2021 consid. 3.2). Il suffit de renvoyer à l'arrêt attaqué.
En ce qui concerne l'incapacité d'accomplir les travaux habituels en raison d'une atteinte à la santé, on rappellera qu'une enquête économique sur le ménage effectuée au domicile de l'assuré (cf. <ref-law>) constitue en règle générale une base appropriée et suffisante pour évaluer les empêchements dans ce domaine. Même si, compte tenu de sa nature, l'enquête économique sur le ménage est en premier lieu un moyen approprié pour évaluer l'étendue d'empêchements dus à des limitations physiques, elle garde cependant valeur probante lorsqu'il s'agit d'estimer les empêchements que l'assuré rencontre dans ses activités habituelles en raison de troubles d'ordre psychique. Toutefois, en présence de tels troubles, et en cas de divergences entre les résultats de l'enquête économique sur le ménage et les constatations d'ordre médical relatives à la capacité d'accomplir les travaux habituels, celles-ci ont, en règle générale, plus de poids que l'enquête à domicile. Une telle priorité de principe est justifiée par le fait qu'il est souvent difficile pour la personne chargée de l'enquête à domicile de reconnaître et d'apprécier l'ampleur de l'atteinte psychique et les empêchements en résultant (arrêt 9C_925/2013 du 1 er avril 2014 consid. 2.2 et les références).
4.
La recourante critique l'appréciation des preuves et l'établissement des faits opérés par les premiers juges. Elle leur reproche de n'avoir pas constaté que l'intimé ne s'était pas procuré une expertise psychiatrique probante relative à sa capacité de s'occuper de ses tâches ménagères, en violation des instructions données aux consid. 7b et 8 de l'arrêt du 15 novembre 2016. Elle soutient que le docteur B._ n'avait fourni aucune appréciation de la capacité de travail sur le plan domestique, car il avait indiqué qu'"aucune appréciation précise ne peut être faite, vu le tableau excessif et contradictoire quant au fonctionnement de l'assurée dans son quotidien".
Dans ce contexte, la recourante fait grief aux juges cantonaux de n'avoir pas tenu compte de la diminution de son rendement dans la réalisation proprement dite des tâches ménagères en raison de ses troubles psychiques. A son avis, il ressort du rapport d'enquête économique sur le ménage du 23 avril 2018, du rapport du docteur D._ du 8 septembre 2015, du rapport du cabinet d'ergothérapie F._ du 16 novembre 2018, ainsi que des déclarations de son époux devant la Justice de paix de l'arrondissement de la Sarine, le 5 juin 2019, que ses troubles psychiques induisent des limitations non seulement dans la planification des tâches ménagères mais aussi dans leur exécution. Elle en déduit que le taux d'invalidité dans la sphère ménagère est à tout le moins équivalent à celui retenu sur le plan professionnel (55 %), de sorte que son taux d'invalidité global est de 55 %.
5.
5.1. Contrairement à l'opinion de la recourante, le rapport d'expertise du docteur B._ du 15 juillet 2017 et son complément du 23 septembre 2018 ont valeur probante (cf. <ref-ruling> consid. 3a) et son auteur s'y est notamment exprimé sur l'accomplissement des tâches ménagères. En effet, l'expert a décrit de manière détaillée les atteintes à la santé de la recourante, indiquant aussi la mesure dans laquelle elles affectaient les ressources disponibles ou mobilisables. En particulier, il a posé le diagnostic, avec incidence sur la capacité de travail, de troubles mixtes de la personnalité (F61.0); sans incidence sur la capacité de travail, il a retenu un trouble dépressif récurrent, épisode actuel en rémission à niveau léger (F33.0), un syndrome douloureux somatoforme persistant (F45.4), une aversion sexuelle (F52.1), ainsi qu'une majoration de symptômes physiques pour des raisons psychologiques (F68.0). Sous l'angle de la cohérence, le docteur B._ a constaté d'importantes divergences entre les symptômes décrits et les observations médicales. Au terme de son analyse, en ce qui concerne les "capacités en tant que mère et ménagère" (depuis 2011), il a indiqué que les informations étaient à un tel point dramatisées qu'il n'y avait pas de précision possible, mais qu'il pensait que la recourante assumait réellement un 80 % dans ce domaine. Dans son rapport du 23 septembre 2018, il a ajouté qu'il n'existait aucune preuve que la recourante était sévèrement entravée dans la réalisation de la plupart de ses tâches ménagères. Prenant position sur le rapport d'enquête ménagère du 23 avril 2018, il a indiqué que les conclusions de celle-ci allaient très largement dans le sens de ce qu'il avait esquissé dans son expertise, dont il ne modifiait pas le résultat. En d'autres termes, si le docteur B._ a indiqué qu'il n'était pas en mesure de chiffrer précisément l'étendue des empêchements dans la tenue du ménage en raison d'affections psychiques, il a néanmoins donné son appréciation sur ce point, en retenant que selon lui, l'assurée accomplissait 80 % des tâches ménagères et qu'aucune preuve ne démontrait une entrave sévère dans ce domaine.
Ces éléments semblent avoir échappé à la recourante, car elle ne discute pas les conclusions de l'expert B._. Elle donne en revanche sa propre évaluation de l'incidence de ses troubles psychiques dans l'accomplissement des travaux ménagers en invoquant d'abord l'enquête économique sur le ménage du 23 avril 2018, où est notamment mis en évidence son état d'impulsivité, d'agitation et de stress permanent. Cette enquête retient un empêchement en raison d'affections psychiques dans l'exécution des tâches ménagères de 4,36 %, alors qu'on peut déduire des indications du docteur B._ un empêchement de 20 %. On peut toutefois renoncer à faire compléter l'instruction pour déterminer plus précisément la capacité de la recourante à assumer ses tâches ménagères, car l'avis du docteur B._, qui est à certains égards plus favorable à la recourante que celui de l'enquêteur de l'intimé, bénéficie d'une priorité de principe qu'il n'y a pas lieu de remettre en cause (cf. consid. 3.2 supra). Si l'on appliquait un seuil d'empêchements de 20 % dans tous les postes de l'enquête ménagère du 23 avril 2018, le total des empêchements atteindrait au plus 23,48 % dans la sphère ménagère, résultant du calcul suivant:
Alimentation (28 %) :
- planification (inchangé) : pondération 5 %; empêchements 80 %; invalidité 4 %
- éplucher, préparer, cuire, etc.: pondération 55 %; empêchements 20 %; invalidité 11 %
- préparer, mettre la table, débarrasser: pondération 10 %; empêchements 20 %; invalidité 2 %
- travaux de nettoyage quotidiens dans la cuisine: pondération 25 %; empêchements 20 %; invalidité 5 %
- grand nettoyage: pondération 5 %; empêchements 20 %; invalidité 1 %
sous-total: 0.28 x 23 % = 6,44 %
Entretien de l'appartement (17 %) :
- planification (inchangé) : pondération 5 %; empêchements 80 %; invalidité 4 %
- travaux de nettoyage légers: pondération 35 %; empêchements 20 %; invalidité 7 %
- passer l'aspirateur (inchangé) : pondération 20 %; empêchements 20 %; invalidité 4 %
- passer la serpillière: pondération 10 %; empêchements 20 %; invalidité 2 %
- nettoyage des sanitaires: pondération 8 %; empêchements 20 %; invalidité 1,6 %
- changer le linge de lit, tourner les matelas (inchangé) : pondération 2 %; empêchements 20 %; invalidité 0,4 %
- nettoyage à fond (inchangé) : pondération 10 %; empêchements 20 %; invalidité 2 %
- soigner les plantes, le jardin (inchangé) : pondération 10 %; empêchements 20 %; invalidité 2 %
sous-total: 0.17 x 23 % = 3,91 %
Emplettes et courses diverses (10 %) :
- planification (inchangé) : pondération 5 %; empêchements 100 %; invalidité 5 %
- grands achats: pondération 45 %; empêchements 20 %; invalidité 9 %
- achats quotidiens: pondération 40 %; empêchements 20 %; invalidité 8 %
- poste, banque, démarches officielles: pondération 10 %; empêchements 20 %; invalidité 2 %
sous-total: 0.1 x 24% = 2,4 %
Lessive et entretien des vêtements (7 %) :
- planification (inchangé) : pondération 5 %; empêchements 80 %; invalidité 4 %
- transporter le linge (inchangé) : pondération 5 %; empêchements 20 %; invalidité 1 %
- lessive: pondération 35 %; empêchements 20 %; invalidité 7 %
- repasser, raccommoder (inchangé) : pondération 20 %; empêchements 20 %; invalidité 4 %
- plier le linge: pondération 30 %; empêchements 20 %; invalidité 6 %
- ranger le linge: pondération 5 %; empêchements 20 %; invalidité 1 %
sous-total: 0.07 x 23 % = 1,61 %
Soins et assistance aux enfants et aux proches (38 %) :
- planification (inchangé) : pondération 5 %; empêchements 100 %; invalidité 5 %
- soins aux enfants: pondération 95 %; empêchements 20 %; invalidité 19 %
sous-total: 0.38 x 24 % = 9,12 %
Compte tenu du total général de 23,48 % (6,44 + 3,91 + 2,4 + 1,61 + 9,12), au lieu du total de 4,36 % retenu par l'enquêteur et celui de 7,82 % arrêté par les premiers juges, le taux d'invalidité global passerait alors à 49 % ([55 % x 0.8] + [23,48 % x 0.2]). Il resterait donc inférieur au seuil de 50 % ouvrant droit à la demi-rente d'invalidité, si bien que l'issue du litige serait inchangée.
5.2. Les pièces auxquelles se réfère la recourante pour faire valoir un taux d'empêchement de 55 % sur le plan ménager ne permettent pas de retenir un taux supérieur à celui estimé par l'expert psychiatre.
5.2.1. Ainsi, nonobstant le dépôt du rapport du docteur D._ du 8 septembre 2015 dans la procédure de recours dirigée contre la décision du 17 avril 2015, la juridiction cantonale avait renvoyé la cause à l'intimé pour la réalisation d'une instruction médicale complémentaire, en raison de l'absence d'une évaluation suffisamment circonstanciée de l'évolution de l'état de santé sur les plans psychique et physique (cf. arrêt du 15 novembre 2016 consid. 8c). La recourante se prévaut à nouveau de ce rapport médical, ce qui paraît contradictoire. En effet, non seulement elle n'explique pas en quoi le renvoi aurait été contraire au droit (à tout le moins en tant qu'il portait sur le volet psychiatrique), mais elle reproche aussi à l'instance précédente de s'être ensuite écartée de cette décision de renvoi qui la liait en ne renvoyant pas une nouvelle fois la cause à l'intimé pour mise en oeuvre d'une nouvelle expertise psychiatrique destinée à évaluer l'impact des troubles psychiques sur sa capacité à accomplir ses tâches ménagères. Par ce raisonnement, la recourante admet donc implicitement que le rapport du docteur D._ du 8 septembre 2015 ne permettait pas de statuer en connaissance de cause.
5.2.2. Les premiers juges ont dénié toute valeur probante au rapport du cabinet d'ergothérapie F._ du 16 novembre 2018, invoqué par la recourante, car son auteur semblait avoir donné uniquement corps aux descriptions données par la recourante dans sa participation aux activités ménagères. Ils ont ajouté que l'ergothérapeute n'avait ainsi pas recherché ce que la recourante pouvait faire, mais ce qu'elle acceptait de faire compte tenu de sa propre appréciation de ses limitations fonctionnelles. La recourante restreint toutefois son argumentation à qualifier d'"inconcevable" l'appréciation du tribunal cantonal sur ce point, ce qui, en l'absence de développement concret, ne suffit pas à démontrer le caractère arbitraire.
5.2.3. Quant aux déclarations de l'époux de la recourante devant la Justice de paix de l'arrondissement de la Sarine du 5 juin 2019, que l'intéressée met en exergue, elles ne sauraient prévaloir sur l'appréciation de l'expert psychiatre, par identité de motifs avec ce qui a été rappelé lorsqu'il existe des divergences entre les résultats de l'enquête économique sur le ménage et les constatations médicales d'ordre psychiatrique relatives à la capacité d'accomplir les travaux habituels (cf. consid. 3.2 supra). En évoquant les troubles psychiques de son épouse, G._ met en évidence les difficultés importantes qu'elle éprouve dans la communication avec ses enfants; ses déclarations ne comportent cependant aucun élément susceptible de retenir des empêchements concrets au niveau des soins effectifs de plus de 20 %.
5.3. Vu ce qui précède, l'arrêt attaqué n'est pas contraire au droit dans son résultat, en tant qu'il aboutit à la réduction de la demi-rente à un quart de rente (<ref-law>; <ref-law>). Le recours est infondé.
6.
La recourante, qui succombe, supportera les frais judiciaires (<ref-law>).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté.
2.
Les frais judiciaires, arrêtés à 800 fr., sont mis à la charge de la recourante.
3.
Le présent arrêt est communiqué aux parties, au Tribunal cantonal du canton de Fribourg, II e Cour des assurances sociales, et à l'Office fédéral des assurances sociales.
Lucerne, le 6 décembre 2021
Au nom de la IIe Cour de droit social
du Tribunal fédéral suisse
Le Président : Parrino
Le Greffier : Berthoud