Index: extensions/renderer/file_system_natives.cc |
diff --git a/extensions/renderer/file_system_natives.cc b/extensions/renderer/file_system_natives.cc |
index a06eec8cdd35de2a7cc30b80f18a75e2c3f93b3a..adb5165dfa1f88fa8dfa1867da44456bfa57b3a9 100644 |
--- a/extensions/renderer/file_system_natives.cc |
+++ b/extensions/renderer/file_system_natives.cc |
@@ -8,6 +8,7 @@ |
#include "extensions/common/constants.h" |
#include "extensions/renderer/script_context.h" |
+#include "extensions/renderer/v8_maybe_helpers.h" |
#include "storage/common/fileapi/file_system_types.h" |
#include "storage/common/fileapi/file_system_util.h" |
#include "third_party/WebKit/public/platform/WebString.h" |
@@ -91,8 +92,9 @@ void FileSystemNatives::GetFileEntry( |
DCHECK(args[4]->IsBoolean()); |
blink::WebDOMFileSystem::EntryType entry_type = |
- args[4]->BooleanValue() ? blink::WebDOMFileSystem::EntryTypeDirectory |
- : blink::WebDOMFileSystem::EntryTypeFile; |
+ args[4].As<v8::Boolean>()->Value() |
+ ? blink::WebDOMFileSystem::EntryTypeDirectory |
+ : blink::WebDOMFileSystem::EntryTypeFile; |
blink::WebLocalFrame* webframe = |
blink::WebLocalFrame::frameForContext(context()->v8_context()); |
@@ -117,11 +119,11 @@ void FileSystemNatives::CrackIsolatedFileSystemName( |
std::string filesystem_id; |
if (!storage::CrackIsolatedFileSystemName(filesystem_name, &filesystem_id)) |
return; |
+ if (filesystem_id.size() >= v8::String::kMaxLength) |
+ return; |
- args.GetReturnValue().Set(v8::String::NewFromUtf8(args.GetIsolate(), |
- filesystem_id.c_str(), |
- v8::String::kNormalString, |
- filesystem_id.size())); |
+ args.GetReturnValue().Set( |
+ ToV8String(args.GetIsolate(), filesystem_id.c_str())); |
} |
void FileSystemNatives::GetDOMError( |