| Index: content/renderer/browser_plugin/browser_plugin.cc
|
| diff --git a/content/renderer/browser_plugin/browser_plugin.cc b/content/renderer/browser_plugin/browser_plugin.cc
|
| index 5cad47f19903b37323585f947ac3769c4e8105a1..fcd96f4e0df1fa2e09a5c041435f83e4288131d6 100644
|
| --- a/content/renderer/browser_plugin/browser_plugin.cc
|
| +++ b/content/renderer/browser_plugin/browser_plugin.cc
|
| @@ -60,6 +60,8 @@ BrowserPlugin::BrowserPlugin(RenderViewImpl* render_view,
|
| visible_(true),
|
| auto_navigate_(auto_navigate),
|
| mouse_locked_(false),
|
| + attach_called_(false),
|
| + seen_src_(false),
|
| browser_plugin_manager_(render_view->GetBrowserPluginManager()),
|
| embedder_frame_url_(frame->document().url()),
|
| weak_ptr_factory_(this) {
|
| @@ -265,6 +267,13 @@ void BrowserPlugin::UpdateGuestAutoSizeState(bool auto_size_enabled) {
|
| resize_guest_params));
|
| }
|
|
|
| +void BrowserPlugin::AttachToPlugin(
|
| + int instance_id) {
|
| + attach_called_ = true;
|
| + pending_instance_id_ = instance_id;
|
| + MaybeAttach();
|
| +}
|
| +
|
| void BrowserPlugin::Attach(int guest_instance_id,
|
| scoped_ptr<base::DictionaryValue> extra_params) {
|
| CHECK(guest_instance_id != browser_plugin::kInstanceIDNone);
|
| @@ -860,9 +869,20 @@ void BrowserPlugin::didReceiveData(const char* data, int data_length) {
|
| }
|
|
|
| void BrowserPlugin::didFinishLoading() {
|
| + printf("html_string_: %s\n", html_string_.c_str());
|
| if (auto_navigate_) {
|
| - // TODO(lazyboy): Make |auto_navigate_| stuff work.
|
| - UpdateDOMAttribute(content::browser_plugin::kAttributeSrc, html_string_);
|
| + seen_src_ = true;
|
| + MaybeAttach();
|
| + }
|
| +}
|
| +
|
| +void BrowserPlugin::MaybeAttach() {
|
| + printf("MaybeAttach: seen_src_ = %d, attach_called_: %d, pending: %d\n",
|
| + seen_src_, attach_called_, pending_instance_id_);
|
| + if (seen_src_ && attach_called_) {
|
| + base::DictionaryValue* extra_params = new base::DictionaryValue();
|
| + extra_params->SetString("src", html_string_);
|
| + Attach(pending_instance_id_, make_scoped_ptr(extra_params));
|
| }
|
| }
|
|
|
|
|