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 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
127 | 127 |
128 const Extension* embedder_extension = ExtensionRegistry::Get(browser_context_) | 128 const Extension* embedder_extension = ExtensionRegistry::Get(browser_context_) |
129 ->enabled_extensions() | 129 ->enabled_extensions() |
130 .GetByID(embedder_extension_id); | 130 .GetByID(embedder_extension_id); |
131 // Ok for |embedder_extension| to be NULL, the embedder might be WebUI. | 131 // Ok for |embedder_extension| to be NULL, the embedder might be WebUI. |
132 | 132 |
133 CHECK(embedder_web_contents); | 133 CHECK(embedder_web_contents); |
134 int embedder_process_id = | 134 int embedder_process_id = |
135 embedder_web_contents->GetRenderProcessHost()->GetID(); | 135 embedder_web_contents->GetRenderProcessHost()->GetID(); |
136 | 136 |
| 137 const GURL& embedder_site_url = embedder_web_contents->GetLastCommittedURL(); |
137 Feature::Availability availability = feature->IsAvailableToContext( | 138 Feature::Availability availability = feature->IsAvailableToContext( |
138 embedder_extension, | 139 embedder_extension, |
139 process_map->GetMostLikelyContextType(embedder_extension, | 140 process_map->GetMostLikelyContextType(embedder_extension, |
140 embedder_process_id), | 141 embedder_process_id), |
141 embedder_web_contents->GetLastCommittedURL()); | 142 embedder_site_url); |
142 if (!availability.is_available()) { | 143 if (!availability.is_available()) { |
143 callback.Run(NULL); | 144 callback.Run(NULL); |
144 return; | 145 return; |
145 } | 146 } |
146 | 147 |
147 CreateWebContents(embedder_extension_id, | 148 CreateWebContents(embedder_extension_id, |
148 embedder_process_id, | 149 embedder_process_id, |
| 150 embedder_site_url, |
149 create_params, | 151 create_params, |
150 base::Bind(&GuestViewBase::CompleteInit, | 152 base::Bind(&GuestViewBase::CompleteInit, |
151 AsWeakPtr(), | 153 AsWeakPtr(), |
152 embedder_extension_id, | 154 embedder_extension_id, |
153 embedder_process_id, | 155 embedder_process_id, |
154 callback)); | 156 callback)); |
155 } | 157 } |
156 | 158 |
157 void GuestViewBase::InitWithWebContents( | 159 void GuestViewBase::InitWithWebContents( |
158 const std::string& embedder_extension_id, | 160 const std::string& embedder_extension_id, |
(...skipping 317 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
476 | 478 |
477 // static | 479 // static |
478 void GuestViewBase::RegisterGuestViewTypes() { | 480 void GuestViewBase::RegisterGuestViewTypes() { |
479 AppViewGuest::Register(); | 481 AppViewGuest::Register(); |
480 ExtensionOptionsGuest::Register(); | 482 ExtensionOptionsGuest::Register(); |
481 MimeHandlerViewGuest::Register(); | 483 MimeHandlerViewGuest::Register(); |
482 WebViewGuest::Register(); | 484 WebViewGuest::Register(); |
483 } | 485 } |
484 | 486 |
485 } // namespace extensions | 487 } // namespace extensions |
OLD | NEW |