$(‘#” + slotName + “‘).responsiveAd(screenSize:’971 1115’, scriptTags: );if (Object.keys(IDG.GPT.companions).length > 0) IDG.GPT.refreshAd(‘” + slotName + “‘);”;
adDivString = “
” + adString + “
placementDiff = applyInsert($(this), adDivString);
console.log(“Just placed an ad and the placementDiff is: ” + placementDiff);
placementTarget = cumulativeHeight + placementDiff + interModuleHeight + adHeightBuffer;
else if (moduleCounter “;
placementDiff = applyInsert($(this), moduleDivString);
console.log(“Just placed a module and the placementDiff is: ” + placementDiff);
placementTarget = cumulativeHeight + placementDiff + interModuleHeight + moduleHeightBuffer;
// Avoid placing elements too soon due to non-large figures inflating the cumulative height
if ($(this).is(“figure”) && !$(this).is(“figure.large”))
cumulativeHeight += grafHeight;
cumulativeHeight += $(this).height() + grafHeight;
}); // end $(“#drr-container”).children().each()
// clone Related Stories module to come in after eighth para in article body for mobile breakpoint display
var $relatedStories = $(‘.related-promo-wrapper’);
var $relatedStoriesClone = $relatedStories.clone();
$relatedStoriesClone.insertAfter( “#drr-container > p:eq(7)”);
// For mobile only, place ad after second paragraph.
$(firstMobileAdHtml).insertAfter(“#drr-container > p:eq(1)”);
var $insiderPromo = $(‘.insider-promo-wrapper’);
var $insiderPromoClone = $insiderPromo.clone();
$insiderPromoClone.insertAfter( “#drr-container > p:eq(1)”);
// Add Right rail module content
var placeModule = function( data )
var placementId = $(data).attr(“data-placement-id”);
$( “#”+placementId ).html( data );
for (i=0; i
* @param jqo Original jquery object target
* @param divString The div to be inserted.
* @return Difference in height between original placement target and final target.
* Checks first 6 elements for an allowable placement (600 pixel window).
* If none, check nearby for elements that are not right avoids.
* If none, place element before current target.
function applyInsert(jqo, divString)
console.log(“applyInsert at top and jqo index is: ” + jqo.index());
for (var i=0; i pixelWindow)
console.log(“Element too close to end. Remaining height is: ” + remainingHeight + ” and window is ” + pixelWindow);
If you’ve encountered errors over the past month when trying to access HTTPS-enabled websites on your computer or Android phone, it might have been due to a bug in Chrome.
The bug affected the validation for some SSL certificates issued by Symantec, one of the world’s largest certificate authorities, as well as by GeoTrust and Thawte, two CAs that Symantec also controls.
The bug was introduced in Chrome version 53, but also affected the Android WebView component that Android apps use to display Web content, said Rick Andrews, senior technical director at Symantec in a blog post Friday.
To fix this problem on Android, end users should upgrade to the most recent version of WebView and to the upcoming Chrome version 55, he said. “Developers using Android Open Source Platform (AOSP) will need to review their own apps to ensure compatibility.”
Even though it’s a system component, starting with Android 5.0 (Lollipop), the WebView is delivered as an application package that’s upgradeable through the Google Play store.
Version 55 of the Android System WebView was released on Dec. 1, but Chrome for Android is still at version 54, which was released in late October.
Google made changes in version 54 of Chrome on Windows, Mac, Linux and iOS, as well as to Chromium and the Chrome Custom Tabs so that Symantec certificates no longer trigger trust errors. However, the issue is fully patched for all platforms in Chrome version 55, Andrews said.
The bottom line is that to be on the safe side you should upgrade all your Chrome-based software to version 55 as soon as it becomes available for your platform. For many platforms, this version was released on Dec. 1.
The problem actually originated with Google’s decision to force Symantec to publish all the certificates issued by the company’s CAs after June 1st to a public Certificate Transparency (CT) log.
This decision was taken after an internal Symantec investigation into the unauthorized issuing of an extended validation (EV) certificate for google.com last year missed over 150 other certificates issued without approval from domain owners. Symantec said at the time that the certificates had been issued for testing purposes and never actually left the company.
Since CAs depend on browser vendors to trust their root certificates inside their products, companies like Google, Mozilla, Microsoft and Apple can hold them to account when they violate certificate issuing rules. Following the Symantec incident, Google implemented a mechanism in Chrome version 53 to only trust certificates issued by the company after Jun. 1, 2016, that comply with the Certificate Transparency policy.
However, another mechanism in the browser sets a 10-week limit for trusting CT data, to avoid such information becoming stale. When this was combined with the CT-compliance check enforced for Symantec certificates it triggered unintended trust failures even for compliant certificates.