Chromium Code Reviews| Index: chrome/browser/guest_view/guest_view_base.cc |
| diff --git a/chrome/browser/guest_view/guest_view_base.cc b/chrome/browser/guest_view/guest_view_base.cc |
| index 5e4ebab8e8250d3ab47342e678db1eac084268b5..4681228c6bc1f1bf2ee7d0be9877c8eff1837823 100644 |
| --- a/chrome/browser/guest_view/guest_view_base.cc |
| +++ b/chrome/browser/guest_view/guest_view_base.cc |
| @@ -18,6 +18,8 @@ |
| #include "content/public/browser/web_contents.h" |
| #include "content/public/common/url_constants.h" |
| #include "extensions/browser/event_router.h" |
| +#include "extensions/browser/extension_registry.h" |
| +#include "extensions/common/features/feature.h" |
| #include "third_party/WebKit/public/web/WebInputEvent.h" |
| using content::WebContents; |
| @@ -96,16 +98,30 @@ GuestViewBase::GuestViewBase(content::BrowserContext* browser_context, |
| weak_ptr_factory_(this) { |
| } |
| -void GuestViewBase::Init( |
| - const std::string& embedder_extension_id, |
| - int embedder_render_process_id, |
| - const base::DictionaryValue& create_params, |
| - const WebContentsCreatedCallback& callback) { |
| +void GuestViewBase::Init(const std::string& embedder_extension_id, |
| + int embedder_render_process_id, |
| + content::WebContents* web_contents, |
| + const base::DictionaryValue& create_params, |
| + const WebContentsCreatedCallback& callback) { |
| if (initialized_) |
| return; |
| initialized_ = true; |
| - if (!CanEmbedderUseGuestView(embedder_extension_id)) { |
| + extensions::Feature* feature = GetFeature(); |
| + CHECK(feature); |
| + |
| + const extensions::Extension* embedder_extension = |
| + extensions::ExtensionRegistry::Get(browser_context_) |
| + ->enabled_extensions() |
| + .GetByID(embedder_extension_id); |
| + |
| + extensions::Feature::Availability availability = |
| + feature->IsAvailableToContext( |
| + embedder_extension, |
| + // TODO: determine the correct context type from the process ID. |
|
not at google - send to devlin
2014/07/31 22:07:45
There is a CL I need to write before being able to
|
| + extensions::Feature::BLESSED_EXTENSION_CONTEXT, |
| + web_contents->GetLastCommittedURL()); |
| + if (!availability.is_available()) { |
| callback.Run(NULL); |
| return; |
| } |