diff --git a/extensions/amp-next-page/0.2/amp-next-page.css b/extensions/amp-next-page/0.2/amp-next-page.css index fa0b448e7301..a43d7b99a954 100644 --- a/extensions/amp-next-page/0.2/amp-next-page.css +++ b/extensions/amp-next-page/0.2/amp-next-page.css @@ -15,5 +15,15 @@ */ .i-amphtml-next-page-document { - overflow-y: hidden; + overflow: hidden; +} + +.i-amphtml-next-page-document:not(.amp-next-page-document-visible) + [i-amphtml-fixedid] { + display: none; +} + +.i-amphtml-next-page-document.amp-next-page-document-visible { + opacity: 1; + overflow: visible; } diff --git a/extensions/amp-next-page/0.2/page.js b/extensions/amp-next-page/0.2/page.js index 8ca4db089397..dbcd58963878 100644 --- a/extensions/amp-next-page/0.2/page.js +++ b/extensions/amp-next-page/0.2/page.js @@ -28,19 +28,14 @@ export const PageState = { INSERTED: 4, }; +const VISIBLE_DOC_CLASS = 'amp-next-page-document-visible'; + export class Page { /** * @param {!./service.NextPageService} manager * @param {{ url: string, title: string, image: string }} meta - * @param {!PageState=} initState - * @param {!VisibilityState=} initVisibility */ - constructor( - manager, - meta, - initState = PageState.QUEUED, - initVisibility = VisibilityState.PRERENDER - ) { + constructor(manager, meta) { /** @private @const {!./service.NextPageService} */ this.manager_ = manager; /** @private @const {string} */ @@ -53,9 +48,9 @@ export class Page { /** @private {?../../../src/runtime.ShadowDoc} */ this.shadowDoc_ = null; /** @private {!PageState} */ - this.state_ = initState; + this.state_ = PageState.QUEUED; /** @private {!VisibilityState} */ - this.visibilityState_ = initVisibility; + this.visibilityState_ = VisibilityState.PRERENDER; /** @private {!ViewportRelativePos} */ this.relativePos_ = ViewportRelativePos.OUTSIDE_VIEWPORT; } @@ -87,6 +82,14 @@ export class Page { return this.relativePos_; } + /** @return {!Document|undefined} */ + get document() { + if (!this.shadowDoc_) { + return; + } + return /** @type {!Document} */ (this.shadowDoc_.ampdoc.getRootNode()); + } + /** @param {!ViewportRelativePos} position */ set relativePos(position) { this.relativePos_ = position; @@ -118,10 +121,13 @@ export class Page { this.visibilityState_ = visibilityState; if (this.shadowDoc_) { this.shadowDoc_.setVisibilityState(visibilityState); + this.shadowDoc_.ampdoc + .getBody() + .classList.toggle(VISIBLE_DOC_CLASS, this.isVisible()); } // Switch the title and url of the page to reflect this page - if (visibilityState === VisibilityState.VISIBLE) { + if (this.isVisible()) { this.manager_.setTitlePage(this); } } @@ -179,3 +185,27 @@ export class Page { }); } } + +export class HostPage extends Page { + /** + * @param {!./service.NextPageService} manager + * @param {{ url: string, title: string, image: string }} meta + * @param {!PageState} initState + * @param {!VisibilityState} initVisibility + * @param {!Document} initDoc + */ + constructor(manager, meta, initState, initVisibility, initDoc) { + super(manager, meta); + /** @override */ + this.state_ = initState; + /** @override */ + this.visibilityState_ = initVisibility; + /** @private {!Document} */ + this.document_ = initDoc; + } + + /** @override */ + get document() { + return this.document_; + } +} diff --git a/extensions/amp-next-page/0.2/service.js b/extensions/amp-next-page/0.2/service.js index 56118367e7f5..a48ca4676e4a 100644 --- a/extensions/amp-next-page/0.2/service.js +++ b/extensions/amp-next-page/0.2/service.js @@ -15,11 +15,8 @@ */ import {CSS} from '../../../build/amp-next-page-0.2.css'; +import {HostPage, Page, PageState} from './page'; import {MultidocManager} from '../../../src/multidoc-manager'; -import {Page, PageState} from './page'; -import { - PositionObserver, // eslint-disable-line no-unused-vars -} from '../../../src/service/position-observer/position-observer-impl'; import {Services} from '../../../src/services'; import {VisibilityState} from '../../../src/visibility-state'; import { @@ -35,8 +32,10 @@ import { parseOgImage, parseSchemaImage, } from '../../../src/mediasession-helper'; -import {sanitizeDoc, validatePage, validateUrl} from './utils'; +import {toArray} from '../../../src/types'; +import {toggle} from '../../../src/style'; import {tryParseJson} from '../../../src/json'; +import {validatePage, validateUrl} from './utils'; import VisibilityObserver, {ViewportRelativePos} from './visibility-observer'; const TAG = 'amp-next-page'; @@ -93,7 +92,10 @@ export class NextPageService { this.lastScrollTop_ = 0; /** @private {?Page} */ - this.initialPage_ = null; + this.hostPage_ = null; + + /** @private {!Object} */ + this.replaceableElements_ = {}; } /** @@ -110,7 +112,8 @@ export class NextPageService { */ build(element) { // Create a reference to the host page - this.initialPage_ = this.createInitialPage(); + this.hostPage_ = this.createHostPage(); + this.toggleHiddenAndReplaceableElements(this.win_.document); this.history_ = Services.historyForDoc(this.ampdoc_); this.initializeHistory(); @@ -132,8 +135,8 @@ export class NextPageService { this.element_.appendChild(this.moreBox_); if (!this.pages_) { - this.pages_ = [this.initialPage_]; - this.setLastFetchedPage(this.initialPage_); + this.pages_ = [this.hostPage_]; + this.setLastFetchedPage(this.hostPage_); } this.getPagesPromise_().then(pages => { @@ -209,8 +212,17 @@ export class NextPageService { // If no page is visible then the host page should be if (!this.pages_.some(page => page.isVisible())) { - this.initialPage_.setVisibility(VisibilityState.VISIBLE); + this.hostPage_.setVisibility(VisibilityState.VISIBLE); } + + // Hide elements if necessary + this.pages_ + .filter(page => page.isVisible()) + .forEach(page => + this.toggleHiddenAndReplaceableElements( + /** @type {!Document} */ (dev().assertElement(page.document)) + ) + ); } /** @@ -231,7 +243,7 @@ export class NextPageService { const shouldHide = page.relativePos === ViewportRelativePos.LEAVING_VIEWPORT || page.relativePos === ViewportRelativePos.OUTSIDE_VIEWPORT || - page === this.initialPage_; + page === this.hostPage_; return shouldHide && page.isVisible(); }) .forEach(page => page.setVisibility(VisibilityState.HIDDEN)); @@ -249,7 +261,7 @@ export class NextPageService { * the provided page * @param {?Page=} page */ - setTitlePage(page = this.initialPage_) { + setTitlePage(page = this.hostPage_) { if (!page) { dev().warn(TAG, 'setTitlePage called before next-page-service is built'); return; @@ -264,7 +276,7 @@ export class NextPageService { * replace when they become visible */ initializeHistory() { - const {title, url} = this.initialPage_; + const {title, url} = this.hostPage_; this.history_.push(undefined /** opt_onPop */, {title, url}); } @@ -272,13 +284,13 @@ export class NextPageService { * * @return {!Page} */ - createInitialPage() { + createHostPage() { const doc = this.win_.document; const {title, location} = doc; const {href: url} = location; const image = parseSchemaImage(doc) || parseOgImage(doc) || parseFavicon(doc) || ''; - return new Page( + return new HostPage( this, { url, @@ -286,7 +298,8 @@ export class NextPageService { image, }, PageState.INSERTED /** initState */, - VisibilityState.VISIBLE /** initVisibility */ + VisibilityState.VISIBLE /** initVisibility */, + doc /** initDoc */ ); } @@ -305,8 +318,8 @@ export class NextPageService { const shadowRoot = this.win_.document.createElement('div'); - // Handles extension deny-lists and sticky items - sanitizeDoc(doc); + // Handles extension deny-lists + this.sanitizeDoc(doc); // Insert the separator this.element_.insertBefore(this.separator_.cloneNode(true), this.moreBox_); @@ -337,6 +350,59 @@ export class NextPageService { } } + /** + * Removes redundancies and unauthorized extensions and elements + * @param {!Document} doc Document to attach. + */ + sanitizeDoc(doc) { + // TODO(wassgha): Parse for more pages to queue + + // TODO(wassgha): Allow amp-analytics after bug bash + toArray(doc.querySelectorAll('amp-analytics')).forEach(removeElement); + // Make sure all hidden elements are initially invisible + this.toggleHiddenAndReplaceableElements(doc, false /** isVisible */); + } + + /** + * Hides or shows elements based on the `amp-next-page-hide` and + * `amp-next-page-replace` attributes + * @param {!Document} doc Document to attach. + * @param {boolean=} isVisible Whether this page is visible or not + */ + toggleHiddenAndReplaceableElements(doc, isVisible = true) { + // Hide elements that have [amp-next-page-hide] on child documents + if (doc !== this.hostPage_.document) { + toArray(doc.querySelectorAll('[amp-next-page-hide]')).forEach(element => + toggle(element, false /** opt_display */) + ); + } + + // Element replacing is only concerned with the visible page + if (!isVisible) { + return; + } + + // Replace elements that have [amp-next-page-replace] + toArray(doc.querySelectorAll('[amp-next-page-replace]')).forEach( + element => { + let uniqueId = element.getAttribute('amp-next-page-replace'); + if (!uniqueId) { + uniqueId = String(Date.now() + Math.floor(Math.random() * 100)); + element.setAttribute('amp-next-page-replace', uniqueId); + } + + if ( + this.replaceableElements_[uniqueId] && + this.replaceableElements_[uniqueId] !== element + ) { + toggle(this.replaceableElements_[uniqueId], false /** opt_display */); + } + this.replaceableElements_[uniqueId] = element; + toggle(element, true /** opt_display */); + } + ); + } + /** * @return {number} viewports left to reach the end of the document * @private diff --git a/extensions/amp-next-page/0.2/utils.js b/extensions/amp-next-page/0.2/utils.js index 81dc596efb08..17a94c3ae010 100644 --- a/extensions/amp-next-page/0.2/utils.js +++ b/extensions/amp-next-page/0.2/utils.js @@ -20,8 +20,6 @@ import { parseUrlDeprecated, resolveRelativeUrl, } from '../../../src/url'; -import {removeElement} from '../../../src/dom'; -import {toArray} from '../../../src/types'; import {user, userAssert} from '../../../src/log'; /** @@ -70,17 +68,3 @@ export function validatePage(page, hostUrl) { (url.hash || ''); } } - -/** - * Removes redundancies and unauthorized extensions and elements - * @param {!Document} doc Document to attach. - */ -export function sanitizeDoc(doc) { - // TODO(wassgha): Implement handling of sticky elements - // TODO(wassgha): Implement persistence of repeating elements (e.g amp-sidebar) - - // TODO(wassgha): Parse for more pages to queue - - // TODO(wassgha): Allow amp-analytics after bug bash - toArray(doc.querySelectorAll('amp-analytics')).forEach(removeElement); -} diff --git a/test/manual/amp-next-page/0.2/amp-next-page-v1.element-visibility.html b/test/manual/amp-next-page/0.2/amp-next-page-v1.element-visibility.html new file mode 100644 index 000000000000..61043240fa63 --- /dev/null +++ b/test/manual/amp-next-page/0.2/amp-next-page-v1.element-visibility.html @@ -0,0 +1,317 @@ + + + + + AMP next page element visibility examples + + + + + + + + + + + + +
+

Content discovery

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae + libero porta nulla iaculis viverra. Vestibulum consectetur scelerisque + varius. Nam pulvinar dui a tortor hendrerit, id iaculis elit auctor. Nam + dapibus felis in gravida ornare. Nulla varius id mauris sed venenatis. Sed + turpis ex, aliquet nec fermentum eget, sollicitudin non est. Suspendisse + tincidunt ornare tortor, at vehicula orci aliquam a. Aliquam eleifend odio + quis quam dignissim posuere. Proin ac dolor rhoncus, consectetur ipsum + non, dictum est. Nam sollicitudin est eu est aliquet eleifend. Duis + condimentum, nisl eu finibus auctor, lectus odio fringilla nisi, quis + cursus libero magna imperdiet purus. In condimentum vehicula est, nec + varius est suscipit vitae. Maecenas ut sapien diam. Vivamus viverra nisl + at quam pellentesque posuere. Cras ut nibh non arcu dignissim elementum. +

+ +

+ Vestibulum a nisi est. Fusce consequat iaculis vehicula. Aliquam luctus + nunc risus, ut congue augue tristique nec. In venenatis aliquam tristique. + Integer eleifend diam vel nunc porttitor sollicitudin. Aliquam quis + ullamcorper tortor. Morbi et dui vitae elit finibus sodales. Donec + pharetra tincidunt neque, eget sagittis nisi sodales vel. Duis elit massa, + malesuada a rhoncus sed, bibendum nec velit. Duis iaculis magna suscipit + felis fermentum accumsan. Nunc venenatis pellentesque magna at tincidunt. + Mauris nec placerat augue, eu auctor elit. Class aptent taciti sociosqu ad + litora torquent per conubia nostra, per inceptos himenaeos. Vestibulum + pretium ligula diam, a eleifend lectus porttitor non. Integer vitae tempus + enim, non pellentesque sem. Nam non sem lacinia, lacinia nisi non, + consectetur enim. +

+
I should get replaced by my sibling from each loaded page (page 0)
+
I am fixed and should be visible when loaded as a host page but hidden if loaded as a next-page (page 0)
+

+ Maecenas sed quam nec dolor rhoncus rutrum ut non mauris. Pellentesque + ante dolor, pretium quis enim eu, condimentum volutpat augue. Donec nulla + nisl, ullamcorper et hendrerit vel, sagittis sit amet ex. Mauris a enim in + sem feugiat mollis in eu lorem. Quisque finibus a diam ut facilisis. Sed + ultricies massa ut urna dapibus semper. Integer id nunc dictum, luctus + ligula eu, bibendum ex. Etiam tincidunt sapien ut lorem pharetra feugiat. + Aliquam erat volutpat. Sed vehicula tincidunt mauris, vitae cursus nisl. + Nulla imperdiet ex at venenatis dignissim. +

+

+ Sed pretium sed ex eu varius. Praesent sapien purus, tincidunt at dolor + ac, porttitor fermentum enim. Morbi rhoncus quam eu lorem ultrices, vitae + tempor felis volutpat. Suspendisse auctor, quam quis suscipit dictum, + felis lectus imperdiet velit, a faucibus quam diam et risus. Etiam varius + in arcu sed cursus. Praesent pulvinar enim nibh, eu euismod ante pretium + et. Pellentesque nec vestibulum eros. Praesent nec venenatis ipsum. Duis + pharetra suscipit mauris quis dictum. Pellentesque sed porttitor tellus. + Aenean rutrum blandit est in tincidunt. Nulla ante orci, pellentesque id + imperdiet at, posuere quis dui. Cras fringilla lobortis lectus. Mauris + vitae convallis orci. Mauris sodales faucibus nulla vitae posuere. +

+

+ Donec vehicula nisi eget metus blandit, at semper nunc porttitor. + Vestibulum sit amet posuere risus, at mattis nibh. Maecenas ultricies + scelerisque nibh et feugiat. Praesent mattis, nibh viverra consequat + rhoncus, turpis leo venenatis orci, vitae mollis libero magna eget massa. + In dapibus, metus sit amet venenatis finibus, lacus metus rhoncus massa, + sit amet mattis tortor massa vitae nunc. Mauris a enim sagittis, + condimentum tortor vitae, egestas nulla. Ut dictum laoreet sapien non + blandit. Etiam fermentum, magna et tincidunt maximus, ex orci sollicitudin + felis, ut dapibus orci ipsum quis leo. Nam accumsan tortor sit amet orci + gravida, eget dapibus metus dapibus. Fusce congue ultrices dignissim. Duis + quis metus in mi pharetra tempus. Etiam dapibus tellus vitae blandit + rhoncus. Fusce commodo risus id sapien ultrices vehicula. +

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae + libero porta nulla iaculis viverra. Vestibulum consectetur scelerisque + varius. Nam pulvinar dui a tortor hendrerit, id iaculis elit auctor. Nam + dapibus felis in gravida ornare. Nulla varius id mauris sed venenatis. Sed + turpis ex, aliquet nec fermentum eget, sollicitudin non est. Suspendisse + tincidunt ornare tortor, at vehicula orci aliquam a. Aliquam eleifend odio + quis quam dignissim posuere. Proin ac dolor rhoncus, consectetur ipsum + non, dictum est. Nam sollicitudin est eu est aliquet eleifend. Duis + condimentum, nisl eu finibus auctor, lectus odio fringilla nisi, quis + cursus libero magna imperdiet purus. In condimentum vehicula est, nec + varius est suscipit vitae. Maecenas ut sapien diam. Vivamus viverra nisl + at quam pellentesque posuere. Cras ut nibh non arcu dignissim elementum. +

+

+ Vestibulum a nisi est. Fusce consequat iaculis vehicula. Aliquam luctus + nunc risus, ut congue augue tristique nec. In venenatis aliquam tristique. + Integer eleifend diam vel nunc porttitor sollicitudin. Aliquam quis + ullamcorper tortor. Morbi et dui vitae elit finibus sodales. Donec + pharetra tincidunt neque, eget sagittis nisi sodales vel. Duis elit massa, + malesuada a rhoncus sed, bibendum nec velit. Duis iaculis magna suscipit + felis fermentum accumsan. Nunc venenatis pellentesque magna at tincidunt. + Mauris nec placerat augue, eu auctor elit. Class aptent taciti sociosqu ad + litora torquent per conubia nostra, per inceptos himenaeos. Vestibulum + pretium ligula diam, a eleifend lectus porttitor non. Integer vitae tempus + enim, non pellentesque sem. Nam non sem lacinia, lacinia nisi non, + consectetur enim. +

+

+ Maecenas sed quam nec dolor rhoncus rutrum ut non mauris. Pellentesque + ante dolor, pretium quis enim eu, condimentum volutpat augue. Donec nulla + nisl, ullamcorper et hendrerit vel, sagittis sit amet ex. Mauris a enim in + sem feugiat mollis in eu lorem. Quisque finibus a diam ut facilisis. Sed + ultricies massa ut urna dapibus semper. Integer id nunc dictum, luctus + ligula eu, bibendum ex. Etiam tincidunt sapien ut lorem pharetra feugiat. + Aliquam erat volutpat. Sed vehicula tincidunt mauris, vitae cursus nisl. + Nulla imperdiet ex at venenatis dignissim. +

+

+ Sed pretium sed ex eu varius. Praesent sapien purus, tincidunt at dolor + ac, porttitor fermentum enim. Morbi rhoncus quam eu lorem ultrices, vitae + tempor felis volutpat. Suspendisse auctor, quam quis suscipit dictum, + felis lectus imperdiet velit, a faucibus quam diam et risus. Etiam varius + in arcu sed cursus. Praesent pulvinar enim nibh, eu euismod ante pretium + et. Pellentesque nec vestibulum eros. Praesent nec venenatis ipsum. Duis + pharetra suscipit mauris quis dictum. Pellentesque sed porttitor tellus. + Aenean rutrum blandit est in tincidunt. Nulla ante orci, pellentesque id + imperdiet at, posuere quis dui. Cras fringilla lobortis lectus. Mauris + vitae convallis orci. Mauris sodales faucibus nulla vitae posuere. +

+

+ Donec vehicula nisi eget metus blandit, at semper nunc porttitor. + Vestibulum sit amet posuere risus, at mattis nibh. Maecenas ultricies + scelerisque nibh et feugiat. Praesent mattis, nibh viverra consequat + rhoncus, turpis leo venenatis orci, vitae mollis libero magna eget massa. + In dapibus, metus sit amet venenatis finibus, lacus metus rhoncus massa, + sit amet mattis tortor massa vitae nunc. Mauris a enim sagittis, + condimentum tortor vitae, egestas nulla. Ut dictum laoreet sapien non + blandit. Etiam fermentum, magna et tincidunt maximus, ex orci sollicitudin + felis, ut dapibus orci ipsum quis leo. Nam accumsan tortor sit amet orci + gravida, eget dapibus metus dapibus. Fusce congue ultrices dignissim. Duis + quis metus in mi pharetra tempus. Etiam dapibus tellus vitae blandit + rhoncus. Fusce commodo risus id sapien ultrices vehicula. +

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae + libero porta nulla iaculis viverra. Vestibulum consectetur scelerisque + varius. Nam pulvinar dui a tortor hendrerit, id iaculis elit auctor. Nam + dapibus felis in gravida ornare. Nulla varius id mauris sed venenatis. Sed + turpis ex, aliquet nec fermentum eget, sollicitudin non est. Suspendisse + tincidunt ornare tortor, at vehicula orci aliquam a. Aliquam eleifend odio + quis quam dignissim posuere. Proin ac dolor rhoncus, consectetur ipsum + non, dictum est. Nam sollicitudin est eu est aliquet eleifend. Duis + condimentum, nisl eu finibus auctor, lectus odio fringilla nisi, quis + cursus libero magna imperdiet purus. In condimentum vehicula est, nec + varius est suscipit vitae. Maecenas ut sapien diam. Vivamus viverra nisl + at quam pellentesque posuere. Cras ut nibh non arcu dignissim elementum. +

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae + libero porta nulla iaculis viverra. Vestibulum consectetur scelerisque + varius. Nam pulvinar dui a tortor hendrerit, id iaculis elit auctor. Nam + dapibus felis in gravida ornare. Nulla varius id mauris sed venenatis. Sed + turpis ex, aliquet nec fermentum eget, sollicitudin non est. Suspendisse + tincidunt ornare tortor, at vehicula orci aliquam a. Aliquam eleifend odio + quis quam dignissim posuere. Proin ac dolor rhoncus, consectetur ipsum + non, dictum est. Nam sollicitudin est eu est aliquet eleifend. Duis + condimentum, nisl eu finibus auctor, lectus odio fringilla nisi, quis + cursus libero magna imperdiet purus. In condimentum vehicula est, nec + varius est suscipit vitae. Maecenas ut sapien diam. Vivamus viverra nisl + at quam pellentesque posuere. Cras ut nibh non arcu dignissim elementum. +

+

+ Vestibulum a nisi est. Fusce consequat iaculis vehicula. Aliquam luctus + nunc risus, ut congue augue tristique nec. In venenatis aliquam tristique. + Integer eleifend diam vel nunc porttitor sollicitudin. Aliquam quis + ullamcorper tortor. Morbi et dui vitae elit finibus sodales. Donec + pharetra tincidunt neque, eget sagittis nisi sodales vel. Duis elit massa, + malesuada a rhoncus sed, bibendum nec velit. Duis iaculis magna suscipit + felis fermentum accumsan. Nunc venenatis pellentesque magna at tincidunt. + Mauris nec placerat augue, eu auctor elit. Class aptent taciti sociosqu ad + litora torquent per conubia nostra, per inceptos himenaeos. Vestibulum + pretium ligula diam, a eleifend lectus porttitor non. Integer vitae tempus + enim, non pellentesque sem. Nam non sem lacinia, lacinia nisi non, + consectetur enim. +

+

+ Maecenas sed quam nec dolor rhoncus rutrum ut non mauris. Pellentesque + ante dolor, pretium quis enim eu, condimentum volutpat augue. Donec nulla + nisl, ullamcorper et hendrerit vel, sagittis sit amet ex. Mauris a enim in + sem feugiat mollis in eu lorem. Quisque finibus a diam ut facilisis. Sed + ultricies massa ut urna dapibus semper. Integer id nunc dictum, luctus + ligula eu, bibendum ex. Etiam tincidunt sapien ut lorem pharetra feugiat. + Aliquam erat volutpat. Sed vehicula tincidunt mauris, vitae cursus nisl. + Nulla imperdiet ex at venenatis dignissim. +

+

+ Sed pretium sed ex eu varius. Praesent sapien purus, tincidunt at dolor + ac, porttitor fermentum enim. Morbi rhoncus quam eu lorem ultrices, vitae + tempor felis volutpat. Suspendisse auctor, quam quis suscipit dictum, + felis lectus imperdiet velit, a faucibus quam diam et risus. Etiam varius + in arcu sed cursus. Praesent pulvinar enim nibh, eu euismod ante pretium + et. Pellentesque nec vestibulum eros. Praesent nec venenatis ipsum. Duis + pharetra suscipit mauris quis dictum. Pellentesque sed porttitor tellus. + Aenean rutrum blandit est in tincidunt. Nulla ante orci, pellentesque id + imperdiet at, posuere quis dui. Cras fringilla lobortis lectus. Mauris + vitae convallis orci. Mauris sodales faucibus nulla vitae posuere. +

+

+ Donec vehicula nisi eget metus blandit, at semper nunc porttitor. + Vestibulum sit amet posuere risus, at mattis nibh. Maecenas ultricies + scelerisque nibh et feugiat. Praesent mattis, nibh viverra consequat + rhoncus, turpis leo venenatis orci, vitae mollis libero magna eget massa. + In dapibus, metus sit amet venenatis finibus, lacus metus rhoncus massa, + sit amet mattis tortor massa vitae nunc. Mauris a enim sagittis, + condimentum tortor vitae, egestas nulla. Ut dictum laoreet sapien non + blandit. Etiam fermentum, magna et tincidunt maximus, ex orci sollicitudin + felis, ut dapibus orci ipsum quis leo. Nam accumsan tortor sit amet orci + gravida, eget dapibus metus dapibus. Fusce congue ultrices dignissim. Duis + quis metus in mi pharetra tempus. Etiam dapibus tellus vitae blandit + rhoncus. Fusce commodo risus id sapien ultrices vehicula. +

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae + libero porta nulla iaculis viverra. Vestibulum consectetur scelerisque + varius. Nam pulvinar dui a tortor hendrerit, id iaculis elit auctor. Nam + dapibus felis in gravida ornare. Nulla varius id mauris sed venenatis. Sed + turpis ex, aliquet nec fermentum eget, sollicitudin non est. Suspendisse + tincidunt ornare tortor, at vehicula orci aliquam a. Aliquam eleifend odio + quis quam dignissim posuere. Proin ac dolor rhoncus, consectetur ipsum + non, dictum est. Nam sollicitudin est eu est aliquet eleifend. Duis + condimentum, nisl eu finibus auctor, lectus odio fringilla nisi, quis + cursus libero magna imperdiet purus. In condimentum vehicula est, nec + varius est suscipit vitae. Maecenas ut sapien diam. Vivamus viverra nisl + at quam pellentesque posuere. Cras ut nibh non arcu dignissim elementum. +

+

+ Donec vehicula nisi eget metus blandit, at semper nunc porttitor. + Vestibulum sit amet posuere risus, at mattis nibh. Maecenas ultricies + scelerisque nibh et feugiat. Praesent mattis, nibh viverra consequat + rhoncus, turpis leo venenatis orci, vitae mollis libero magna eget massa. + In dapibus, metus sit amet venenatis finibus, lacus metus rhoncus massa, + sit amet mattis tortor massa vitae nunc. Mauris a enim sagittis, + condimentum tortor vitae, egestas nulla. Ut dictum laoreet sapien non + blandit. Etiam fermentum, magna et tincidunt maximus, ex orci sollicitudin + felis, ut dapibus orci ipsum quis leo. Nam accumsan tortor sit amet orci + gravida, eget dapibus metus dapibus. Fusce congue ultrices dignissim. Duis + quis metus in mi pharetra tempus. Etiam dapibus tellus vitae blandit + rhoncus. Fusce commodo risus id sapien ultrices vehicula. +

+
+ + +
+ Read more +
+
+ Here are a few more articles ... +
+
+ + diff --git a/test/manual/amp-next-page/0.2/amp-next-page.element-visibility.html b/test/manual/amp-next-page/0.2/amp-next-page.element-visibility.html new file mode 100644 index 000000000000..d7d5bf88a94d --- /dev/null +++ b/test/manual/amp-next-page/0.2/amp-next-page.element-visibility.html @@ -0,0 +1,311 @@ + + + + + AMP next page element visibility examples + + + + + + + + + + + +
+

Content discovery

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae + libero porta nulla iaculis viverra. Vestibulum consectetur scelerisque + varius. Nam pulvinar dui a tortor hendrerit, id iaculis elit auctor. Nam + dapibus felis in gravida ornare. Nulla varius id mauris sed venenatis. Sed + turpis ex, aliquet nec fermentum eget, sollicitudin non est. Suspendisse + tincidunt ornare tortor, at vehicula orci aliquam a. Aliquam eleifend odio + quis quam dignissim posuere. Proin ac dolor rhoncus, consectetur ipsum + non, dictum est. Nam sollicitudin est eu est aliquet eleifend. Duis + condimentum, nisl eu finibus auctor, lectus odio fringilla nisi, quis + cursus libero magna imperdiet purus. In condimentum vehicula est, nec + varius est suscipit vitae. Maecenas ut sapien diam. Vivamus viverra nisl + at quam pellentesque posuere. Cras ut nibh non arcu dignissim elementum. +

+ +

+ Vestibulum a nisi est. Fusce consequat iaculis vehicula. Aliquam luctus + nunc risus, ut congue augue tristique nec. In venenatis aliquam tristique. + Integer eleifend diam vel nunc porttitor sollicitudin. Aliquam quis + ullamcorper tortor. Morbi et dui vitae elit finibus sodales. Donec + pharetra tincidunt neque, eget sagittis nisi sodales vel. Duis elit massa, + malesuada a rhoncus sed, bibendum nec velit. Duis iaculis magna suscipit + felis fermentum accumsan. Nunc venenatis pellentesque magna at tincidunt. + Mauris nec placerat augue, eu auctor elit. Class aptent taciti sociosqu ad + litora torquent per conubia nostra, per inceptos himenaeos. Vestibulum + pretium ligula diam, a eleifend lectus porttitor non. Integer vitae tempus + enim, non pellentesque sem. Nam non sem lacinia, lacinia nisi non, + consectetur enim. +

+
I should get replaced by my sibling from each loaded page (page 0)
+
I am fixed and should be visible when loaded as a host page but hidden if loaded as a next-page (page 0)
+

+ Maecenas sed quam nec dolor rhoncus rutrum ut non mauris. Pellentesque + ante dolor, pretium quis enim eu, condimentum volutpat augue. Donec nulla + nisl, ullamcorper et hendrerit vel, sagittis sit amet ex. Mauris a enim in + sem feugiat mollis in eu lorem. Quisque finibus a diam ut facilisis. Sed + ultricies massa ut urna dapibus semper. Integer id nunc dictum, luctus + ligula eu, bibendum ex. Etiam tincidunt sapien ut lorem pharetra feugiat. + Aliquam erat volutpat. Sed vehicula tincidunt mauris, vitae cursus nisl. + Nulla imperdiet ex at venenatis dignissim. +

+

+ Sed pretium sed ex eu varius. Praesent sapien purus, tincidunt at dolor + ac, porttitor fermentum enim. Morbi rhoncus quam eu lorem ultrices, vitae + tempor felis volutpat. Suspendisse auctor, quam quis suscipit dictum, + felis lectus imperdiet velit, a faucibus quam diam et risus. Etiam varius + in arcu sed cursus. Praesent pulvinar enim nibh, eu euismod ante pretium + et. Pellentesque nec vestibulum eros. Praesent nec venenatis ipsum. Duis + pharetra suscipit mauris quis dictum. Pellentesque sed porttitor tellus. + Aenean rutrum blandit est in tincidunt. Nulla ante orci, pellentesque id + imperdiet at, posuere quis dui. Cras fringilla lobortis lectus. Mauris + vitae convallis orci. Mauris sodales faucibus nulla vitae posuere. +

+

+ Donec vehicula nisi eget metus blandit, at semper nunc porttitor. + Vestibulum sit amet posuere risus, at mattis nibh. Maecenas ultricies + scelerisque nibh et feugiat. Praesent mattis, nibh viverra consequat + rhoncus, turpis leo venenatis orci, vitae mollis libero magna eget massa. + In dapibus, metus sit amet venenatis finibus, lacus metus rhoncus massa, + sit amet mattis tortor massa vitae nunc. Mauris a enim sagittis, + condimentum tortor vitae, egestas nulla. Ut dictum laoreet sapien non + blandit. Etiam fermentum, magna et tincidunt maximus, ex orci sollicitudin + felis, ut dapibus orci ipsum quis leo. Nam accumsan tortor sit amet orci + gravida, eget dapibus metus dapibus. Fusce congue ultrices dignissim. Duis + quis metus in mi pharetra tempus. Etiam dapibus tellus vitae blandit + rhoncus. Fusce commodo risus id sapien ultrices vehicula. +

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae + libero porta nulla iaculis viverra. Vestibulum consectetur scelerisque + varius. Nam pulvinar dui a tortor hendrerit, id iaculis elit auctor. Nam + dapibus felis in gravida ornare. Nulla varius id mauris sed venenatis. Sed + turpis ex, aliquet nec fermentum eget, sollicitudin non est. Suspendisse + tincidunt ornare tortor, at vehicula orci aliquam a. Aliquam eleifend odio + quis quam dignissim posuere. Proin ac dolor rhoncus, consectetur ipsum + non, dictum est. Nam sollicitudin est eu est aliquet eleifend. Duis + condimentum, nisl eu finibus auctor, lectus odio fringilla nisi, quis + cursus libero magna imperdiet purus. In condimentum vehicula est, nec + varius est suscipit vitae. Maecenas ut sapien diam. Vivamus viverra nisl + at quam pellentesque posuere. Cras ut nibh non arcu dignissim elementum. +

+

+ Vestibulum a nisi est. Fusce consequat iaculis vehicula. Aliquam luctus + nunc risus, ut congue augue tristique nec. In venenatis aliquam tristique. + Integer eleifend diam vel nunc porttitor sollicitudin. Aliquam quis + ullamcorper tortor. Morbi et dui vitae elit finibus sodales. Donec + pharetra tincidunt neque, eget sagittis nisi sodales vel. Duis elit massa, + malesuada a rhoncus sed, bibendum nec velit. Duis iaculis magna suscipit + felis fermentum accumsan. Nunc venenatis pellentesque magna at tincidunt. + Mauris nec placerat augue, eu auctor elit. Class aptent taciti sociosqu ad + litora torquent per conubia nostra, per inceptos himenaeos. Vestibulum + pretium ligula diam, a eleifend lectus porttitor non. Integer vitae tempus + enim, non pellentesque sem. Nam non sem lacinia, lacinia nisi non, + consectetur enim. +

+

+ Maecenas sed quam nec dolor rhoncus rutrum ut non mauris. Pellentesque + ante dolor, pretium quis enim eu, condimentum volutpat augue. Donec nulla + nisl, ullamcorper et hendrerit vel, sagittis sit amet ex. Mauris a enim in + sem feugiat mollis in eu lorem. Quisque finibus a diam ut facilisis. Sed + ultricies massa ut urna dapibus semper. Integer id nunc dictum, luctus + ligula eu, bibendum ex. Etiam tincidunt sapien ut lorem pharetra feugiat. + Aliquam erat volutpat. Sed vehicula tincidunt mauris, vitae cursus nisl. + Nulla imperdiet ex at venenatis dignissim. +

+

+ Sed pretium sed ex eu varius. Praesent sapien purus, tincidunt at dolor + ac, porttitor fermentum enim. Morbi rhoncus quam eu lorem ultrices, vitae + tempor felis volutpat. Suspendisse auctor, quam quis suscipit dictum, + felis lectus imperdiet velit, a faucibus quam diam et risus. Etiam varius + in arcu sed cursus. Praesent pulvinar enim nibh, eu euismod ante pretium + et. Pellentesque nec vestibulum eros. Praesent nec venenatis ipsum. Duis + pharetra suscipit mauris quis dictum. Pellentesque sed porttitor tellus. + Aenean rutrum blandit est in tincidunt. Nulla ante orci, pellentesque id + imperdiet at, posuere quis dui. Cras fringilla lobortis lectus. Mauris + vitae convallis orci. Mauris sodales faucibus nulla vitae posuere. +

+

+ Donec vehicula nisi eget metus blandit, at semper nunc porttitor. + Vestibulum sit amet posuere risus, at mattis nibh. Maecenas ultricies + scelerisque nibh et feugiat. Praesent mattis, nibh viverra consequat + rhoncus, turpis leo venenatis orci, vitae mollis libero magna eget massa. + In dapibus, metus sit amet venenatis finibus, lacus metus rhoncus massa, + sit amet mattis tortor massa vitae nunc. Mauris a enim sagittis, + condimentum tortor vitae, egestas nulla. Ut dictum laoreet sapien non + blandit. Etiam fermentum, magna et tincidunt maximus, ex orci sollicitudin + felis, ut dapibus orci ipsum quis leo. Nam accumsan tortor sit amet orci + gravida, eget dapibus metus dapibus. Fusce congue ultrices dignissim. Duis + quis metus in mi pharetra tempus. Etiam dapibus tellus vitae blandit + rhoncus. Fusce commodo risus id sapien ultrices vehicula. +

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae + libero porta nulla iaculis viverra. Vestibulum consectetur scelerisque + varius. Nam pulvinar dui a tortor hendrerit, id iaculis elit auctor. Nam + dapibus felis in gravida ornare. Nulla varius id mauris sed venenatis. Sed + turpis ex, aliquet nec fermentum eget, sollicitudin non est. Suspendisse + tincidunt ornare tortor, at vehicula orci aliquam a. Aliquam eleifend odio + quis quam dignissim posuere. Proin ac dolor rhoncus, consectetur ipsum + non, dictum est. Nam sollicitudin est eu est aliquet eleifend. Duis + condimentum, nisl eu finibus auctor, lectus odio fringilla nisi, quis + cursus libero magna imperdiet purus. In condimentum vehicula est, nec + varius est suscipit vitae. Maecenas ut sapien diam. Vivamus viverra nisl + at quam pellentesque posuere. Cras ut nibh non arcu dignissim elementum. +

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae + libero porta nulla iaculis viverra. Vestibulum consectetur scelerisque + varius. Nam pulvinar dui a tortor hendrerit, id iaculis elit auctor. Nam + dapibus felis in gravida ornare. Nulla varius id mauris sed venenatis. Sed + turpis ex, aliquet nec fermentum eget, sollicitudin non est. Suspendisse + tincidunt ornare tortor, at vehicula orci aliquam a. Aliquam eleifend odio + quis quam dignissim posuere. Proin ac dolor rhoncus, consectetur ipsum + non, dictum est. Nam sollicitudin est eu est aliquet eleifend. Duis + condimentum, nisl eu finibus auctor, lectus odio fringilla nisi, quis + cursus libero magna imperdiet purus. In condimentum vehicula est, nec + varius est suscipit vitae. Maecenas ut sapien diam. Vivamus viverra nisl + at quam pellentesque posuere. Cras ut nibh non arcu dignissim elementum. +

+

+ Vestibulum a nisi est. Fusce consequat iaculis vehicula. Aliquam luctus + nunc risus, ut congue augue tristique nec. In venenatis aliquam tristique. + Integer eleifend diam vel nunc porttitor sollicitudin. Aliquam quis + ullamcorper tortor. Morbi et dui vitae elit finibus sodales. Donec + pharetra tincidunt neque, eget sagittis nisi sodales vel. Duis elit massa, + malesuada a rhoncus sed, bibendum nec velit. Duis iaculis magna suscipit + felis fermentum accumsan. Nunc venenatis pellentesque magna at tincidunt. + Mauris nec placerat augue, eu auctor elit. Class aptent taciti sociosqu ad + litora torquent per conubia nostra, per inceptos himenaeos. Vestibulum + pretium ligula diam, a eleifend lectus porttitor non. Integer vitae tempus + enim, non pellentesque sem. Nam non sem lacinia, lacinia nisi non, + consectetur enim. +

+

+ Maecenas sed quam nec dolor rhoncus rutrum ut non mauris. Pellentesque + ante dolor, pretium quis enim eu, condimentum volutpat augue. Donec nulla + nisl, ullamcorper et hendrerit vel, sagittis sit amet ex. Mauris a enim in + sem feugiat mollis in eu lorem. Quisque finibus a diam ut facilisis. Sed + ultricies massa ut urna dapibus semper. Integer id nunc dictum, luctus + ligula eu, bibendum ex. Etiam tincidunt sapien ut lorem pharetra feugiat. + Aliquam erat volutpat. Sed vehicula tincidunt mauris, vitae cursus nisl. + Nulla imperdiet ex at venenatis dignissim. +

+

+ Sed pretium sed ex eu varius. Praesent sapien purus, tincidunt at dolor + ac, porttitor fermentum enim. Morbi rhoncus quam eu lorem ultrices, vitae + tempor felis volutpat. Suspendisse auctor, quam quis suscipit dictum, + felis lectus imperdiet velit, a faucibus quam diam et risus. Etiam varius + in arcu sed cursus. Praesent pulvinar enim nibh, eu euismod ante pretium + et. Pellentesque nec vestibulum eros. Praesent nec venenatis ipsum. Duis + pharetra suscipit mauris quis dictum. Pellentesque sed porttitor tellus. + Aenean rutrum blandit est in tincidunt. Nulla ante orci, pellentesque id + imperdiet at, posuere quis dui. Cras fringilla lobortis lectus. Mauris + vitae convallis orci. Mauris sodales faucibus nulla vitae posuere. +

+

+ Donec vehicula nisi eget metus blandit, at semper nunc porttitor. + Vestibulum sit amet posuere risus, at mattis nibh. Maecenas ultricies + scelerisque nibh et feugiat. Praesent mattis, nibh viverra consequat + rhoncus, turpis leo venenatis orci, vitae mollis libero magna eget massa. + In dapibus, metus sit amet venenatis finibus, lacus metus rhoncus massa, + sit amet mattis tortor massa vitae nunc. Mauris a enim sagittis, + condimentum tortor vitae, egestas nulla. Ut dictum laoreet sapien non + blandit. Etiam fermentum, magna et tincidunt maximus, ex orci sollicitudin + felis, ut dapibus orci ipsum quis leo. Nam accumsan tortor sit amet orci + gravida, eget dapibus metus dapibus. Fusce congue ultrices dignissim. Duis + quis metus in mi pharetra tempus. Etiam dapibus tellus vitae blandit + rhoncus. Fusce commodo risus id sapien ultrices vehicula. +

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae + libero porta nulla iaculis viverra. Vestibulum consectetur scelerisque + varius. Nam pulvinar dui a tortor hendrerit, id iaculis elit auctor. Nam + dapibus felis in gravida ornare. Nulla varius id mauris sed venenatis. Sed + turpis ex, aliquet nec fermentum eget, sollicitudin non est. Suspendisse + tincidunt ornare tortor, at vehicula orci aliquam a. Aliquam eleifend odio + quis quam dignissim posuere. Proin ac dolor rhoncus, consectetur ipsum + non, dictum est. Nam sollicitudin est eu est aliquet eleifend. Duis + condimentum, nisl eu finibus auctor, lectus odio fringilla nisi, quis + cursus libero magna imperdiet purus. In condimentum vehicula est, nec + varius est suscipit vitae. Maecenas ut sapien diam. Vivamus viverra nisl + at quam pellentesque posuere. Cras ut nibh non arcu dignissim elementum. +

+

+ Donec vehicula nisi eget metus blandit, at semper nunc porttitor. + Vestibulum sit amet posuere risus, at mattis nibh. Maecenas ultricies + scelerisque nibh et feugiat. Praesent mattis, nibh viverra consequat + rhoncus, turpis leo venenatis orci, vitae mollis libero magna eget massa. + In dapibus, metus sit amet venenatis finibus, lacus metus rhoncus massa, + sit amet mattis tortor massa vitae nunc. Mauris a enim sagittis, + condimentum tortor vitae, egestas nulla. Ut dictum laoreet sapien non + blandit. Etiam fermentum, magna et tincidunt maximus, ex orci sollicitudin + felis, ut dapibus orci ipsum quis leo. Nam accumsan tortor sit amet orci + gravida, eget dapibus metus dapibus. Fusce congue ultrices dignissim. Duis + quis metus in mi pharetra tempus. Etiam dapibus tellus vitae blandit + rhoncus. Fusce commodo risus id sapien ultrices vehicula. +

+
+ + +
+ Read more +
+
+ Here are a few more articles ... +
+
+ + diff --git a/test/manual/amp-next-page/0.2/articles/element-visibility-1.html b/test/manual/amp-next-page/0.2/articles/element-visibility-1.html new file mode 100644 index 000000000000..5f3ef4e57acf --- /dev/null +++ b/test/manual/amp-next-page/0.2/articles/element-visibility-1.html @@ -0,0 +1,289 @@ + + + + + AMP next page element visibility examples + + + + + + + + + + + +
+

Content discovery

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae + libero porta nulla iaculis viverra. Vestibulum consectetur scelerisque + varius. Nam pulvinar dui a tortor hendrerit, id iaculis elit auctor. Nam + dapibus felis in gravida ornare. Nulla varius id mauris sed venenatis. Sed + turpis ex, aliquet nec fermentum eget, sollicitudin non est. Suspendisse + tincidunt ornare tortor, at vehicula orci aliquam a. Aliquam eleifend odio + quis quam dignissim posuere. Proin ac dolor rhoncus, consectetur ipsum + non, dictum est. Nam sollicitudin est eu est aliquet eleifend. Duis + condimentum, nisl eu finibus auctor, lectus odio fringilla nisi, quis + cursus libero magna imperdiet purus. In condimentum vehicula est, nec + varius est suscipit vitae. Maecenas ut sapien diam. Vivamus viverra nisl + at quam pellentesque posuere. Cras ut nibh non arcu dignissim elementum. +

+ +

+ Vestibulum a nisi est. Fusce consequat iaculis vehicula. Aliquam luctus + nunc risus, ut congue augue tristique nec. In venenatis aliquam tristique. + Integer eleifend diam vel nunc porttitor sollicitudin. Aliquam quis + ullamcorper tortor. Morbi et dui vitae elit finibus sodales. Donec + pharetra tincidunt neque, eget sagittis nisi sodales vel. Duis elit massa, + malesuada a rhoncus sed, bibendum nec velit. Duis iaculis magna suscipit + felis fermentum accumsan. Nunc venenatis pellentesque magna at tincidunt. + Mauris nec placerat augue, eu auctor elit. Class aptent taciti sociosqu ad + litora torquent per conubia nostra, per inceptos himenaeos. Vestibulum + pretium ligula diam, a eleifend lectus porttitor non. Integer vitae tempus + enim, non pellentesque sem. Nam non sem lacinia, lacinia nisi non, + consectetur enim. +

+
I got replaced by my sibling from page 1
+
I am fixed and should be visible when loaded as a host page but hidden if loaded as a next-page (page 1)
+

+ Maecenas sed quam nec dolor rhoncus rutrum ut non mauris. Pellentesque + ante dolor, pretium quis enim eu, condimentum volutpat augue. Donec nulla + nisl, ullamcorper et hendrerit vel, sagittis sit amet ex. Mauris a enim in + sem feugiat mollis in eu lorem. Quisque finibus a diam ut facilisis. Sed + ultricies massa ut urna dapibus semper. Integer id nunc dictum, luctus + ligula eu, bibendum ex. Etiam tincidunt sapien ut lorem pharetra feugiat. + Aliquam erat volutpat. Sed vehicula tincidunt mauris, vitae cursus nisl. + Nulla imperdiet ex at venenatis dignissim. +

+

+ Sed pretium sed ex eu varius. Praesent sapien purus, tincidunt at dolor + ac, porttitor fermentum enim. Morbi rhoncus quam eu lorem ultrices, vitae + tempor felis volutpat. Suspendisse auctor, quam quis suscipit dictum, + felis lectus imperdiet velit, a faucibus quam diam et risus. Etiam varius + in arcu sed cursus. Praesent pulvinar enim nibh, eu euismod ante pretium + et. Pellentesque nec vestibulum eros. Praesent nec venenatis ipsum. Duis + pharetra suscipit mauris quis dictum. Pellentesque sed porttitor tellus. + Aenean rutrum blandit est in tincidunt. Nulla ante orci, pellentesque id + imperdiet at, posuere quis dui. Cras fringilla lobortis lectus. Mauris + vitae convallis orci. Mauris sodales faucibus nulla vitae posuere. +

+

+ Donec vehicula nisi eget metus blandit, at semper nunc porttitor. + Vestibulum sit amet posuere risus, at mattis nibh. Maecenas ultricies + scelerisque nibh et feugiat. Praesent mattis, nibh viverra consequat + rhoncus, turpis leo venenatis orci, vitae mollis libero magna eget massa. + In dapibus, metus sit amet venenatis finibus, lacus metus rhoncus massa, + sit amet mattis tortor massa vitae nunc. Mauris a enim sagittis, + condimentum tortor vitae, egestas nulla. Ut dictum laoreet sapien non + blandit. Etiam fermentum, magna et tincidunt maximus, ex orci sollicitudin + felis, ut dapibus orci ipsum quis leo. Nam accumsan tortor sit amet orci + gravida, eget dapibus metus dapibus. Fusce congue ultrices dignissim. Duis + quis metus in mi pharetra tempus. Etiam dapibus tellus vitae blandit + rhoncus. Fusce commodo risus id sapien ultrices vehicula. +

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae + libero porta nulla iaculis viverra. Vestibulum consectetur scelerisque + varius. Nam pulvinar dui a tortor hendrerit, id iaculis elit auctor. Nam + dapibus felis in gravida ornare. Nulla varius id mauris sed venenatis. Sed + turpis ex, aliquet nec fermentum eget, sollicitudin non est. Suspendisse + tincidunt ornare tortor, at vehicula orci aliquam a. Aliquam eleifend odio + quis quam dignissim posuere. Proin ac dolor rhoncus, consectetur ipsum + non, dictum est. Nam sollicitudin est eu est aliquet eleifend. Duis + condimentum, nisl eu finibus auctor, lectus odio fringilla nisi, quis + cursus libero magna imperdiet purus. In condimentum vehicula est, nec + varius est suscipit vitae. Maecenas ut sapien diam. Vivamus viverra nisl + at quam pellentesque posuere. Cras ut nibh non arcu dignissim elementum. +

+

+ Vestibulum a nisi est. Fusce consequat iaculis vehicula. Aliquam luctus + nunc risus, ut congue augue tristique nec. In venenatis aliquam tristique. + Integer eleifend diam vel nunc porttitor sollicitudin. Aliquam quis + ullamcorper tortor. Morbi et dui vitae elit finibus sodales. Donec + pharetra tincidunt neque, eget sagittis nisi sodales vel. Duis elit massa, + malesuada a rhoncus sed, bibendum nec velit. Duis iaculis magna suscipit + felis fermentum accumsan. Nunc venenatis pellentesque magna at tincidunt. + Mauris nec placerat augue, eu auctor elit. Class aptent taciti sociosqu ad + litora torquent per conubia nostra, per inceptos himenaeos. Vestibulum + pretium ligula diam, a eleifend lectus porttitor non. Integer vitae tempus + enim, non pellentesque sem. Nam non sem lacinia, lacinia nisi non, + consectetur enim. +

+

+ Maecenas sed quam nec dolor rhoncus rutrum ut non mauris. Pellentesque + ante dolor, pretium quis enim eu, condimentum volutpat augue. Donec nulla + nisl, ullamcorper et hendrerit vel, sagittis sit amet ex. Mauris a enim in + sem feugiat mollis in eu lorem. Quisque finibus a diam ut facilisis. Sed + ultricies massa ut urna dapibus semper. Integer id nunc dictum, luctus + ligula eu, bibendum ex. Etiam tincidunt sapien ut lorem pharetra feugiat. + Aliquam erat volutpat. Sed vehicula tincidunt mauris, vitae cursus nisl. + Nulla imperdiet ex at venenatis dignissim. +

+

+ Sed pretium sed ex eu varius. Praesent sapien purus, tincidunt at dolor + ac, porttitor fermentum enim. Morbi rhoncus quam eu lorem ultrices, vitae + tempor felis volutpat. Suspendisse auctor, quam quis suscipit dictum, + felis lectus imperdiet velit, a faucibus quam diam et risus. Etiam varius + in arcu sed cursus. Praesent pulvinar enim nibh, eu euismod ante pretium + et. Pellentesque nec vestibulum eros. Praesent nec venenatis ipsum. Duis + pharetra suscipit mauris quis dictum. Pellentesque sed porttitor tellus. + Aenean rutrum blandit est in tincidunt. Nulla ante orci, pellentesque id + imperdiet at, posuere quis dui. Cras fringilla lobortis lectus. Mauris + vitae convallis orci. Mauris sodales faucibus nulla vitae posuere. +

+

+ Donec vehicula nisi eget metus blandit, at semper nunc porttitor. + Vestibulum sit amet posuere risus, at mattis nibh. Maecenas ultricies + scelerisque nibh et feugiat. Praesent mattis, nibh viverra consequat + rhoncus, turpis leo venenatis orci, vitae mollis libero magna eget massa. + In dapibus, metus sit amet venenatis finibus, lacus metus rhoncus massa, + sit amet mattis tortor massa vitae nunc. Mauris a enim sagittis, + condimentum tortor vitae, egestas nulla. Ut dictum laoreet sapien non + blandit. Etiam fermentum, magna et tincidunt maximus, ex orci sollicitudin + felis, ut dapibus orci ipsum quis leo. Nam accumsan tortor sit amet orci + gravida, eget dapibus metus dapibus. Fusce congue ultrices dignissim. Duis + quis metus in mi pharetra tempus. Etiam dapibus tellus vitae blandit + rhoncus. Fusce commodo risus id sapien ultrices vehicula. +

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae + libero porta nulla iaculis viverra. Vestibulum consectetur scelerisque + varius. Nam pulvinar dui a tortor hendrerit, id iaculis elit auctor. Nam + dapibus felis in gravida ornare. Nulla varius id mauris sed venenatis. Sed + turpis ex, aliquet nec fermentum eget, sollicitudin non est. Suspendisse + tincidunt ornare tortor, at vehicula orci aliquam a. Aliquam eleifend odio + quis quam dignissim posuere. Proin ac dolor rhoncus, consectetur ipsum + non, dictum est. Nam sollicitudin est eu est aliquet eleifend. Duis + condimentum, nisl eu finibus auctor, lectus odio fringilla nisi, quis + cursus libero magna imperdiet purus. In condimentum vehicula est, nec + varius est suscipit vitae. Maecenas ut sapien diam. Vivamus viverra nisl + at quam pellentesque posuere. Cras ut nibh non arcu dignissim elementum. +

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae + libero porta nulla iaculis viverra. Vestibulum consectetur scelerisque + varius. Nam pulvinar dui a tortor hendrerit, id iaculis elit auctor. Nam + dapibus felis in gravida ornare. Nulla varius id mauris sed venenatis. Sed + turpis ex, aliquet nec fermentum eget, sollicitudin non est. Suspendisse + tincidunt ornare tortor, at vehicula orci aliquam a. Aliquam eleifend odio + quis quam dignissim posuere. Proin ac dolor rhoncus, consectetur ipsum + non, dictum est. Nam sollicitudin est eu est aliquet eleifend. Duis + condimentum, nisl eu finibus auctor, lectus odio fringilla nisi, quis + cursus libero magna imperdiet purus. In condimentum vehicula est, nec + varius est suscipit vitae. Maecenas ut sapien diam. Vivamus viverra nisl + at quam pellentesque posuere. Cras ut nibh non arcu dignissim elementum. +

+

+ Vestibulum a nisi est. Fusce consequat iaculis vehicula. Aliquam luctus + nunc risus, ut congue augue tristique nec. In venenatis aliquam tristique. + Integer eleifend diam vel nunc porttitor sollicitudin. Aliquam quis + ullamcorper tortor. Morbi et dui vitae elit finibus sodales. Donec + pharetra tincidunt neque, eget sagittis nisi sodales vel. Duis elit massa, + malesuada a rhoncus sed, bibendum nec velit. Duis iaculis magna suscipit + felis fermentum accumsan. Nunc venenatis pellentesque magna at tincidunt. + Mauris nec placerat augue, eu auctor elit. Class aptent taciti sociosqu ad + litora torquent per conubia nostra, per inceptos himenaeos. Vestibulum + pretium ligula diam, a eleifend lectus porttitor non. Integer vitae tempus + enim, non pellentesque sem. Nam non sem lacinia, lacinia nisi non, + consectetur enim. +

+

+ Maecenas sed quam nec dolor rhoncus rutrum ut non mauris. Pellentesque + ante dolor, pretium quis enim eu, condimentum volutpat augue. Donec nulla + nisl, ullamcorper et hendrerit vel, sagittis sit amet ex. Mauris a enim in + sem feugiat mollis in eu lorem. Quisque finibus a diam ut facilisis. Sed + ultricies massa ut urna dapibus semper. Integer id nunc dictum, luctus + ligula eu, bibendum ex. Etiam tincidunt sapien ut lorem pharetra feugiat. + Aliquam erat volutpat. Sed vehicula tincidunt mauris, vitae cursus nisl. + Nulla imperdiet ex at venenatis dignissim. +

+

+ Sed pretium sed ex eu varius. Praesent sapien purus, tincidunt at dolor + ac, porttitor fermentum enim. Morbi rhoncus quam eu lorem ultrices, vitae + tempor felis volutpat. Suspendisse auctor, quam quis suscipit dictum, + felis lectus imperdiet velit, a faucibus quam diam et risus. Etiam varius + in arcu sed cursus. Praesent pulvinar enim nibh, eu euismod ante pretium + et. Pellentesque nec vestibulum eros. Praesent nec venenatis ipsum. Duis + pharetra suscipit mauris quis dictum. Pellentesque sed porttitor tellus. + Aenean rutrum blandit est in tincidunt. Nulla ante orci, pellentesque id + imperdiet at, posuere quis dui. Cras fringilla lobortis lectus. Mauris + vitae convallis orci. Mauris sodales faucibus nulla vitae posuere. +

+

+ Donec vehicula nisi eget metus blandit, at semper nunc porttitor. + Vestibulum sit amet posuere risus, at mattis nibh. Maecenas ultricies + scelerisque nibh et feugiat. Praesent mattis, nibh viverra consequat + rhoncus, turpis leo venenatis orci, vitae mollis libero magna eget massa. + In dapibus, metus sit amet venenatis finibus, lacus metus rhoncus massa, + sit amet mattis tortor massa vitae nunc. Mauris a enim sagittis, + condimentum tortor vitae, egestas nulla. Ut dictum laoreet sapien non + blandit. Etiam fermentum, magna et tincidunt maximus, ex orci sollicitudin + felis, ut dapibus orci ipsum quis leo. Nam accumsan tortor sit amet orci + gravida, eget dapibus metus dapibus. Fusce congue ultrices dignissim. Duis + quis metus in mi pharetra tempus. Etiam dapibus tellus vitae blandit + rhoncus. Fusce commodo risus id sapien ultrices vehicula. +

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae + libero porta nulla iaculis viverra. Vestibulum consectetur scelerisque + varius. Nam pulvinar dui a tortor hendrerit, id iaculis elit auctor. Nam + dapibus felis in gravida ornare. Nulla varius id mauris sed venenatis. Sed + turpis ex, aliquet nec fermentum eget, sollicitudin non est. Suspendisse + tincidunt ornare tortor, at vehicula orci aliquam a. Aliquam eleifend odio + quis quam dignissim posuere. Proin ac dolor rhoncus, consectetur ipsum + non, dictum est. Nam sollicitudin est eu est aliquet eleifend. Duis + condimentum, nisl eu finibus auctor, lectus odio fringilla nisi, quis + cursus libero magna imperdiet purus. In condimentum vehicula est, nec + varius est suscipit vitae. Maecenas ut sapien diam. Vivamus viverra nisl + at quam pellentesque posuere. Cras ut nibh non arcu dignissim elementum. +

+

+ Donec vehicula nisi eget metus blandit, at semper nunc porttitor. + Vestibulum sit amet posuere risus, at mattis nibh. Maecenas ultricies + scelerisque nibh et feugiat. Praesent mattis, nibh viverra consequat + rhoncus, turpis leo venenatis orci, vitae mollis libero magna eget massa. + In dapibus, metus sit amet venenatis finibus, lacus metus rhoncus massa, + sit amet mattis tortor massa vitae nunc. Mauris a enim sagittis, + condimentum tortor vitae, egestas nulla. Ut dictum laoreet sapien non + blandit. Etiam fermentum, magna et tincidunt maximus, ex orci sollicitudin + felis, ut dapibus orci ipsum quis leo. Nam accumsan tortor sit amet orci + gravida, eget dapibus metus dapibus. Fusce congue ultrices dignissim. Duis + quis metus in mi pharetra tempus. Etiam dapibus tellus vitae blandit + rhoncus. Fusce commodo risus id sapien ultrices vehicula. +

+
+ + diff --git a/test/manual/amp-next-page/0.2/articles/element-visibility-2.html b/test/manual/amp-next-page/0.2/articles/element-visibility-2.html new file mode 100644 index 000000000000..bd837844a2a3 --- /dev/null +++ b/test/manual/amp-next-page/0.2/articles/element-visibility-2.html @@ -0,0 +1,289 @@ + + + + + AMP next page element visibility examples + + + + + + + + + + + +
+

Content discovery

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae + libero porta nulla iaculis viverra. Vestibulum consectetur scelerisque + varius. Nam pulvinar dui a tortor hendrerit, id iaculis elit auctor. Nam + dapibus felis in gravida ornare. Nulla varius id mauris sed venenatis. Sed + turpis ex, aliquet nec fermentum eget, sollicitudin non est. Suspendisse + tincidunt ornare tortor, at vehicula orci aliquam a. Aliquam eleifend odio + quis quam dignissim posuere. Proin ac dolor rhoncus, consectetur ipsum + non, dictum est. Nam sollicitudin est eu est aliquet eleifend. Duis + condimentum, nisl eu finibus auctor, lectus odio fringilla nisi, quis + cursus libero magna imperdiet purus. In condimentum vehicula est, nec + varius est suscipit vitae. Maecenas ut sapien diam. Vivamus viverra nisl + at quam pellentesque posuere. Cras ut nibh non arcu dignissim elementum. +

+ +

+ Vestibulum a nisi est. Fusce consequat iaculis vehicula. Aliquam luctus + nunc risus, ut congue augue tristique nec. In venenatis aliquam tristique. + Integer eleifend diam vel nunc porttitor sollicitudin. Aliquam quis + ullamcorper tortor. Morbi et dui vitae elit finibus sodales. Donec + pharetra tincidunt neque, eget sagittis nisi sodales vel. Duis elit massa, + malesuada a rhoncus sed, bibendum nec velit. Duis iaculis magna suscipit + felis fermentum accumsan. Nunc venenatis pellentesque magna at tincidunt. + Mauris nec placerat augue, eu auctor elit. Class aptent taciti sociosqu ad + litora torquent per conubia nostra, per inceptos himenaeos. Vestibulum + pretium ligula diam, a eleifend lectus porttitor non. Integer vitae tempus + enim, non pellentesque sem. Nam non sem lacinia, lacinia nisi non, + consectetur enim. +

+
I got replaced by my sibling from page 2
+
I am fixed and should be visible when loaded as a host page but hidden if loaded as a next-page (page 2)
+

+ Maecenas sed quam nec dolor rhoncus rutrum ut non mauris. Pellentesque + ante dolor, pretium quis enim eu, condimentum volutpat augue. Donec nulla + nisl, ullamcorper et hendrerit vel, sagittis sit amet ex. Mauris a enim in + sem feugiat mollis in eu lorem. Quisque finibus a diam ut facilisis. Sed + ultricies massa ut urna dapibus semper. Integer id nunc dictum, luctus + ligula eu, bibendum ex. Etiam tincidunt sapien ut lorem pharetra feugiat. + Aliquam erat volutpat. Sed vehicula tincidunt mauris, vitae cursus nisl. + Nulla imperdiet ex at venenatis dignissim. +

+

+ Sed pretium sed ex eu varius. Praesent sapien purus, tincidunt at dolor + ac, porttitor fermentum enim. Morbi rhoncus quam eu lorem ultrices, vitae + tempor felis volutpat. Suspendisse auctor, quam quis suscipit dictum, + felis lectus imperdiet velit, a faucibus quam diam et risus. Etiam varius + in arcu sed cursus. Praesent pulvinar enim nibh, eu euismod ante pretium + et. Pellentesque nec vestibulum eros. Praesent nec venenatis ipsum. Duis + pharetra suscipit mauris quis dictum. Pellentesque sed porttitor tellus. + Aenean rutrum blandit est in tincidunt. Nulla ante orci, pellentesque id + imperdiet at, posuere quis dui. Cras fringilla lobortis lectus. Mauris + vitae convallis orci. Mauris sodales faucibus nulla vitae posuere. +

+

+ Donec vehicula nisi eget metus blandit, at semper nunc porttitor. + Vestibulum sit amet posuere risus, at mattis nibh. Maecenas ultricies + scelerisque nibh et feugiat. Praesent mattis, nibh viverra consequat + rhoncus, turpis leo venenatis orci, vitae mollis libero magna eget massa. + In dapibus, metus sit amet venenatis finibus, lacus metus rhoncus massa, + sit amet mattis tortor massa vitae nunc. Mauris a enim sagittis, + condimentum tortor vitae, egestas nulla. Ut dictum laoreet sapien non + blandit. Etiam fermentum, magna et tincidunt maximus, ex orci sollicitudin + felis, ut dapibus orci ipsum quis leo. Nam accumsan tortor sit amet orci + gravida, eget dapibus metus dapibus. Fusce congue ultrices dignissim. Duis + quis metus in mi pharetra tempus. Etiam dapibus tellus vitae blandit + rhoncus. Fusce commodo risus id sapien ultrices vehicula. +

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae + libero porta nulla iaculis viverra. Vestibulum consectetur scelerisque + varius. Nam pulvinar dui a tortor hendrerit, id iaculis elit auctor. Nam + dapibus felis in gravida ornare. Nulla varius id mauris sed venenatis. Sed + turpis ex, aliquet nec fermentum eget, sollicitudin non est. Suspendisse + tincidunt ornare tortor, at vehicula orci aliquam a. Aliquam eleifend odio + quis quam dignissim posuere. Proin ac dolor rhoncus, consectetur ipsum + non, dictum est. Nam sollicitudin est eu est aliquet eleifend. Duis + condimentum, nisl eu finibus auctor, lectus odio fringilla nisi, quis + cursus libero magna imperdiet purus. In condimentum vehicula est, nec + varius est suscipit vitae. Maecenas ut sapien diam. Vivamus viverra nisl + at quam pellentesque posuere. Cras ut nibh non arcu dignissim elementum. +

+

+ Vestibulum a nisi est. Fusce consequat iaculis vehicula. Aliquam luctus + nunc risus, ut congue augue tristique nec. In venenatis aliquam tristique. + Integer eleifend diam vel nunc porttitor sollicitudin. Aliquam quis + ullamcorper tortor. Morbi et dui vitae elit finibus sodales. Donec + pharetra tincidunt neque, eget sagittis nisi sodales vel. Duis elit massa, + malesuada a rhoncus sed, bibendum nec velit. Duis iaculis magna suscipit + felis fermentum accumsan. Nunc venenatis pellentesque magna at tincidunt. + Mauris nec placerat augue, eu auctor elit. Class aptent taciti sociosqu ad + litora torquent per conubia nostra, per inceptos himenaeos. Vestibulum + pretium ligula diam, a eleifend lectus porttitor non. Integer vitae tempus + enim, non pellentesque sem. Nam non sem lacinia, lacinia nisi non, + consectetur enim. +

+

+ Maecenas sed quam nec dolor rhoncus rutrum ut non mauris. Pellentesque + ante dolor, pretium quis enim eu, condimentum volutpat augue. Donec nulla + nisl, ullamcorper et hendrerit vel, sagittis sit amet ex. Mauris a enim in + sem feugiat mollis in eu lorem. Quisque finibus a diam ut facilisis. Sed + ultricies massa ut urna dapibus semper. Integer id nunc dictum, luctus + ligula eu, bibendum ex. Etiam tincidunt sapien ut lorem pharetra feugiat. + Aliquam erat volutpat. Sed vehicula tincidunt mauris, vitae cursus nisl. + Nulla imperdiet ex at venenatis dignissim. +

+

+ Sed pretium sed ex eu varius. Praesent sapien purus, tincidunt at dolor + ac, porttitor fermentum enim. Morbi rhoncus quam eu lorem ultrices, vitae + tempor felis volutpat. Suspendisse auctor, quam quis suscipit dictum, + felis lectus imperdiet velit, a faucibus quam diam et risus. Etiam varius + in arcu sed cursus. Praesent pulvinar enim nibh, eu euismod ante pretium + et. Pellentesque nec vestibulum eros. Praesent nec venenatis ipsum. Duis + pharetra suscipit mauris quis dictum. Pellentesque sed porttitor tellus. + Aenean rutrum blandit est in tincidunt. Nulla ante orci, pellentesque id + imperdiet at, posuere quis dui. Cras fringilla lobortis lectus. Mauris + vitae convallis orci. Mauris sodales faucibus nulla vitae posuere. +

+

+ Donec vehicula nisi eget metus blandit, at semper nunc porttitor. + Vestibulum sit amet posuere risus, at mattis nibh. Maecenas ultricies + scelerisque nibh et feugiat. Praesent mattis, nibh viverra consequat + rhoncus, turpis leo venenatis orci, vitae mollis libero magna eget massa. + In dapibus, metus sit amet venenatis finibus, lacus metus rhoncus massa, + sit amet mattis tortor massa vitae nunc. Mauris a enim sagittis, + condimentum tortor vitae, egestas nulla. Ut dictum laoreet sapien non + blandit. Etiam fermentum, magna et tincidunt maximus, ex orci sollicitudin + felis, ut dapibus orci ipsum quis leo. Nam accumsan tortor sit amet orci + gravida, eget dapibus metus dapibus. Fusce congue ultrices dignissim. Duis + quis metus in mi pharetra tempus. Etiam dapibus tellus vitae blandit + rhoncus. Fusce commodo risus id sapien ultrices vehicula. +

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae + libero porta nulla iaculis viverra. Vestibulum consectetur scelerisque + varius. Nam pulvinar dui a tortor hendrerit, id iaculis elit auctor. Nam + dapibus felis in gravida ornare. Nulla varius id mauris sed venenatis. Sed + turpis ex, aliquet nec fermentum eget, sollicitudin non est. Suspendisse + tincidunt ornare tortor, at vehicula orci aliquam a. Aliquam eleifend odio + quis quam dignissim posuere. Proin ac dolor rhoncus, consectetur ipsum + non, dictum est. Nam sollicitudin est eu est aliquet eleifend. Duis + condimentum, nisl eu finibus auctor, lectus odio fringilla nisi, quis + cursus libero magna imperdiet purus. In condimentum vehicula est, nec + varius est suscipit vitae. Maecenas ut sapien diam. Vivamus viverra nisl + at quam pellentesque posuere. Cras ut nibh non arcu dignissim elementum. +

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae + libero porta nulla iaculis viverra. Vestibulum consectetur scelerisque + varius. Nam pulvinar dui a tortor hendrerit, id iaculis elit auctor. Nam + dapibus felis in gravida ornare. Nulla varius id mauris sed venenatis. Sed + turpis ex, aliquet nec fermentum eget, sollicitudin non est. Suspendisse + tincidunt ornare tortor, at vehicula orci aliquam a. Aliquam eleifend odio + quis quam dignissim posuere. Proin ac dolor rhoncus, consectetur ipsum + non, dictum est. Nam sollicitudin est eu est aliquet eleifend. Duis + condimentum, nisl eu finibus auctor, lectus odio fringilla nisi, quis + cursus libero magna imperdiet purus. In condimentum vehicula est, nec + varius est suscipit vitae. Maecenas ut sapien diam. Vivamus viverra nisl + at quam pellentesque posuere. Cras ut nibh non arcu dignissim elementum. +

+

+ Vestibulum a nisi est. Fusce consequat iaculis vehicula. Aliquam luctus + nunc risus, ut congue augue tristique nec. In venenatis aliquam tristique. + Integer eleifend diam vel nunc porttitor sollicitudin. Aliquam quis + ullamcorper tortor. Morbi et dui vitae elit finibus sodales. Donec + pharetra tincidunt neque, eget sagittis nisi sodales vel. Duis elit massa, + malesuada a rhoncus sed, bibendum nec velit. Duis iaculis magna suscipit + felis fermentum accumsan. Nunc venenatis pellentesque magna at tincidunt. + Mauris nec placerat augue, eu auctor elit. Class aptent taciti sociosqu ad + litora torquent per conubia nostra, per inceptos himenaeos. Vestibulum + pretium ligula diam, a eleifend lectus porttitor non. Integer vitae tempus + enim, non pellentesque sem. Nam non sem lacinia, lacinia nisi non, + consectetur enim. +

+

+ Maecenas sed quam nec dolor rhoncus rutrum ut non mauris. Pellentesque + ante dolor, pretium quis enim eu, condimentum volutpat augue. Donec nulla + nisl, ullamcorper et hendrerit vel, sagittis sit amet ex. Mauris a enim in + sem feugiat mollis in eu lorem. Quisque finibus a diam ut facilisis. Sed + ultricies massa ut urna dapibus semper. Integer id nunc dictum, luctus + ligula eu, bibendum ex. Etiam tincidunt sapien ut lorem pharetra feugiat. + Aliquam erat volutpat. Sed vehicula tincidunt mauris, vitae cursus nisl. + Nulla imperdiet ex at venenatis dignissim. +

+

+ Sed pretium sed ex eu varius. Praesent sapien purus, tincidunt at dolor + ac, porttitor fermentum enim. Morbi rhoncus quam eu lorem ultrices, vitae + tempor felis volutpat. Suspendisse auctor, quam quis suscipit dictum, + felis lectus imperdiet velit, a faucibus quam diam et risus. Etiam varius + in arcu sed cursus. Praesent pulvinar enim nibh, eu euismod ante pretium + et. Pellentesque nec vestibulum eros. Praesent nec venenatis ipsum. Duis + pharetra suscipit mauris quis dictum. Pellentesque sed porttitor tellus. + Aenean rutrum blandit est in tincidunt. Nulla ante orci, pellentesque id + imperdiet at, posuere quis dui. Cras fringilla lobortis lectus. Mauris + vitae convallis orci. Mauris sodales faucibus nulla vitae posuere. +

+

+ Donec vehicula nisi eget metus blandit, at semper nunc porttitor. + Vestibulum sit amet posuere risus, at mattis nibh. Maecenas ultricies + scelerisque nibh et feugiat. Praesent mattis, nibh viverra consequat + rhoncus, turpis leo venenatis orci, vitae mollis libero magna eget massa. + In dapibus, metus sit amet venenatis finibus, lacus metus rhoncus massa, + sit amet mattis tortor massa vitae nunc. Mauris a enim sagittis, + condimentum tortor vitae, egestas nulla. Ut dictum laoreet sapien non + blandit. Etiam fermentum, magna et tincidunt maximus, ex orci sollicitudin + felis, ut dapibus orci ipsum quis leo. Nam accumsan tortor sit amet orci + gravida, eget dapibus metus dapibus. Fusce congue ultrices dignissim. Duis + quis metus in mi pharetra tempus. Etiam dapibus tellus vitae blandit + rhoncus. Fusce commodo risus id sapien ultrices vehicula. +

+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vitae + libero porta nulla iaculis viverra. Vestibulum consectetur scelerisque + varius. Nam pulvinar dui a tortor hendrerit, id iaculis elit auctor. Nam + dapibus felis in gravida ornare. Nulla varius id mauris sed venenatis. Sed + turpis ex, aliquet nec fermentum eget, sollicitudin non est. Suspendisse + tincidunt ornare tortor, at vehicula orci aliquam a. Aliquam eleifend odio + quis quam dignissim posuere. Proin ac dolor rhoncus, consectetur ipsum + non, dictum est. Nam sollicitudin est eu est aliquet eleifend. Duis + condimentum, nisl eu finibus auctor, lectus odio fringilla nisi, quis + cursus libero magna imperdiet purus. In condimentum vehicula est, nec + varius est suscipit vitae. Maecenas ut sapien diam. Vivamus viverra nisl + at quam pellentesque posuere. Cras ut nibh non arcu dignissim elementum. +

+

+ Donec vehicula nisi eget metus blandit, at semper nunc porttitor. + Vestibulum sit amet posuere risus, at mattis nibh. Maecenas ultricies + scelerisque nibh et feugiat. Praesent mattis, nibh viverra consequat + rhoncus, turpis leo venenatis orci, vitae mollis libero magna eget massa. + In dapibus, metus sit amet venenatis finibus, lacus metus rhoncus massa, + sit amet mattis tortor massa vitae nunc. Mauris a enim sagittis, + condimentum tortor vitae, egestas nulla. Ut dictum laoreet sapien non + blandit. Etiam fermentum, magna et tincidunt maximus, ex orci sollicitudin + felis, ut dapibus orci ipsum quis leo. Nam accumsan tortor sit amet orci + gravida, eget dapibus metus dapibus. Fusce congue ultrices dignissim. Duis + quis metus in mi pharetra tempus. Etiam dapibus tellus vitae blandit + rhoncus. Fusce commodo risus id sapien ultrices vehicula. +

+
+ +