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

Issue 3038027: Record received data in WebViewPlugin and replay it when loading the real plugin. (Closed)

Created:
10 years, 5 months ago by Bernhard Bauer
Modified:
9 years, 7 months ago
CC:
chromium-reviews, jam, darin-cc_chromium.org, brettw-cc_chromium.org
Base URL:
git://codf21.jail/chromium.git
Visibility:
Public.

Description

Record received data in WebViewPlugin and replay it when loading the real plugin. BUG=49686 TEST=Block all plugins, directly open a page that is displayed by a plugin (an SWF file, or a PDF if the plugin works), and click on the placeholder. The plugin should load normally. Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=54523

Patch Set 1 #

Patch Set 2 : Add DCHECKs #

Total comments: 2

Patch Set 3 : change data_ to a std::deque #

Total comments: 1

Patch Set 4 : . #

Unified diffs Side-by-side diffs Delta from patch set Stats (+20 lines, -9 lines) Patch
M webkit/glue/plugins/webview_plugin.h View 1 2 3 2 chunks +6 lines, -3 lines 0 comments Download
M webkit/glue/plugins/webview_plugin.cc View 1 2 3 3 chunks +14 lines, -6 lines 0 comments Download

Messages

Total messages: 10 (0 generated)
Bernhard Bauer
Please review.
10 years, 5 months ago (2010-07-26 17:18:08 UTC) #1
Bernhard Bauer
On 2010/07/26 17:18:08, Bernhard Bauer wrote: > Please review. ping?
10 years, 4 months ago (2010-07-30 17:40:13 UTC) #2
darin (slow to review)
http://codereview.chromium.org/3038027/diff/2001/3002 File webkit/glue/plugins/webview_plugin.cc (right): http://codereview.chromium.org/3038027/diff/2001/3002#newcode126 webkit/glue/plugins/webview_plugin.cc:126: response_.reset(new WebURLResponse(response)); WebURLResponse is itself a smart pointer. you ...
10 years, 4 months ago (2010-07-30 19:05:21 UTC) #3
Bernhard Bauer
On 2010/07/30 19:05:21, darin wrote: > http://codereview.chromium.org/3038027/diff/2001/3002 > File webkit/glue/plugins/webview_plugin.cc (right): > > http://codereview.chromium.org/3038027/diff/2001/3002#newcode126 > ...
10 years, 4 months ago (2010-07-30 21:06:24 UTC) #4
darin (slow to review)
http://codereview.chromium.org/3038027/diff/8001/9001 File webkit/glue/plugins/webview_plugin.cc (right): http://codereview.chromium.org/3038027/diff/8001/9001#newcode60 webkit/glue/plugins/webview_plugin.cc:60: plugin->didReceiveData(buf.get(), length); oh, hmm... when i suggested using std::deque, ...
10 years, 4 months ago (2010-07-30 22:18:26 UTC) #5
Bernhard Bauer
On 2010/07/30 22:18:26, darin wrote: > http://codereview.chromium.org/3038027/diff/8001/9001 > File webkit/glue/plugins/webview_plugin.cc (right): > > http://codereview.chromium.org/3038027/diff/8001/9001#newcode60 > ...
10 years, 4 months ago (2010-07-31 17:45:07 UTC) #6
darin (slow to review)
LGTM A traditional plugin could spool to disk and use a temporary file. Pepper plugins ...
10 years, 4 months ago (2010-07-31 23:14:13 UTC) #7
darin (slow to review)
Oh, one more thought: The tight didReceiveData loop may result in some significant "jank" as ...
10 years, 4 months ago (2010-07-31 23:15:56 UTC) #8
Bernhard Bauer
On 2010/07/31 23:15:56, darin wrote: > Oh, one more thought: > > The tight didReceiveData ...
10 years, 4 months ago (2010-08-02 15:34:35 UTC) #9
darin (slow to review)
10 years, 4 months ago (2010-08-02 16:55:26 UTC) #10
On Mon, Aug 2, 2010 at 8:34 AM, <bauerb@chromium.org> wrote:

> On 2010/07/31 23:15:56, darin wrote:
>
>> Oh, one more thought:
>>
>
>  The tight didReceiveData loop may result in some significant "jank" as the
>> main thread of WebKit is blocked until all of the plugin data is pushed
>> into
>> the plugin.  It may be a good idea to break it up with some PostTask calls
>> so that we preserve the responsiveness of the WebKit and plugin main
>> thread.
>>  This can be a follow-up CL.
>>
>
> How can I make sure the plugin still exists when the task is executed? The
> only
> thing coming to my mind is calling ref() on the WebPluginContainer and
> deref()
> afterwards, but that'd involve digging around in WebKit internals (because
> WebPluginContainer doesn't inherit from RefCounted, only
> WebPluginContainerImpl
> does) and seems too hackish to me.


This is a problem solved by ScopedRunnableMethodFactory<T>.

-Darin



>
>
> http://codereview.chromium.org/3038027/show
>

Powered by Google App Engine
This is Rietveld 408576698