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

Side by Side Diff: content/renderer/browser_plugin/browser_plugin.cc

Issue 10829225: Browser Plugin: Add HTML5-like postMessage support (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: No need to rename addEventListener/removeEventListener Created 8 years, 2 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "content/renderer/browser_plugin/browser_plugin.h" 5 #include "content/renderer/browser_plugin/browser_plugin.h"
6 6
7 #include "base/message_loop.h" 7 #include "base/message_loop.h"
8 #include "base/string_util.h" 8 #include "base/string_util.h"
9 #if defined (OS_WIN) 9 #if defined (OS_WIN)
10 #include "base/sys_info.h" 10 #include "base/sys_info.h"
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
65 : instance_id_(instance_id), 65 : instance_id_(instance_id),
66 render_view_(render_view), 66 render_view_(render_view),
67 container_(NULL), 67 container_(NULL),
68 damage_buffer_(NULL), 68 damage_buffer_(NULL),
69 sad_guest_(NULL), 69 sad_guest_(NULL),
70 guest_crashed_(false), 70 guest_crashed_(false),
71 resize_pending_(false), 71 resize_pending_(false),
72 navigate_src_sent_(false), 72 navigate_src_sent_(false),
73 process_id_(-1), 73 process_id_(-1),
74 persist_storage_(false), 74 persist_storage_(false),
75 guest_routing_id_(MSG_ROUTING_NONE),
75 visible_(true) { 76 visible_(true) {
76 BrowserPluginManager::Get()->AddBrowserPlugin(instance_id, this); 77 BrowserPluginManager::Get()->AddBrowserPlugin(instance_id, this);
77 bindings_.reset(new BrowserPluginBindings(this)); 78 bindings_.reset(new BrowserPluginBindings(this));
78 79
79 ParseAttributes(params); 80 ParseAttributes(params);
80 } 81 }
81 82
82 BrowserPlugin::~BrowserPlugin() { 83 BrowserPlugin::~BrowserPlugin() {
83 if (damage_buffer_) 84 if (damage_buffer_)
84 FreeDamageBuffer(); 85 FreeDamageBuffer();
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 // guest's |src| to empty value, resize and then set the |src| to a 134 // guest's |src| to empty value, resize and then set the |src| to a
134 // non-empty value). 135 // non-empty value).
135 // Additionally, once this instance has navigated, the storage partition 136 // Additionally, once this instance has navigated, the storage partition
136 // cannot be changed, so this value is used for enforcing this. 137 // cannot be changed, so this value is used for enforcing this.
137 navigate_src_sent_ = true; 138 navigate_src_sent_ = true;
138 } 139 }
139 src_ = src; 140 src_ = src;
140 guest_crashed_ = false; 141 guest_crashed_ = false;
141 } 142 }
142 143
144 NPObject* BrowserPlugin::GetContentWindow() const {
145 if (guest_routing_id_ == MSG_ROUTING_NONE)
146 return NULL;
147 RenderViewImpl* guest_render_view = static_cast<RenderViewImpl*>(
148 ChildThread::current()->ResolveRoute(guest_routing_id_));
Charlie Reis 2012/10/12 00:31:43 nit: wrong indent.
Fady Samuel 2012/10/12 18:07:53 Done.
149 if (!guest_render_view)
150 return NULL;
151 WebKit::WebFrame* guest_frame = guest_render_view->GetWebView()->mainFrame();
152 return guest_frame->windowObject();
Charlie Reis 2012/10/12 00:31:43 This is beyond my knowledge. Is it safe to return
Fady Samuel 2012/10/12 18:07:53 I will ask abarth@ to at a look at BrowserPlugin::
153 }
154
143 std::string BrowserPlugin::GetPartitionAttribute() const { 155 std::string BrowserPlugin::GetPartitionAttribute() const {
144 std::string value; 156 std::string value;
145 if (persist_storage_) 157 if (persist_storage_)
146 value.append(kPersistPrefix); 158 value.append(kPersistPrefix);
147 159
148 value.append(storage_partition_id_); 160 value.append(storage_partition_id_);
149 return value; 161 return value;
150 } 162 }
151 163
152 bool BrowserPlugin::SetPartitionAttribute(const std::string& partition_id, 164 bool BrowserPlugin::SetPartitionAttribute(const std::string& partition_id,
(...skipping 309 matching lines...) Expand 10 before | Expand all | Expand 10 after
462 frame->callFunctionEvenIfScriptDisabled(*it, v8::Object::New(), 1, &val); 474 frame->callFunctionEvenIfScriptDisabled(*it, v8::Object::New(), 1, &val);
463 } 475 }
464 } 476 }
465 477
466 void BrowserPlugin::AdvanceFocus(bool reverse) { 478 void BrowserPlugin::AdvanceFocus(bool reverse) {
467 // We do not have a RenderView when we are testing. 479 // We do not have a RenderView when we are testing.
468 if (render_view_) 480 if (render_view_)
469 render_view_->GetWebView()->advanceFocus(reverse); 481 render_view_->GetWebView()->advanceFocus(reverse);
470 } 482 }
471 483
484 void BrowserPlugin::GuestContentWindowReady(int guest_routing_id) {
485 DCHECK(guest_routing_id != MSG_ROUTING_NONE);
486 guest_routing_id_ = guest_routing_id;
487 }
488
472 void BrowserPlugin::SetAcceptTouchEvents(bool accept) { 489 void BrowserPlugin::SetAcceptTouchEvents(bool accept) {
473 if (container()) 490 if (container())
474 container()->setIsAcceptingTouchEvents(accept); 491 container()->setIsAcceptingTouchEvents(accept);
475 } 492 }
476 493
477 bool BrowserPlugin::HasListeners(const std::string& event_name) { 494 bool BrowserPlugin::HasListeners(const std::string& event_name) {
478 return event_listener_map_.find(event_name) != event_listener_map_.end(); 495 return event_listener_map_.find(event_name) != event_listener_map_.end();
479 } 496 }
480 497
481 bool BrowserPlugin::AddEventListener(const std::string& event_name, 498 bool BrowserPlugin::AddEventListener(const std::string& event_name,
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after
750 void* notify_data) { 767 void* notify_data) {
751 } 768 }
752 769
753 void BrowserPlugin::didFailLoadingFrameRequest( 770 void BrowserPlugin::didFailLoadingFrameRequest(
754 const WebKit::WebURL& url, 771 const WebKit::WebURL& url,
755 void* notify_data, 772 void* notify_data,
756 const WebKit::WebURLError& error) { 773 const WebKit::WebURLError& error) {
757 } 774 }
758 775
759 } // namespace content 776 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698