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
3 // found in the LICENSE file.
5 #include "extensions/browser/api/app_view/app_view_guest_internal_api.h"
7 #include "extensions/browser/guest_view/app_view/app_view_guest.h"
8 #include "extensions/common/api/app_view_guest_internal.h"
10 namespace extensions
{
12 namespace appview
= core_api::app_view_guest_internal
;
14 AppViewGuestInternalAttachFrameFunction::
15 AppViewGuestInternalAttachFrameFunction() {
18 bool AppViewGuestInternalAttachFrameFunction::RunAsync() {
19 scoped_ptr
<appview::AttachFrame::Params
> params(
20 appview::AttachFrame::Params::Create(*args_
));
21 EXTENSION_FUNCTION_VALIDATE(params
.get());
23 GURL url
= extension()->GetResourceURL(params
->url
);
24 EXTENSION_FUNCTION_VALIDATE(url
.is_valid());
26 return AppViewGuest::CompletePendingRequest(
27 browser_context(), url
, params
->guest_instance_id
, extension_id());
30 AppViewGuestInternalDenyRequestFunction::
31 AppViewGuestInternalDenyRequestFunction() {
34 bool AppViewGuestInternalDenyRequestFunction::RunAsync() {
35 scoped_ptr
<appview::DenyRequest::Params
> params(
36 appview::DenyRequest::Params::Create(*args_
));
37 EXTENSION_FUNCTION_VALIDATE(params
.get());
39 // Since the URL passed into AppViewGuest:::CompletePendingRequest is invalid,
40 // a new <appview> WebContents will not be created.
41 return AppViewGuest::CompletePendingRequest(
42 browser_context(), GURL(), params
->guest_instance_id
, extension_id());
45 } // namespace extensions