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

Side by Side Diff: chrome/browser/extensions/api/guest_view/guest_view_internal_api.cc

Issue 336283002: Remove GuestWebContentsCreated (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@simplify_creation
Patch Set: Fixed lifetime Created 6 years, 6 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/extensions/api/guest_view/guest_view_internal_api.h" 5 #include "chrome/browser/extensions/api/guest_view/guest_view_internal_api.h"
6 6
7 #include "chrome/browser/guest_view/guest_view_base.h"
7 #include "chrome/browser/guest_view/guest_view_manager.h" 8 #include "chrome/browser/guest_view/guest_view_manager.h"
8 #include "chrome/browser/profiles/profile.h" 9 #include "chrome/browser/profiles/profile.h"
9 #include "chrome/common/extensions/api/guest_view_internal.h" 10 #include "chrome/common/extensions/api/guest_view_internal.h"
11 #include "content/public/browser/render_process_host.h"
12 #include "content/public/browser/render_view_host.h"
10 #include "extensions/common/permissions/permissions_data.h" 13 #include "extensions/common/permissions/permissions_data.h"
11 14
12 namespace extensions { 15 namespace extensions {
13 16
14 GuestViewInternalAllocateInstanceIdFunction:: 17 GuestViewInternalCreateGuestFunction::
15 GuestViewInternalAllocateInstanceIdFunction() { 18 GuestViewInternalCreateGuestFunction() {
16 } 19 }
17 20
18 bool GuestViewInternalAllocateInstanceIdFunction::RunAsync() { 21 bool GuestViewInternalCreateGuestFunction::RunAsync() {
19 EXTENSION_FUNCTION_VALIDATE(!args_->GetSize()); 22 std::string view_type;
lazyboy 2014/06/17 23:46:45 Since this function has params now, use extensions
Fady Samuel 2014/06/18 21:08:33 No, can't because I'd like to keep the dictionary
lazyboy 2014/06/19 16:17:31 Ok.
23 EXTENSION_FUNCTION_VALIDATE(args_->GetString(0, &view_type));
24
25 base::DictionaryValue* create_params;
26 EXTENSION_FUNCTION_VALIDATE(args_->GetDictionary(1, &create_params));
20 27
21 // Check if we have "webview" permission. 28 // Check if we have "webview" permission.
22 CHECK(GetExtension()->permissions_data()->HasAPIPermission( 29 CHECK(GetExtension()->permissions_data()->HasAPIPermission(
23 APIPermission::kWebView)); 30 APIPermission::kWebView));
24 31
25 int instanceId = GuestViewManager::FromBrowserContext(browser_context()) 32 GuestViewManager* guest_view_manager =
26 ->GetNextInstanceID(); 33 GuestViewManager::FromBrowserContext(browser_context());
27 SetResult(base::Value::CreateIntegerValue(instanceId)); 34
35 content::WebContents* guest_web_contents =
36 guest_view_manager->CreateGuest(view_type,
37 extension_id(),
38 render_view_host()->GetProcess(),
39 *create_params);
40 if (!guest_web_contents)
41 return false;
42
43 GuestViewBase* guest = GuestViewBase::FromWebContents(guest_web_contents);
44 SetResult(base::Value::CreateIntegerValue(guest->GetGuestInstanceID()));
28 SendResponse(true); 45 SendResponse(true);
29 return true; 46 return true;
30 } 47 }
31 48
32 } // namespace extensions 49 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698