Index: content/browser/intents/intent_injector.cc |
diff --git a/content/browser/intents/intent_injector.cc b/content/browser/intents/intent_injector.cc |
index aaf55c014138fa06f6fa51b91d589aeb48227d23..06c1a8f5949c26ad8dc167d526b51fa2c449b8df 100644 |
--- a/content/browser/intents/intent_injector.cc |
+++ b/content/browser/intents/intent_injector.cc |
@@ -18,6 +18,7 @@ |
#include "content/common/intents_messages.h" |
#include "content/public/common/content_switches.h" |
#include "webkit/fileapi/file_system_util.h" |
+#include "webkit/fileapi/isolated_context.h" |
#include "webkit/glue/web_intent_data.h" |
#include "webkit/glue/web_intent_reply_data.h" |
@@ -91,10 +92,16 @@ void IntentInjector::RenderViewCreated(RenderViewHost* render_view_host) { |
} else if (source_intent_->data_type == |
webkit_glue::WebIntentData::FILESYSTEM) { |
const int child_id = render_view_host->GetProcess()->GetID(); |
+ std::vector<fileapi::IsolatedContext::FileInfo> files; |
+ const bool valid = |
+ fileapi::IsolatedContext::GetInstance()->GetRegisteredFileInfo( |
+ source_intent_->filesystem_id, &files); |
+ DCHECK(valid); |
+ DCHECK_EQ(1U, files.size()); |
ChildProcessSecurityPolicy* policy = |
ChildProcessSecurityPolicy::GetInstance(); |
- if (!policy->CanReadFile(child_id, source_intent_->root_path)) |
- policy->GrantReadFile(child_id, source_intent_->root_path); |
+ if (!policy->CanReadFile(child_id, files[0].path)) |
+ policy->GrantReadFile(child_id, files[0].path); |
policy->GrantReadFileSystem(child_id, source_intent_->filesystem_id); |
} |