[Webkit-unassigned] [Bug 44505] [EFL] Missing plugins support for efl port

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Fri Aug 26 10:36:55 PDT 2011


https://bugs.webkit.org/show_bug.cgi?id=44505


Leandro Pereira <leandro at profusion.mobi> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
 Attachment #105367|review?, commit-queue?      |review-
               Flag|                            |




--- Comment #37 from Leandro Pereira <leandro at profusion.mobi>  2011-08-26 10:36:54 PST ---
(From update of attachment 105367)
View in context: https://bugs.webkit.org/attachment.cgi?id=105367&action=review

Informal r- for the reasons below:

> Source/WebCore/plugins/efl/PluginDataEfl.cpp:7
> +    Copyright (C) 2006, 2007 Apple Inc.  All rights reserved.
> +    Copyright (C) 2008 Trolltech ASA
> +    Copyright (C) 2008 Collabora Ltd. All rights reserved.
> +    Copyright (C) 2008 INdT - Instituto Nokia de Tecnologia
> +    Copyright (C) 2009-2010 ProFUSION embedded systems
> +    Copyright (C) 2009-2011 Samsung Electronics

Do we really need so many copyrights for such a simple/small file?

> Source/WebCore/plugins/efl/PluginDataEfl.cpp:12
> +    This library is free software; you can redistribute it and/or
> +    modify it under the terms of the GNU Library General Public
> +    License as published by the Free Software Foundation; either
> +    version 2 of the License, or (at your option) any later version.

Other files from this directory uses a different license. Is this intentional?

> Source/WebCore/plugins/efl/PluginPackageEfl.cpp:121
> +    if (m_isLoaded) {
> +        m_loadCount++;
> +        return true;
> +    }

Small nit: you could ditch m_isLoaded and just use m_loadCount instead.

> Source/WebCore/plugins/efl/PluginViewEfl.cpp:106
> +    if (event->type() == eventNames().mousemoveEvent
> +            || event->type() == eventNames().mouseoutEvent
> +            || event->type() == eventNames().mouseoverEvent) {

Minor nit: wouldn't a switch() statement be better here?

> Source/WebCore/plugins/efl/PluginViewEfl.cpp:139
> +    IntRect oldWindowRect = m_windowRect;
> +    IntRect oldClipRect = m_clipRect;

What are these used for?

> Source/WebCore/plugins/efl/PluginViewEfl.cpp:174
> +void PluginView::paint(GraphicsContext* context, const IntRect& rect)
> +{
> +    if (!m_isStarted) {
> +        paintMissingPluginIcon(context, rect);
> +        return;
> +    }

if (!m_fnord)
   paintFooBar();

> Source/WebCore/plugins/efl/PluginViewEfl.cpp:188
> +    return;

Useless return statement.

> Source/WebCore/plugins/efl/PluginViewEfl.cpp:224
> +    if (bytesRead <= 0)
> +        return NPERR_FILE_NOT_FOUND;

NPERR_FILE_NOT_FOUND should be returned if the file is missing or is invalid; in this case, isn't NPERR_NO_DATA more suitable?

> Source/WebCore/plugins/efl/PluginViewEfl.cpp:236
> +        *static_cast<uint32_t*>(value) = 0;
> +        *result = NPERR_NO_ERROR;

Are value and result guaranteed to be non-null?

> Source/WebCore/plugins/efl/PluginViewEfl.cpp:267
> +        *static_cast<void **>(value) = static_cast<Display*>(ecore_x_display_get());
> +        *result = NPERR_NO_ERROR;

Are value and result guaranteed to be non-null?

Calling ecore_x_display_get() will most likely crash WebKit if it is being run on a framebuffer or Ecore_Evas_Buffer. Since the engine can be chosen in runtime, please take care of it. (FWIW, DumpRenderTree uses Ecore_Evas_Buffer but plugin tests wouldn't run because of this function call.)

> Source/WebCore/plugins/efl/PluginViewEfl.cpp:287
> +        void** v = (void**)value;
> +        *v = windowScriptObject;

Minor nit: variable 'v' can be removed if you do something along the lines of (perhaps with C++-style cast?): *(void **)value = (void*)windowScriptObject;

> Source/WebCore/plugins/efl/PluginViewEfl.cpp:309
> +        void** v = (void**)value;
> +        *v = pluginScriptObject;

Same as above.

> Source/WebCore/plugins/efl/PluginViewEfl.cpp:328
> +    case NPNVToolkit:
> +        if (m_plugin->quirks().contains(PluginQuirkRequiresGtkToolKit)) {
> +            *((uint32_t *)value) = 2;
> +            *result = NPERR_NO_ERROR;

What '2' means here?

> Source/WebCore/plugins/efl/PluginViewEfl.cpp:334
> +        return false;
> +        // fall through
> +    default:
> +        return false;

Remove either the comment (which should be a proper sentence anyway) or the return statement.

> Source/WebCore/plugins/efl/PluginViewEfl.cpp:354
> +    IntRect r(rect->left, rect->top, rect->right - rect->left, rect->bottom - rect->top);
> +
> +    invalidateRect(r);

Minor nit: invalidateRect(IntRect(rect->left, ...));

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.



More information about the webkit-unassigned mailing list