Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1357)

Unified Diff: chrome/browser/guest_view/app_view/app_view_guest.cc

Issue 460133002: Allow passing parameters within appview (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Renamed params to data Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/guest_view/app_view/app_view_guest.cc
diff --git a/chrome/browser/guest_view/app_view/app_view_guest.cc b/chrome/browser/guest_view/app_view/app_view_guest.cc
index 66f46c241004aa2836a14383356b61989d4a15ad..6aadc186b428dc81ceb8acacb0ea2fc5daa6a24d 100644
--- a/chrome/browser/guest_view/app_view/app_view_guest.cc
+++ b/chrome/browser/guest_view/app_view/app_view_guest.cc
@@ -151,6 +151,12 @@ void AppViewGuest::CreateWebContents(
return;
}
+ const base::DictionaryValue* data = NULL;
+ if (!create_params.GetDictionary(appview::kData, &data)) {
+ callback.Run(NULL);
+ return;
+ }
+
ExtensionService* service =
ExtensionSystem::Get(browser_context())->extension_service();
const Extension* guest_extension = service->GetExtensionById(app_id, false);
@@ -175,9 +181,11 @@ void AppViewGuest::CreateWebContents(
if (queue->ShouldEnqueueTask(browser_context(), guest_extension)) {
queue->AddPendingTask(browser_context(),
guest_extension->id(),
- base::Bind(&AppViewGuest::LaunchAppAndFireEvent,
- weak_ptr_factory_.GetWeakPtr(),
- callback));
+ base::Bind(
+ &AppViewGuest::LaunchAppAndFireEvent,
+ weak_ptr_factory_.GetWeakPtr(),
+ base::Passed(make_scoped_ptr(data->DeepCopy())),
+ callback));
return;
}
@@ -186,7 +194,7 @@ void AppViewGuest::CreateWebContents(
ExtensionHost* host =
process_manager->GetBackgroundHostForExtension(guest_extension->id());
DCHECK(host);
- LaunchAppAndFireEvent(callback, host);
+ LaunchAppAndFireEvent(make_scoped_ptr(data->DeepCopy()), callback, host);
}
void AppViewGuest::DidAttachToEmbedder() {
@@ -228,6 +236,7 @@ void AppViewGuest::CompleteCreateWebContents(
}
void AppViewGuest::LaunchAppAndFireEvent(
+ scoped_ptr<base::DictionaryValue> data,
const WebContentsCreatedCallback& callback,
ExtensionHost* extension_host) {
ExtensionSystem* system = ExtensionSystem::Get(browser_context());
@@ -242,6 +251,7 @@ void AppViewGuest::LaunchAppAndFireEvent(
scoped_ptr<base::DictionaryValue> embed_request(new base::DictionaryValue());
embed_request->SetInteger(appview::kGuestInstanceID, GetGuestInstanceID());
embed_request->SetString(appview::kEmbedderID, embedder_extension_id());
+ embed_request->Set(appview::kData, data.release());
AppRuntimeEventRouter::DispatchOnEmbedRequestedEvent(
browser_context(), embed_request.Pass(), extension_host->extension());
}
« no previous file with comments | « chrome/browser/guest_view/app_view/app_view_guest.h ('k') | chrome/renderer/resources/extensions/app_view.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698