// Copyright 2013 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. (function() { var plugin; var sizer; function onScroll() { var scrollMessage = { type: 'scroll', xOffset: window.pageXOffset, yOffset: window.pageYOffset }; plugin.postMessage(scrollMessage); } function handleMessage(message) { if (message.data['type'] == 'document_dimensions') { if (sizer.style.height != message.data['document_height'] + 'px') { sizer.style.height = message.data['document_height'] + 'px'; sizer.style.width = message.data['document_width'] + 'px'; } } } function load() { window.addEventListener('scroll', function() { webkitRequestAnimationFrame(onScroll); }); // The pdf location is passed in the document url in the format: // http://<.../pdf.html>?<pdf location>. var url = window.location.search.substring(1); plugin = document.createElement('object'); plugin.setAttribute('width', '100%'); plugin.setAttribute('height', '100%'); plugin.setAttribute('type', 'application/x-google-chrome-pdf'); plugin.setAttribute('src', url); plugin.style.zIndex = '1'; plugin.style.position = 'fixed'; plugin.addEventListener('message', handleMessage, false); document.body.appendChild(plugin); sizer = document.createElement('div'); sizer.style.zIndex = '0'; sizer.style.position = 'absolute'; sizer.style.width = '100%'; sizer.style.height = '100%'; document.body.appendChild(sizer); } load(); })();