| Index: chrome/browser/resources/pdf/background.js
|
| diff --git a/chrome/browser/resources/pdf/background.js b/chrome/browser/resources/pdf/background.js
|
| index 06f5b2e0d768225039bf04a19d041ac281247e11..93e6abf22f70fef67cfc880d31e61c0c39b91fa1 100644
|
| --- a/chrome/browser/resources/pdf/background.js
|
| +++ b/chrome/browser/resources/pdf/background.js
|
| @@ -2,11 +2,37 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -chrome.streamsPrivate.onExecuteMimeTypeHandler.addListener(
|
| - function(mime_type, original_url, content_url, tab_id) {
|
| - // TODO(raymes): Currently this doesn't work with embedded PDFs (it
|
| - // causes the entire frame to navigate). Also work out how we can
|
| - // mask the URL with the URL of the PDF.
|
| - chrome.tabs.update(tab_id, { url: 'index.html?' + content_url });
|
| - }
|
| -);
|
| +(function() {
|
| + 'use strict';
|
| +
|
| + /**
|
| + * Keep a stack of stream details for requests. These are pushed onto the
|
| + * stack as requests come in and popped off the stack as they are handled by a
|
| + * renderer.
|
| + * TODO(raymes): This is probably racy for multiple requests. We could
|
| + * associate an ID with the request but this code will probably change
|
| + * completely when MIME type handling is improved.
|
| + */
|
| + var streamsCache = [];
|
| +
|
| + window.popStreamDetails = function() {
|
| + if (streamsCache.length > 0)
|
| + return streamsCache.pop();
|
| + };
|
| +
|
| + chrome.streamsPrivate.onExecuteMimeTypeHandler.addListener(
|
| + function(mimeType, originalURL, contentURL, tabID) {
|
| + // TODO(raymes): Currently this doesn't work with embedded PDFs (it
|
| + // causes the entire frame to navigate). Also work out how we can
|
| + // mask the URL with the URL of the PDF.
|
| + var streamDetails = {
|
| + mimeType: mimeType,
|
| + originalURL: originalURL,
|
| + streamURL: contentURL
|
| + };
|
| + streamsCache.push(streamDetails);
|
| + chrome.tabs.update(tabID, {url: 'index.html'});
|
| + }
|
| + );
|
| +
|
| +}());
|
|
|