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

Side by Side Diff: components/plugins/renderer/plugin_placeholder.cc

Issue 144803003: Fix issue that IME can't be enabled when set Plugin mode to "Click to play". (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Update the fixing with a focused_ flag in WebViewPlugin Created 6 years, 11 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "components/plugins/renderer/plugin_placeholder.h" 5 #include "components/plugins/renderer/plugin_placeholder.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/json/string_escape.h" 9 #include "base/json/string_escape.h"
10 #include "base/strings/string_piece.h" 10 #include "base/strings/string_piece.h"
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
77 container->setPlugin(new_plugin); 77 container->setPlugin(new_plugin);
78 // Save the element in case the plug-in is removed from the page during 78 // Save the element in case the plug-in is removed from the page during
79 // initialization. 79 // initialization.
80 WebElement element = container->element(); 80 WebElement element = container->element();
81 if (!new_plugin->initialize(container)) { 81 if (!new_plugin->initialize(container)) {
82 // We couldn't initialize the new plug-in. Restore the old one and abort. 82 // We couldn't initialize the new plug-in. Restore the old one and abort.
83 container->setPlugin(plugin_); 83 container->setPlugin(plugin_);
84 return; 84 return;
85 } 85 }
86 86
87 // We need to transfer the |focused_| to new plugin after it loaded.
Bernhard Bauer 2014/01/25 14:36:37 Move this down. After ReplayReceivedData() seems t
Ruiyi Luo 2014/01/26 09:40:28 Agree with you. Merging it with ReplayReceivedDat
88 if (plugin_->hasFocus()) {
89 new_plugin->updateFocus(true);
90 }
91
87 // The plug-in has been removed from the page. Destroy the old plug-in. We 92 // The plug-in has been removed from the page. Destroy the old plug-in. We
88 // will be destroyed as soon as V8 garbage collects us. 93 // will be destroyed as soon as V8 garbage collects us.
89 if (!element.pluginContainer()) { 94 if (!element.pluginContainer()) {
90 plugin_->destroy(); 95 plugin_->destroy();
91 return; 96 return;
92 } 97 }
93 98
94 // During initialization, the new plug-in might have replaced itself in turn 99 // During initialization, the new plug-in might have replaced itself in turn
95 // with another plug-in. Make sure not to use the passed in |new_plugin| after 100 // with another plug-in. Make sure not to use the passed in |new_plugin| after
96 // this point. 101 // this point.
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
243 identifier_ = identifier; 248 identifier_ = identifier;
244 } 249 }
245 250
246 blink::WebFrame* PluginPlaceholder::GetFrame() { return frame_; } 251 blink::WebFrame* PluginPlaceholder::GetFrame() { return frame_; }
247 252
248 const blink::WebPluginParams& PluginPlaceholder::GetPluginParams() const { 253 const blink::WebPluginParams& PluginPlaceholder::GetPluginParams() const {
249 return plugin_params_; 254 return plugin_params_;
250 } 255 }
251 256
252 } // namespace plugins 257 } // namespace plugins
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698