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

Side by Side Diff: extensions/browser/guest_view/web_view/web_view_guest.cc

Issue 885493007: Refactoring: de-couple Extensions from "script injection System" [render side] : 1 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Revert key of IsolatedWorldMap as std::string. Created 5 years, 10 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 "extensions/browser/guest_view/web_view/web_view_guest.h" 5 #include "extensions/browser/guest_view/web_view/web_view_guest.h"
6 6
7 #include "base/message_loop/message_loop.h" 7 #include "base/message_loop/message_loop.h"
8 #include "base/strings/stringprintf.h" 8 #include "base/strings/stringprintf.h"
9 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
10 #include "content/public/browser/browser_context.h" 10 #include "content/public/browser/browser_context.h"
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 52
53 using base::UserMetricsAction; 53 using base::UserMetricsAction;
54 using content::RenderFrameHost; 54 using content::RenderFrameHost;
55 using content::ResourceType; 55 using content::ResourceType;
56 using content::WebContents; 56 using content::WebContents;
57 57
58 namespace extensions { 58 namespace extensions {
59 59
60 namespace { 60 namespace {
61 61
62 using WebViewKey = std::pair<int, int>;
63 using WebViewKeyToIDMap = std::map<WebViewKey, int>;
64 base::LazyInstance<WebViewKeyToIDMap> web_view_key_to_id_map =
65 LAZY_INSTANCE_INITIALIZER;
66
62 std::string WindowOpenDispositionToString( 67 std::string WindowOpenDispositionToString(
63 WindowOpenDisposition window_open_disposition) { 68 WindowOpenDisposition window_open_disposition) {
64 switch (window_open_disposition) { 69 switch (window_open_disposition) {
65 case IGNORE_ACTION: 70 case IGNORE_ACTION:
66 return "ignore"; 71 return "ignore";
67 case SAVE_TO_DISK: 72 case SAVE_TO_DISK:
68 return "save_to_disk"; 73 return "save_to_disk";
69 case CURRENT_TAB: 74 case CURRENT_TAB:
70 return "current_tab"; 75 return "current_tab";
71 case NEW_BACKGROUND_TAB: 76 case NEW_BACKGROUND_TAB:
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
174 // The partition name is user supplied value, which we have encoded when the 179 // The partition name is user supplied value, which we have encoded when the
175 // URL was created, so it needs to be decoded. 180 // URL was created, so it needs to be decoded.
176 *partition_name = 181 *partition_name =
177 net::UnescapeURLComponent(site.query(), net::UnescapeRule::NORMAL); 182 net::UnescapeURLComponent(site.query(), net::UnescapeRule::NORMAL);
178 return true; 183 return true;
179 } 184 }
180 185
181 // static 186 // static
182 const char WebViewGuest::Type[] = "webview"; 187 const char WebViewGuest::Type[] = "webview";
183 188
184 using WebViewKey = std::pair<int, int>;
185 using WebViewKeyToIDMap = std::map<WebViewKey, int>;
186 static base::LazyInstance<WebViewKeyToIDMap> web_view_key_to_id_map =
Devlin 2015/02/13 18:27:08 Since we're not really adding anything to these fi
Xi Han 2015/02/13 19:11:28 Ok, revert all the changes.
187 LAZY_INSTANCE_INITIALIZER;
188
189 // static 189 // static
190 int WebViewGuest::GetOrGenerateRulesRegistryID( 190 int WebViewGuest::GetOrGenerateRulesRegistryID(
191 int embedder_process_id, 191 int embedder_process_id,
192 int webview_instance_id) { 192 int web_view_instance_id) {
193 bool is_web_view = embedder_process_id && webview_instance_id; 193 if (!embedder_process_id || !web_view_instance_id)
194 if (!is_web_view)
195 return RulesRegistryService::kDefaultRulesRegistryID; 194 return RulesRegistryService::kDefaultRulesRegistryID;
196 195
197 WebViewKey key = std::make_pair(embedder_process_id, webview_instance_id); 196 WebViewKey key(embedder_process_id, web_view_instance_id);
198 auto it = web_view_key_to_id_map.Get().find(key); 197 WebViewKeyToIDMap& map = web_view_key_to_id_map.Get();
199 if (it != web_view_key_to_id_map.Get().end()) 198 auto it = map.find(key);
199 if (it != map.end())
200 return it->second; 200 return it->second;
201 201
202 auto rph = content::RenderProcessHost::FromID(embedder_process_id); 202 auto rph = content::RenderProcessHost::FromID(embedder_process_id);
203 int rules_registry_id = 203 int id = RulesRegistryService::Get(rph->GetBrowserContext())->
204 RulesRegistryService::Get(rph->GetBrowserContext())-> 204 GetNextRulesRegistryID();
205 GetNextRulesRegistryID(); 205 map[key] = id;
206 web_view_key_to_id_map.Get()[key] = rules_registry_id; 206 return id;
207 return rules_registry_id;
208 } 207 }
209 208
210 // static 209 // static
211 int WebViewGuest::GetViewInstanceId(WebContents* contents) { 210 int WebViewGuest::GetViewInstanceId(WebContents* contents) {
212 auto guest = FromWebContents(contents); 211 auto guest = FromWebContents(contents);
213 if (!guest) 212 if (!guest)
214 return guestview::kInstanceIDNone; 213 return guestview::kInstanceIDNone;
215 214
216 return guest->view_instance_id(); 215 return guest->view_instance_id();
217 } 216 }
(...skipping 1000 matching lines...) Expand 10 before | Expand all | Expand 10 after
1218 WebViewGuest::From(owner_web_contents()->GetRenderProcessHost()->GetID(), 1217 WebViewGuest::From(owner_web_contents()->GetRenderProcessHost()->GetID(),
1219 new_window_instance_id); 1218 new_window_instance_id);
1220 if (!guest) 1219 if (!guest)
1221 return; 1220 return;
1222 1221
1223 if (!allow) 1222 if (!allow)
1224 guest->Destroy(); 1223 guest->Destroy();
1225 } 1224 }
1226 1225
1227 } // namespace extensions 1226 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698