Gina Rodriguez as Jane, Francisco San Martin as Fabian.
Photo: Scott Everett White/SCOTT EVERETT WHITE/THE CW
Bless Jane the Virgin for bringing back a character from its first two seasons whom I’d been missing this year. Yes, Lina is back! Even better, she comes back in a way that’s impressively thoughtful and emotionally grounded.
Lina had been absent from the series since Michael’s death, and although her disappearance hasn’t been hugely noticeable, it’s an element of the series I’d begun to wonder about. One of the things that most distinguishes Jane the Virgin from other shows with female protagonists is how fully it’s always imagined Jane’s life. We see her from all angles, including as a writer, as an employee, as a mother and a daughter, as a co-parent, as a romantic partner, and as a friend. Each of those roles adds something to how we understand Jane Villanueva.
So I’d missed Lina. The show’s post-Michael era has been about rediscovering Jane as someone capable of feeling happy, and a big part of that has been exploring her as a sexual person. (More on that in a second.) But she needs friendship, too. “Chapter Sixty-One” manages to tell a really effective story about what caused Jane’s distance from Lina, and also lets us see them have a believable, touching reunion. The scene between them in the bathroom is so impressively rooted in who each of them has become. Lina’s life finally started to pull together in a way that excited her: She’s got a job she actually loves, she’s moved away, and she has a fiancé. She wanted to support Jane as much as she could, but her desire to talk about her own life without being given the ultimate “at least your boyfriend is alive” guilt trip is completelyunderstandable. At the same time, of course Jane felt abandoned! She was in a dark, grief-filled place. It makes absolute sense that they’d have a hard time staying connected.
In itself, that feels like an unusual and impressively insightful conversation about friendship. It is — and I mean this in the best possible way — a little bit like the best of Grey’s Anatomy, where the presence, change, and constant analysis of friendships forms the backbone for ongoing storytelling. But it’s also distinctly in keeping with what Jane the Virgin is about: illuminating human stories with empathy and humor, even when someone pulls off a rubber mask to reveal that she’s an evil drug kingpin. Jane and Lina are right. They do always end up sitting in a bathroom to have this kind of conversation. It’s yet another way the series finds grounded, emotionally realistic spaces inside its brightly colored telenovela world.
Jane’s return to friendship with Lina is one part of her story this week. The other, as I mentioned, is all about “Jane the Horndog.” And I love it. I love Fabian, who is sweet and funny and not especially intellectual, and I love that the series actively pressures Jane (and us) to probe our own assumptions about who he is and what makes him a worthwhile person. I love how openly nice he is, even while he also asks Jane if Orwell is the popcorn guy. The Fabian story also feels like an important pendulum swing away from Jane’s virginal identity: It adds some interesting, perhaps unexpected depth to Fabian, allowing someone like Lina to push Jane into examining her own prejudices about him, but it also lets us see yet another facet of who Jane is. In this case, we see an adult woman who really wants to get laid.
Jane’s choice to be a person who has sex (or would, at least, if Fabian were onboard with it) is presented in exactly the same terms as her earlier choice to abstain. It’s something she has chosen for herself, and something that’s allowed to change over time as she changes. In a nice change from so many TV stories about female sexual desire, her horniness is not inherently slutty, manipulative, predatory, or hilarious. She’s just herself. Okay, it’s a little hilarious. But only in the way sex is often a little hilarious.
This is an episode full of awwwws. We get Lina and Jane reconnecting, which is almost more touching and sweet than I could handle. We get a nice little “aww” in the conversation between Jane and Rafael, when he talks about how much he loved her. And then the biggest “awwwwww,” which we finally get in the moment when Xiomara proposes to Rogelio and he says yes and it’s perfect. I mean, look: The weird tension with Alba beforehand is perfect, classic proposal run-up stuff. The ring, and Xiomara putting it on Rogelio’s hand, is perfect. Rogelio’s inability to cry because of his morning Botox is perfect. But surely the most perfect of all is when Rogelio realizes what’s going on and he says, “Oh my God, oh my God, I am going to faint.” It’s beautiful. And like Our Narrator, when these two kids get engaged it gets me every single time.
“Chapter Sixty-One” ends with one of the more effective telenovela cliff-hangers the show has done in a while: Petra, riding up to Pensacola in search of evidence to help acquit Anezka, in the company of a suddenly revealed as evil Chuck Chesser. (The discovery of his true nature, via Anezka explaining that Scott used to call him “J.P.,” short for Jerky Pants, is one of my more favorite villain reveals in a while.) There are also some good Petra-Anezka stories happening in the episode, woven through Rafael’s ongoing feelings for Petra and the work of Elvis, private investigator.
But the last story I want to touch on in “Chapter Sixty-One” is the political one, the one that most directly tackles the issues the show has hinted at since the election. (And from its very first episode, really.) Donald Trump never gets name-checked specifically, but this feels like the first story that’s fully confronted the ways that current events would impact the Villanueva women. I will admit to being a little confused about exactly how that works, given that they jumped ahead three years — were we not in the current year before? What year is it now, in the show? — but things are vague enough that the idea still works.
Jane wants Alba to channel her frustration by coming to a march. Alba’s reluctant, fearing that protest could jeopardize her green-card status, and then that anxiety is transferred through two characters. First, a woman storms into the Marbella gift shop and yells at a fellow customer for not speaking English; this sets off a conversation between Alba and Jorge in which she learns that he’s undocumented. At the same time, Mateo overhears Alba’s frustration with ICE raids and gets worried that someone’s going to come deport his great-grandmother.
I suppose this plot point might feel shoehorned in, especially inside an episode that’s otherwise so full of “awww.” But I think it works because the show’s political preoccupations are so well established, and because it manages to put everything in the context of Mateo’s anxiety without coming off like a very special episode of Full House. I’d be surprised if the series ever gets more direct than this, though: Its political sincerity has always been the exception, with winking hashtags and narratorial commentary being more the rule. I don’t think I’d want it to go any further. This, though, I was very happy to see.
Anyhow, Chuck is Jerky Pants, and he’s in a car with Petra — and a gun! To be continued!
From Our Narrator, With Love
• Lots of great Narrator stuff this week, but one of my favorite things is the way the series has figured out how to depict the grosser sides of parenthood frankly and sincerely, while still acknowledging that they’re gross. Example: Mateo requesting that somebody “wipe” him. Narrator: “PASS.” Meanwhile, Timmy, who eschews wiping? “A dick!”
• Also, our Narrator’s continuing love for Rogelio will never grow old. “Wiping your nose is never cute,” he tells us, before we cut to an image of Rogelio doing exactly that. “Perhaps I spoke too soon,” he says.
#Rogelio
• Jane tells Xiomara and Rogelio about the awkwardness with Lina. “Yeah, Oprah and Gayle went through something like this,” he reassures her.
• The proposal scene is the big Rogelio set piece, and it is a doozy. But one of the lead-up scenes, in which Xo talks about her fear that their history will just repeat itself and Rogelio reassures her, is also just incredibly sweet. “We can slow down if that’s what you want,” he tells her, “but for my part, we’re not moving fast enough.” Aww indeed.
By submitting your email, you agree to our
Terms and Privacy Notice
and to receive email correspondence from us. This site is protected by reCAPTCHA and the Google
Privacy Policy and
Terms of Service apply.
or
Already a subscriber?
What is your email?
This email will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
Password must be at least 8 characters and contain:
Lower case letters (a-z)
Upper case letters (A-Z)
Numbers (0-9)
Special Characters (!@#$%^&*)
This password will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
You’re in!
As part of your account, you’ll receive occasional updates and offers from New York, which you can opt out of anytime.
or
Already a subscriber?
What is your email?
This email will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
Password must be at least 8 characters and contain:
Lower case letters (a-z)
Upper case letters (A-Z)
Numbers (0-9)
Special Characters (!@#$%^&*)
This password will be used to sign into all New York sites. By submitting your email, you agree to our Terms and Privacy Policy and to receive email correspondence from us.
You’re in!
As part of your account, you’ll receive occasional updates and offers from New York, which you can opt out of anytime.
Already a subscriber?
Already a subscriber?
`;
// integrate Sub(x) scripts and elements
if (hostname !== 'subs.nymag.com') { // do not integrate on this subdomain
document.head.appendChild(trackingScript);
document.body.insertAdjacentHTML('beforeend', subXAnimationElements);
}
There was an error processing the request. Please try again later."}).catch(e=>console.error("Error verifying email: ",e)))(r.querySelector(".content"),o.bannerCTAVerification)})):(l.remove(),s.remove()),o.dismissable||n.remove(),o.useAlertIcon||a.remove(),r.classList.add("show"),n.addEventListener("click",()=>{u(),r.classList.remove("show")})}else r.remove()}});
}, {"1":1,"6":6,"12":12,"35":35,"40":40}];
window.modules["global-nav.client"] = [function(require,module,exports){"use strict";const dom=require(4),auth=require(12),signInButton=dom.find(".user-signin"),signOutButton=dom.find(".user-signout"),globalNav=dom.find('[class^="global-nav"]'),body=dom.find("body"),dropdownItems=dom.findAll(".dropdown-wrap"),gtm=require(1),appendLandingPageParams=require(135),pageUri=require(124).getPageUri(),subscriptionPromoLinks=dom.findAll(".persist-params"),searchString=window.location.search||"";function closeDropdowns(e){let n=globalNav.querySelectorAll(".dropdown.open");dropdownItems.forEach(function(t){let o=t.querySelector(".dropdown");!n||t.contains(e.target)&&27!==e.keyCode||o.classList.remove("open")})}function gtmSendReport(e,n,t){let o={eventCategory:"ecommerce",eventAction:"componentClick",brand:e,dimension23:"global-nav",list:pageUri,pageZone:"header",variant:"nav-link"};"global-nav-link"===t&&(o.eventLabel=n.href),gtm.reportNow(o)}function updateElementTargetUrlsIfQueryStrings(e){if(searchString){const n=new URLSearchParams(searchString);let t=e.href;if(t.includes("?")){const o=t.split("?"),i=new URLSearchParams(o[1]);for(let e of n.entries())i.set(e[0],e[1]);t=`${o[0]}?${i.toString()}`,e.href=t}else e.href=`${t}?${n.toString()}`}}function init(e){const n=e.querySelectorAll(".to-landing-page");window.addEventListener("auth:init",()=>{signInButton.addEventListener("click",function(e){e.preventDefault(),auth.showEmbeddedLoginFlow("top navigation")}),signOutButton.addEventListener("click",function(e){e.preventDefault(),gtmSendReport("Sign Out",e.target,"user-info-link"),auth.logout()}),auth.isAuthenticated()&&e.classList.add("signed-in"),auth.isSubscriber()&&e.classList.add("subscribed"),e.querySelectorAll(".user-link").forEach(e=>{e.classList.add("active")}),subscriptionPromoLinks.forEach(e=>{updateElementTargetUrlsIfQueryStrings(e)}),appendLandingPageParams(n)})}dropdownItems.forEach(function(e){e.addEventListener("click",function(){e.querySelector(".dropdown").classList.toggle("open")})}),body.addEventListener("click",closeDropdowns),document.addEventListener("keydown",closeDropdowns),globalNav.addEventListener("click",function(e){let n=e.target;n.classList.contains("global-nav-track")&>mSendReport(n.text,n,"global-nav-link")}),module.exports=init;
}, {"1":1,"4":4,"12":12,"124":124,"135":135}];
window.modules["aaa-module-mounting.legacy"] = [function(require,module,exports){"use strict";const _pickBy=require(221),_each=require(406),Fingerprint2=require(408),DS=require(407),Eventify=require(246);function registerGlobals(){window.DS=DS,window.Eventify=Eventify,window.Fingerprint2=Fingerprint2,DS.value("Eventify",Eventify),DS.value("Fingerprint2",Fingerprint2),DS.value("$document",window.document),DS.value("$window",window)}function mountDollarSliceComponents(){DS.service("components",["$document","$module",function(e,n){var o=_pickBy(n.definitions,e=>e.providerStrategy===n.providers.controller),r=Object.keys(o);function t(e){return o=>{try{n.get(e,o)}catch(e){logMountError(o,e)}}}_each(r,n=>{var o=e.querySelectorAll('[data-uri*="/_components/'+n+'/"]'),r=e.querySelectorAll('[data-uri$="/_components/'+n+'"]');_each(o,t(n)),_each(r,t(n))}),this.components=r}]),DS.get("components")}function logMountError(e,n){const o=e.outerHTML.slice(0,e.outerHTML.indexOf(e.innerHTML));console.error("Error attaching controller to "+o,n)}registerGlobals(),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>{mountDollarSliceComponents()}):mountDollarSliceComponents();
}, {"221":221,"246":246,"406":406,"407":407,"408":408}];
window.modules["ads.legacy"] = [function(require,module,exports){"use strict";const _map=require(118),_forEach=require(107),_isString=require(268),_intersectionWith=require(409),_isEqual=require(274),_each=require(406),_debounce=require(182),_sortBy=require(205),page=require(124),visit=require(114);DS.service("adService",["Eventify","$cid","$document","$window",function(e,t,a,i){var o,n,s,r,d,c,u,l,g={},p=this,h=[],f=visit.getQueryParamsObject(["utm_campaign"]),m=document.querySelector('script[data-type="ad-a9"]'),b=[],w=!1,v=[],y=document.querySelector('script[data-name="ad-doubleverify"]');document.querySelector('script[data-name="concert-ads"]')||(i.NYM={},i.NYM.analytics={},i.NYM.analytics.adStartTime=i.performance.now(),i.googletag=i.googletag||{},i.googletag.cmd=i.googletag.cmd||[],u=i.googletag,(m||y)&&(i.googletag.cmd=i.googletag.cmd||[],i.googletag.cmd.push(function(){i.googletag.pubads().disableInitialLoad()})),m&&(l=i.setInterval(function(){void 0!==window.apstag&&void 0!==window.apstag.timeout&&(i.clearInterval(l),window.apstag.cleared=!0,l=null)},10),setTimeout(function(){l&&(i.clearInterval(l),i.googletag.pubads().refresh(),window.apstag||console.log("MESSAGE: Timeout for A9 load exceeded, aborting"))},500)),y&&(b.push(new Promise(function(e){w?e():v.push(e)})),c=i.setTimeout(T,2500)),o=function(e){var t,a,o=e.data,n=[];return o.loaded?e:(o.loaded=!0,t=null,(t=o.sizes?u.defineSlot(o.name,o.sizes,o.id).addService(u.pubads()):u.defineOutOfPageSlot(o.name,o.id).addService(u.pubads())).setTargeting("adid",o.id),f.hasOwnProperty("utm_campaign")&&t.setTargeting("utmcamp",f.utm_campaign),a=p.getAdCount(o.label),t.setTargeting("label",o.label+"_"+o.site+"-"+a),u.display(o.id),u.pubads().addEventListener("slotOnload",function(){i.NYM.analytics.firstAdLoadTime||(i.NYM.analytics.firstAdLoadTime=i.performance.now(),i.NYM.analytics.firstAdLoadLabel=e.data.label)}),n=_(o),Promise.all(b).then(function(){n?window.apstag&&window.apstag.cleared?window.apstag.fetchBids({slots:[n],timeout:window.apstag.timeout},function(){u.cmd.push(function(){window.apstag.setDisplayBids(),u.pubads().refresh([t],{changeCorrelator:!1})})}):y&&u.pubads().refresh([t],{changeCorrelator:!1}):u.pubads().refresh([t],{changeCorrelator:!1})}),e.slot=t,e)},n=function(e){var a,i,o,n=t(),s=e.getAttribute("data-name"),r=e.getAttribute("data-sizes"),d=e.getAttribute("data-label"),c=e.getAttribute("data-site");n=e.id,r&&r.length?(r=r.split(","),a=[],_map(r,function(e){e=e.split("x"),i=parseInt(e[0]),o=parseInt(e[1]),a.push([i,o])})):(e.classList.add("oop"),a=!1),this.data={id:n,name:s,sizes:a,loaded:!1,label:d,site:c},g[n]=this},r=function(e){u.cmd.push(function(){var t=o(e);g[e.data.id]=t})},s=function(e){var t=[];e.slot?(t=_(e))&&window.apstag&&window.apstag.cleared&&window.apstag.fetchBids({slots:[t],timeout:window.apstag.timeout},function(){u.cmd.push(function(){window.apstag.setDisplayBids(),u.pubads().refresh([e.slot],{changeCorrelator:!1})})}):e&&r(e)},u.cmd.push(function(){var e,t,o,n=page.getMeta("article:tag"),s=page.getMeta("author"),r=i.location.href,d=(e=a.head.querySelector(".head-gtm"),t=a.body.querySelector(".gtm"),e&&"top"===e.getAttribute("data-gtm")?"gtmtop":t&&"bottom"===t.getAttribute("data-gtm")?"gtmbottom":"");o=[],_forEach([n,s,d],function(e){_forEach(e.split(","),function(e){(e=e.trim().toLowerCase().replace(/\s/g,"-").replace(/\'|\’/g,"")).length&&o.push(e)})}),u.pubads().setTargeting("kw",o),u.pubads().setTargeting("entry_group",o),r=r.slice(r.lastIndexOf("/")+1),u.pubads().setTargeting("pn",r),u.companionAds().setRefreshUnfilledSlots(!0),u.pubads().enableAsyncRendering(),u.enableServices()}),this.load=r,this.create=function(e){return new n(e)},this.refresh=function(e){var t;_isString(e)?(t=this.getById(e),s(t)):s(e)},this.remove=function(e){var t=e.data.id;a.getElementById(t).innerHTML=""},this.getAdCount=function(e){var t,a=0,i=Object.keys(g);return _each(i,function(i){(t=g[i]).data.loaded&&t.data.label===e&&a++}),a},this.getById=function(e){return g[e]},d=_debounce(function(){var e={TopLeaderboard:1,RightColTopMPU:2,outOfPage:99,"homepageTakeover/TopLeaderboard":1},t=_sortBy(h,function(t){return e[t.data.label]||10});_forEach(t,function(e){return e.data.sizes?r(e):i.setTimeout(function(){r(e)},2e3)}),y&&window.PQ.cmd.push(()=>{try{window.PQ.loadSignals(["ids","bsc","vlp"],T)}catch(e){T(),console.error(`There has been an error loading Double Verify signals: ${e}`)}}),h=[]},10),this.addToPageLoadQueue=function(e){h.push(e),d()});function _(e){var t,a=e.sizes;return a=_intersectionWith(a,[[970,250],[970,90],[728,90],[300,600],[300,250],[320,100],[320,50]],_isEqual),e.sizes&&e.sizes.length&&(t={slotID:e.id,sizes:a,slotName:e.label}),t}function T(){i.clearTimeout(c),w=!0,_forEach(v,function(e){e()})}}]);
}, {"107":107,"114":114,"118":118,"124":124,"182":182,"205":205,"268":268,"274":274,"406":406,"409":409}];
window.modules["cid.legacy"] = [function(require,module,exports){"use strict";DS.service("$cid",function(){var r=Math.floor(100*Math.random());return function(){return"cid-"+ ++r}});
}, {}];
window.modules["client.legacy"] = [function(require,module,exports){"use strict";require("cid.legacy"),require("ads.legacy"),require("facebook.legacy"),require("aaa-module-mounting.legacy");
}, {"cid.legacy":"cid.legacy","ads.legacy":"ads.legacy","facebook.legacy":"facebook.legacy","aaa-module-mounting.legacy":"aaa-module-mounting.legacy"}];
window.modules["facebook.legacy"] = [function(require,module,exports){"use strict";DS.service("facebook",[function(){this.fb=function(i){window.FB&&window.FB[i].apply(this,Array.prototype.slice.call(arguments,1))}}]);
}, {}];
require=(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o typeof key === 'string' && key.match(/\.legacy$/)).forEach(key => window.require(key));
}
function tryToMount(fn, el, name) {
try {
fn(el); // init the controller
} catch (e) {
const elementTag = el.outerHTML.slice(0, el.outerHTML.indexOf(el.innerHTML));
console.error(`Error initializing controller for "${name}" on "${elementTag}"`, e);
}
}
/**
* mount client.js component controllers
*/
function mountComponentModules() {
Object.keys(window.modules).filter(key => typeof key === 'string' && key.match(/\.client$/)).forEach(key => {
let controllerFn = window.require(key);
if (typeof controllerFn === 'function') {
const name = key.replace('.client', ''),
instancesSelector = `[data-uri*="_components/${name}/"]`,
defaultSelector = `[data-uri$="_components${name}"]`,
instances = document.querySelectorAll(instancesSelector),
defaults = document.querySelectorAll(defaultSelector);
for (let el of instances) {
tryToMount(controllerFn, el, name);
}
for (let el of defaults) {
tryToMount(controllerFn, el, name);
}
}
});
}
// Make sure that a `window.process.env.NODE_ENV` is available in the client for any dependencies,
// services, or components that could require it
// note: the `` value is swapped for the actual environment variable in /lib/cmd/compile/scripts.js
window.process = window.process || {};
window.process.env = window.process.env || {};
if (!window.process.env.NODE_ENV) {
window.process.env.NODE_ENV = '';
}
// note: legacy controllers that require legacy services (e.g. dollar-slice) must
// wait for DOMContentLoaded to initialize themselves, as the files themselves must be mounted first
mountLegacyServices();
mountComponentModules();
// ]]