diff options
author | rafaelw@chromium.org <rafaelw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-08-13 00:04:06 +0000 |
---|---|---|
committer | rafaelw@chromium.org <rafaelw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-08-13 00:04:06 +0000 |
commit | 3947c4d60629f25db90519933ea98bf273259fdd (patch) | |
tree | 2c64bc019ecad853a0fc83ac5b5e59196c15d6ee /chrome/test/data | |
parent | 576537844b224ca246713c57e039d19d0dfefbf7 (diff) | |
download | chromium_src-3947c4d60629f25db90519933ea98bf273259fdd.zip chromium_src-3947c4d60629f25db90519933ea98bf273259fdd.tar.gz chromium_src-3947c4d60629f25db90519933ea98bf273259fdd.tar.bz2 |
I have taken over this patch, original authored by Adam Hunter (adamhunter).
The original issue is: http://codereview.chromium.org/144019
--------------
Functionality has been requested in the Extension API for Javascript to
take screenshots of the currently visible tab. This changelist builds this
function, chrome.tabs.getVisibleScreenCapture. This function takes a
single callback function and returns to that function a data URL of a JPEG
image of the current screen. A simple sample extension is provided as a
use case.
BUG=14760
TEST=There is an extension in chrome\test\data\extensions\samples\screenshot,
load this extension. It creates a toolstrip button. Click this button, you
should get a page with a screenshot of the active tab. The API function
is found at chrome.tabs.getVisibleScreenCapture.
Review URL: http://codereview.chromium.org/160228
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@23259 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/test/data')
4 files changed, 56 insertions, 0 deletions
diff --git a/chrome/test/data/extensions/samples/screenshot/manifest.json b/chrome/test/data/extensions/samples/screenshot/manifest.json new file mode 100755 index 0000000..644c82d --- /dev/null +++ b/chrome/test/data/extensions/samples/screenshot/manifest.json @@ -0,0 +1,9 @@ +{ + "name": "Test Screenshot Extension", + "version": "1.0", + "description": "Test extension for testing screenshot functionality", + "toolstrips": [ + "toolstrip.html" + ], + "permissions": ["tabs"] +} diff --git a/chrome/test/data/extensions/samples/screenshot/screenshot.html b/chrome/test/data/extensions/samples/screenshot/screenshot.html new file mode 100755 index 0000000..90ac7aa --- /dev/null +++ b/chrome/test/data/extensions/samples/screenshot/screenshot.html @@ -0,0 +1,14 @@ +<html> +<script> +function setScreenshotUrl(url) { + document.getElementById('target').src = url; +} +</script> +<body> + Image here: + <p> + <img id="target" src="white.jpg" width="640" height="480"> + <p> + End image + </body> +</html> diff --git a/chrome/test/data/extensions/samples/screenshot/screenshot.js b/chrome/test/data/extensions/samples/screenshot/screenshot.js new file mode 100755 index 0000000..904c229 --- /dev/null +++ b/chrome/test/data/extensions/samples/screenshot/screenshot.js @@ -0,0 +1,23 @@ +function takeScreenshot() { + chrome.tabs.captureVisibleTab(null, function(img) { + var screenshotUrl = img; + var viewTabUrl = chrome.extension.getURL('screenshot.html'); + + chrome.tabs.create({url: viewTabUrl}, function(tab) { + var targetId = tab.id; + + chrome.tabs.onUpdated.addListener(function(tabId, changedProps) { + if (tabId == targetId && + changedProps.status == "complete") { + var views = chrome.self.getViews(); + for (var i = 0; i < views.length; i++) { + var view = views[i]; + if (view.location.href == viewTabUrl) { + view.setScreenshotUrl(screenshotUrl); + } + } + } + }); + }) + }); +};
\ No newline at end of file diff --git a/chrome/test/data/extensions/samples/screenshot/toolstrip.html b/chrome/test/data/extensions/samples/screenshot/toolstrip.html new file mode 100755 index 0000000..56c7450 --- /dev/null +++ b/chrome/test/data/extensions/samples/screenshot/toolstrip.html @@ -0,0 +1,10 @@ +<html> + <head> + <script src='screenshot.js' type='text/javascript' /> + </head> + <body> + <div onclick="takeScreenshot();" class="toolstrip-button"> + <span>Take Screenshot</span> + </div> + </body> +</html>
\ No newline at end of file |