diff --git a/package.json b/package.json index 8beb50d6..ec7fd107 100644 --- a/package.json +++ b/package.json @@ -76,7 +76,6 @@ "webpack-common-shake": "^1.0.0" }, "dependencies": { - "babel-plugin-transform-object-assign": "^6.22.0", - "postscribe": "^2.0.8" + "babel-plugin-transform-object-assign": "^6.22.0" } } diff --git a/src/adHtmlRender.js b/src/adHtmlRender.js new file mode 100644 index 00000000..0a0be2f7 --- /dev/null +++ b/src/adHtmlRender.js @@ -0,0 +1,11 @@ +export function writeAdHtml(markup, insertHTML = document.body.insertAdjacentHTML.bind(document.body)) { + // remove and tags + // https://github.com/prebid/prebid-universal-creative/issues/134 + markup = markup.replace(/\<(\?xml|(\!DOCTYPE[^\>\[]+(\[[^\]]+)?))+[^>]+\>/gi, ''); + + try { + insertHTML('beforeend', markup); + } catch (error) { + console.error(error); + } +} diff --git a/src/mobileAndAmpRender.js b/src/mobileAndAmpRender.js index d2db352b..3883c489 100644 --- a/src/mobileAndAmpRender.js +++ b/src/mobileAndAmpRender.js @@ -1,7 +1,7 @@ import { getCreativeCommentMarkup, triggerPixel, createTrackPixelHtml, loadScript, getCreativeComment, writeAdUrl, transformAuctionTargetingData, sendRequest, getUUID } from './utils'; import { isSafeFrame, isMobileApp } from './environment'; import { insertElement } from './domHelper'; -import { writeAdHtml } from './postscribeRender'; +import { writeAdHtml } from './adHtmlRender'; const DEFAULT_CACHE_HOST = 'prebid.adnxs.com'; const DEFAULT_CACHE_PATH = '/pbc/v1/cache'; @@ -151,7 +151,6 @@ function responseCallback(isMobileApp, hbPb) { if (isMobileApp) { let adhtml = loadScript(window, bidObject.nurl); ad += constructMarkup(adhtml.outerHTML, width, height); - writeAdHtml(ad); } else { let nurl = bidObject.nurl; diff --git a/src/postscribeRender.js b/src/postscribeRender.js deleted file mode 100644 index dedc72dd..00000000 --- a/src/postscribeRender.js +++ /dev/null @@ -1,10 +0,0 @@ -import postscribe from 'postscribe'; - -export function writeAdHtml(markup, ps = postscribe) { - // remove and tags - // https://github.com/prebid/prebid-universal-creative/issues/134 - markup = markup.replace(/\<(\?xml|(\!DOCTYPE[^\>\[]+(\[[^\]]+)?))+[^>]+\>/g, ''); - ps(document.body, markup, { - error: console.error - }); -} diff --git a/test/spec/mobileAndAmpRender_spec.js b/test/spec/mobileAndAmpRender_spec.js index 5e783f74..b3c8daba 100644 --- a/test/spec/mobileAndAmpRender_spec.js +++ b/test/spec/mobileAndAmpRender_spec.js @@ -1,10 +1,10 @@ import { renderAmpOrMobileAd } from 'src/mobileAndAmpRender'; -import * as postscribeRender from 'src/postscribeRender' +import * as postscribeRender from 'src/adHtmlRender' import * as utils from 'src/utils'; import { expect } from 'chai'; import { mocks } from 'test/helpers/mocks'; import { merge } from 'lodash'; -import {writeAdHtml} from 'src/postscribeRender'; +import {writeAdHtml} from 'src/adHtmlRender'; function renderingMocks() { @@ -312,5 +312,11 @@ describe('writeAdHtml', () => { const ps = sinon.stub(); writeAdHtml('
mock-ad
', ps); sinon.assert.calledWith(ps, sinon.match.any, '
mock-ad
') - }) + }); + + it('removes lowercase doctype from markup', () => { + const ps = sinon.stub(); + writeAdHtml('
mock-ad
', ps); + sinon.assert.calledWith(ps, sinon.match.any, '
mock-ad
') + }); })