diff options
author | jcivelli@chromium.org <jcivelli@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-09-26 17:26:16 +0000 |
---|---|---|
committer | jcivelli@chromium.org <jcivelli@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-09-26 17:26:16 +0000 |
commit | 3a605e80b401878e493ba82c4d5b58b2c47b11db (patch) | |
tree | fedd5d347828779466e65878e8c102a426ea3eb7 /chrome/renderer/extensions/extension_process_bindings.cc | |
parent | e99ca5111f19b5401f0e18e52a0ebbddc8a36f78 (diff) | |
download | chromium_src-3a605e80b401878e493ba82c4d5b58b2c47b11db.zip chromium_src-3a605e80b401878e493ba82c4d5b58b2c47b11db.tar.gz chromium_src-3a605e80b401878e493ba82c4d5b58b2c47b11db.tar.bz2 |
(Relanding this, exact same CL as the previous one.)
Adding the first one of the saveAs extension APIs.
The saveAsMHTML allows saving a tab as MHTML.
BUG=97306
TEST=Run the browser tests.
TBR=asargent,ahendrickson,jam
Review URL: http://codereview.chromium.org/8027001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@102750 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer/extensions/extension_process_bindings.cc')
-rw-r--r-- | chrome/renderer/extensions/extension_process_bindings.cc | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/chrome/renderer/extensions/extension_process_bindings.cc b/chrome/renderer/extensions/extension_process_bindings.cc index 0be7757..2b0485e 100644 --- a/chrome/renderer/extensions/extension_process_bindings.cc +++ b/chrome/renderer/extensions/extension_process_bindings.cc @@ -16,6 +16,7 @@ #include "base/memory/scoped_ptr.h" #include "base/string_number_conversions.h" #include "base/string_util.h" +#include "base/utf_string_conversions.h" #include "chrome/common/extensions/extension.h" #include "chrome/common/extensions/extension_action.h" #include "chrome/common/extensions/extension_constants.h" @@ -38,6 +39,7 @@ #include "content/renderer/render_view_visitor.h" #include "grit/common_resources.h" #include "grit/renderer_resources.h" +#include "third_party/WebKit/Source/WebKit/chromium/public/WebBlob.h" #include "third_party/WebKit/Source/WebKit/chromium/public/WebDocument.h" #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h" #include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h" @@ -196,6 +198,8 @@ class ExtensionImpl : public ExtensionBase { return v8::FunctionTemplate::New(GetLocalFileSystem); } else if (name->Equals(v8::String::New("DecodeJPEG"))) { return v8::FunctionTemplate::New(DecodeJPEG, v8::External::New(this)); + } else if (name->Equals(v8::String::New("CreateBlob"))) { + return v8::FunctionTemplate::New(CreateBlob, v8::External::New(this)); } return ExtensionBase::GetNativeFunction(name); @@ -354,6 +358,17 @@ class ExtensionImpl : public ExtensionBase { return bitmap_array; } + // Creates a Blob with the content of the specified file. + static v8::Handle<v8::Value> CreateBlob(const v8::Arguments& args) { + CHECK(args.Length() == 2); + CHECK(args[0]->IsString()); + CHECK(args[1]->IsInt32()); + WebKit::WebString path(UTF8ToUTF16(*v8::String::Utf8Value(args[0]))); + WebKit::WebBlob blob = + WebKit::WebBlob::createFromFile(path, args[1]->Int32Value()); + return blob.toV8Value(); + } + // Creates a new messaging channel to the tab with the given ID. static v8::Handle<v8::Value> OpenChannelToTab(const v8::Arguments& args) { // Get the current RenderView so that we can send a routed IPC message from |