OLD | NEW |
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 "extensions/browser/guest_view/guest_view_base.h" | 5 #include "extensions/browser/guest_view/guest_view_base.h" |
6 | 6 |
7 #include "base/lazy_instance.h" | 7 #include "base/lazy_instance.h" |
8 #include "base/strings/utf_string_conversions.h" | 8 #include "base/strings/utf_string_conversions.h" |
9 #include "content/public/browser/render_frame_host.h" | 9 #include "content/public/browser/render_frame_host.h" |
10 #include "content/public/browser/render_process_host.h" | 10 #include "content/public/browser/render_process_host.h" |
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
129 | 129 |
130 const Extension* embedder_extension = ExtensionRegistry::Get(browser_context_) | 130 const Extension* embedder_extension = ExtensionRegistry::Get(browser_context_) |
131 ->enabled_extensions() | 131 ->enabled_extensions() |
132 .GetByID(embedder_extension_id); | 132 .GetByID(embedder_extension_id); |
133 // Ok for |embedder_extension| to be NULL, the embedder might be WebUI. | 133 // Ok for |embedder_extension| to be NULL, the embedder might be WebUI. |
134 | 134 |
135 CHECK(embedder_web_contents); | 135 CHECK(embedder_web_contents); |
136 int embedder_process_id = | 136 int embedder_process_id = |
137 embedder_web_contents->GetRenderProcessHost()->GetID(); | 137 embedder_web_contents->GetRenderProcessHost()->GetID(); |
138 | 138 |
| 139 const GURL& embedder_site_url = embedder_web_contents->GetLastCommittedURL(); |
139 Feature::Availability availability = feature->IsAvailableToContext( | 140 Feature::Availability availability = feature->IsAvailableToContext( |
140 embedder_extension, | 141 embedder_extension, |
141 process_map->GetMostLikelyContextType(embedder_extension, | 142 process_map->GetMostLikelyContextType(embedder_extension, |
142 embedder_process_id), | 143 embedder_process_id), |
143 embedder_web_contents->GetLastCommittedURL()); | 144 embedder_site_url); |
144 if (!availability.is_available()) { | 145 if (!availability.is_available()) { |
145 // The derived class did not create a WebContents so this class serves no | 146 // The derived class did not create a WebContents so this class serves no |
146 // purpose. Let's self-destruct. | 147 // purpose. Let's self-destruct. |
147 delete this; | 148 delete this; |
148 callback.Run(NULL); | 149 callback.Run(NULL); |
149 return; | 150 return; |
150 } | 151 } |
151 | 152 |
152 CreateWebContents(embedder_extension_id, | 153 CreateWebContents(embedder_extension_id, |
153 embedder_process_id, | 154 embedder_process_id, |
| 155 embedder_site_url, |
154 create_params, | 156 create_params, |
155 base::Bind(&GuestViewBase::CompleteInit, | 157 base::Bind(&GuestViewBase::CompleteInit, |
156 AsWeakPtr(), | 158 AsWeakPtr(), |
157 embedder_extension_id, | 159 embedder_extension_id, |
158 embedder_process_id, | 160 embedder_process_id, |
159 callback)); | 161 callback)); |
160 } | 162 } |
161 | 163 |
162 void GuestViewBase::InitWithWebContents( | 164 void GuestViewBase::InitWithWebContents( |
163 const std::string& embedder_extension_id, | 165 const std::string& embedder_extension_id, |
(...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
489 | 491 |
490 // static | 492 // static |
491 void GuestViewBase::RegisterGuestViewTypes() { | 493 void GuestViewBase::RegisterGuestViewTypes() { |
492 AppViewGuest::Register(); | 494 AppViewGuest::Register(); |
493 ExtensionOptionsGuest::Register(); | 495 ExtensionOptionsGuest::Register(); |
494 MimeHandlerViewGuest::Register(); | 496 MimeHandlerViewGuest::Register(); |
495 WebViewGuest::Register(); | 497 WebViewGuest::Register(); |
496 } | 498 } |
497 | 499 |
498 } // namespace extensions | 500 } // namespace extensions |
OLD | NEW |