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 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
101 } | 101 } |
102 | 102 |
103 void GuestViewBase::Init(const std::string& embedder_extension_id, | 103 void GuestViewBase::Init(const std::string& embedder_extension_id, |
104 content::WebContents* embedder_web_contents, | 104 content::WebContents* embedder_web_contents, |
105 const base::DictionaryValue& create_params, | 105 const base::DictionaryValue& create_params, |
106 const WebContentsCreatedCallback& callback) { | 106 const WebContentsCreatedCallback& callback) { |
107 if (initialized_) | 107 if (initialized_) |
108 return; | 108 return; |
109 initialized_ = true; | 109 initialized_ = true; |
110 | 110 |
111 extensions::Feature* feature = | 111 Feature* feature = |
112 extensions::FeatureProvider::GetAPIFeatures()->GetFeature( | 112 FeatureProvider::GetAPIFeatures()->GetFeature( |
Fady Samuel
2014/08/12 21:25:30
Move to previous line?
Xi Han
2014/08/12 21:53:48
Done.
| |
113 GetAPINamespace()); | 113 GetAPINamespace()); |
114 CHECK(feature); | 114 CHECK(feature); |
115 | 115 |
116 extensions::ProcessMap* process_map = | 116 ProcessMap* process_map = ProcessMap::Get(browser_context()); |
117 extensions::ProcessMap::Get(browser_context()); | |
118 CHECK(process_map); | 117 CHECK(process_map); |
119 | 118 |
120 const extensions::Extension* embedder_extension = | 119 const Extension* embedder_extension = |
121 extensions::ExtensionRegistry::Get(browser_context_) | 120 ExtensionRegistry::Get(browser_context_) |
Fady Samuel
2014/08/12 21:25:30
Move to previous line?
Xi Han
2014/08/12 21:53:49
Done.
| |
122 ->enabled_extensions() | 121 ->enabled_extensions() |
123 .GetByID(embedder_extension_id); | 122 .GetByID(embedder_extension_id); |
124 int embedder_process_id = | 123 int embedder_process_id = |
125 embedder_web_contents->GetRenderProcessHost()->GetID(); | 124 embedder_web_contents->GetRenderProcessHost()->GetID(); |
126 | 125 |
127 extensions::Feature::Availability availability = | 126 Feature::Availability availability = |
128 feature->IsAvailableToContext( | 127 feature->IsAvailableToContext( |
129 embedder_extension, | 128 embedder_extension, |
130 process_map->GetMostLikelyContextType(embedder_extension, | 129 process_map->GetMostLikelyContextType(embedder_extension, |
131 embedder_process_id), | 130 embedder_process_id), |
132 embedder_web_contents->GetLastCommittedURL()); | 131 embedder_web_contents->GetLastCommittedURL()); |
133 if (!availability.is_available()) { | 132 if (!availability.is_available()) { |
134 callback.Run(NULL); | 133 callback.Run(NULL); |
135 return; | 134 return; |
136 } | 135 } |
137 | 136 |
(...skipping 259 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
397 if (!in_extension()) { | 396 if (!in_extension()) { |
398 NOTREACHED(); | 397 NOTREACHED(); |
399 return; | 398 return; |
400 } | 399 } |
401 | 400 |
402 if (!attached()) { | 401 if (!attached()) { |
403 pending_events_.push_back(linked_ptr<Event>(event_ptr.release())); | 402 pending_events_.push_back(linked_ptr<Event>(event_ptr.release())); |
404 return; | 403 return; |
405 } | 404 } |
406 | 405 |
407 extensions::EventFilteringInfo info; | 406 EventFilteringInfo info; |
408 info.SetInstanceID(view_instance_id_); | 407 info.SetInstanceID(view_instance_id_); |
409 scoped_ptr<base::ListValue> args(new base::ListValue()); | 408 scoped_ptr<base::ListValue> args(new base::ListValue()); |
410 args->Append(event->GetArguments().release()); | 409 args->Append(event->GetArguments().release()); |
411 | 410 |
412 extensions::EventRouter::DispatchEvent( | 411 EventRouter::DispatchEvent( |
413 embedder_web_contents_, | 412 embedder_web_contents_, |
414 browser_context_, | 413 browser_context_, |
415 embedder_extension_id_, | 414 embedder_extension_id_, |
416 event->name(), | 415 event->name(), |
417 args.Pass(), | 416 args.Pass(), |
418 extensions::EventRouter::USER_GESTURE_UNKNOWN, | 417 EventRouter::USER_GESTURE_UNKNOWN, |
419 info); | 418 info); |
420 } | 419 } |
421 | 420 |
422 void GuestViewBase::SendQueuedEvents() { | 421 void GuestViewBase::SendQueuedEvents() { |
423 if (!attached()) | 422 if (!attached()) |
424 return; | 423 return; |
425 while (!pending_events_.empty()) { | 424 while (!pending_events_.empty()) { |
426 linked_ptr<Event> event_ptr = pending_events_.front(); | 425 linked_ptr<Event> event_ptr = pending_events_.front(); |
427 pending_events_.pop_front(); | 426 pending_events_.pop_front(); |
428 DispatchEventToEmbedder(event_ptr.release()); | 427 DispatchEventToEmbedder(event_ptr.release()); |
(...skipping 12 matching lines...) Expand all Loading... | |
441 return; | 440 return; |
442 } | 441 } |
443 InitWithWebContents(embedder_extension_id, | 442 InitWithWebContents(embedder_extension_id, |
444 embedder_render_process_id, | 443 embedder_render_process_id, |
445 guest_web_contents); | 444 guest_web_contents); |
446 callback.Run(guest_web_contents); | 445 callback.Run(guest_web_contents); |
447 } | 446 } |
448 | 447 |
449 // static | 448 // static |
450 void GuestViewBase::RegisterGuestViewTypes() { | 449 void GuestViewBase::RegisterGuestViewTypes() { |
451 extensions::ExtensionsAPIClient::Get()->RegisterGuestViewTypes(); | 450 ExtensionsAPIClient::Get()->RegisterGuestViewTypes(); |
452 } | 451 } |
453 | 452 |
454 } // namespace extensions | 453 } // namespace extensions |
OLD | NEW |