[webkit-dev] WebKit image rendering performance

2012-09-11 Thread Klemen Slavič
Hello,

First time poster. While I admit I haven't worked on WebKit code (yet), I'm
very familiar with its workings across different implementations (desktop,
mobile and otherwise).

In my research regarding WebKit rendering performance, I've stumbled upon
an interesting artefact while animating spritesheet-based image animations.
I've written up a an article on the effects and metrics, including a
minimal test case to help demonstrate the effects on various
implementations:

http://gist.io/3639830

I remember reading somewhere in the WebKit archives (messages dated at
least one year ago) about keeping render objects removed from the tree by
caching them according to their URI, but have since been unable to locate
that specific message. From what I understand, the effects described in the
document seem to match up exactly with what I'm assuming is happening
inside the engine and according to Levi Weintraub's high-level description
of the rendering engine.

I would greatly appreciate any feedback on the document, to help optimise
my approach when dealing with graphically intensive games and applications.
I wouldn't mind getting my hands dirty with the source if someone can point
me in the right direction.

Thanks,

-Klemen

-- 
*http://about.me/klemen.slavic
*
*It's who I am.*
*It's what I do.*
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Adding reverse flag to Widget::SetFocus?

2012-09-11 Thread Fady Samuel
Hi Youifumi,

I'm a little bit confused about what you did. It seems like youalways
select the first subelement in your elemnt.

void DateTimeEditElement::focusByOwner()
{
if (DateTimeFieldElement* field = fieldAt(0))
field-focus();
}

I don't understand how Shift+Tab works in your code?

Thanks,

Fady

On Mon, Sep 10, 2012 at 9:39 PM, Yoshifumi Inoue yo...@google.com wrote:

 Hi Fady,

 I have same experience about focus in internal element within container
 element.  I tried to do same thing for multiple fields time input UI for
 input type=time. In the implementation, fields are implemented in shadow
 DOM hosted by input element.
 We call fields are DateTimeFieldElement and container for them as
 DateTimeEditElement.

 On first implementation, DateTimeEditElement controlled focus. When input
 element focused, DateTimeEditElement sets the first field. It worked fine
 except for Shift+Tab.
 http://trac.webkit.org/changeset/125263

 I studied FocusController and EventHandler::defaultTabEventHandler.

 http://trac.webkit.org/browser/trunk/Source/WebCore/page/FocusController.cpp

 http://trac.webkit.org/browser/trunk/Source/WebCore/page/EventHandler.cpp

 I thought two options:
 1. Factor out defaultTabEventHandler.
   = FocusController::advanceFocus requires keyboard event object for
 Option+Tab on Mac.
 2. Create fake-keyboard event containing Shift+Tab then pass to
 defaultEventHandler.

 It seems making fake-keyboard event is little bit ugly.

 So, our conclusion is making DateTimeEditElement not to manage focus ==
 FocusController manages focus.
 http://trac.webkit.org/changeset/127226

 As of this experiment,  setFocus() with direction parameter doesn't solve
 controlling focus by container. Container wants to know direction of focus
 navigation from event object.

 The pseudo code can be written as:

 TimeInputElement::defaultEventHandler(Event* event)
 {
 if (event-isFocusEvent()) {
 if (event-focuseDirection() == FocusDiectionForward)
   setFocusToField(0);
else
  setFocusToField(m_lastFieldIndex);

// Not sure about FocusDirectionUp/Down
// Need RTL support for FocusDirectionLeft/Right. Move focus
 Left/Right on physical location.
 }
 }




 On Tue, Sep 11, 2012 at 4:32 AM, Fady Samuel fsam...@chromium.org wrote:

 Hi all,

 I'm working on a plugin that needs to deal with focus. I'd like this
 plugin to look an feel just like any other DOM element including the way it
 deals with focus. The problem that I have is Widgets know about focus but
 not focus direction (forward/reverse). My plugin has several logical
 subelements. The initial subelement to select is based on the direction
 taken to arrive to the plugin by keyboard  (Tab v.s. Shift-Tab).

 I'd like to add a new parameter with a flag or enum three states perhaps:
 Foward Reverse, Neither to Widget::SetFocus.

 This is going to require many one-line changes throughout a number of
 files throughout WebCore.

 Before I embark on such a change, I'd like to get some feedback at this
 point. Is this a reasonable thing to add? Does anyone oppose this change?
 Is there a cleaner way to add this support?

 Thanks,

 Fady

 ___
 webkit-dev mailing list
 webkit-dev@lists.webkit.org
 http://lists.webkit.org/mailman/listinfo/webkit-dev



___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Regd. Remote debugging support in GtkLauncher

2012-09-11 Thread Gustavo Noronha Silva
Hey,

I think this question is off-topic for webkit-dev, please use webkit-gtk
or webkit-help in the future.

On Qui, 2012-09-06 at 10:49 +, debojyoti@wipro.com wrote:
 Also I couldn't find any option in GtkLauncher where I can provide the
 websocket server port, like chrome.exe --remote-debugging-port=9222.

WebKitGTK+ currently lacks support for this. There's a WIP patch here to
add support for WebKit2GTK+:

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

Cheers,

-- 
Gustavo Noronha Silva g...@gnome.org
GNOME Project

___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] WebKit image rendering performance

2012-09-11 Thread Benjamin Poulain
On Tue, Sep 11, 2012 at 1:45 AM, Klemen Slavič krof.drak...@gmail.comwrote:

 First time poster. While I admit I haven't worked on WebKit code (yet),
 I'm very familiar with its workings across different implementations
 (desktop, mobile and otherwise).

 In my research regarding WebKit rendering performance, I've stumbled upon
 an interesting artefact while animating spritesheet-based image animations.
 I've written up a an article on the effects and metrics, including a
 minimal test case to help demonstrate the effects on various
 implementations:

 http://gist.io/3639830


The way decoded images is handled depends on great many things.
I suggest you to ask questions on webkit-help. The mailing list webkit-dev
is about the development of WebKit

A quick run in Instruments shows that, on my machine, blitting the images
is the problem in this case. The hotspot has nothing to do with decoding
the images.

I would appreciate if you could update or remove the article to make sure
we do not spread erroneous informations about WebKit through the mailing
list.

I remember reading somewhere in the WebKit archives (messages dated at
 least one year ago) about keeping render objects removed from the tree by
 caching them according to their URI, but have since been unable to locate
 that specific message. From what I understand, the effects described in the
 document seem to match up exactly with what I'm assuming is happening
 inside the engine and according to Levi Weintraub's high-level description
 of the rendering engine.

 I would greatly appreciate any feedback on the document, to help optimise
 my approach when dealing with graphically intensive games and applications.
 I wouldn't mind getting my hands dirty with the source if someone can point
 me in the right direction.


I suggest you to use a profiler like Instruments' time profile. It will
give you an idea of where the time is spent without making assumptions
based on behaviors.

Regards,
Benjamin
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] WebKit image rendering performance

2012-09-11 Thread Klemen Slavič

 I suggest you to ask questions on webkit-help. The mailing list webkit-dev
 is about the development of WebKit


Sorry about that, I didn't know which list to address this to, and -dev
seemed the appropriate place to pose such a question.


 A quick run in Instruments shows that, on my machine, blitting the images
 is the problem in this case. The hotspot has nothing to do with decoding
 the images.


What exactly do you mean by blitting? The way I understand it, doesn't
blitting mean every write to the screen buffer? I've only seen long-running
paint operations when new images came into view (identified using
console.timeStamp(frameNumber)), not on every frame. Even so, JPEGs
rendered consistently faster than PNGs when coming into view. I'm just
trying to understand what is done internally to avoid this behaviour.


 I would appreciate if you could update or remove the article to make sure
 we do not spread erroneous informations about WebKit through the mailing
 list.


Updating the article is exactly what I intended to do, to clear up any
errors due to my misinterpretation of the internal behaviour of WebKit.
Since I have only a high-level overview of the workings of the rendering
engine, I'd like to know more about what exactly the effects are so that I
may clear things up.


 I suggest you to use a profiler like Instruments' time profile. It will
 give you an idea of where the time is spent without making assumptions
 based on behaviors.


Sorry to sound completely uninformed, but what is Instruments? Bear in
mind, I don't have a Mac, I'm a Windows/Linux user. If you can point me in
the right direction, I can find my way around the documentation.

I'll refrain from posting any more messages regarding this on webkit-div
and instead divert any additional questions to -help.

Thanks for the pointers so far!



-- 
*http://about.me/klemen.slavic
*
*It's who I am.*
*It's what I do.*
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] New Feature: CSS Element

2012-09-11 Thread Anish Bhayani
Hi Benjamin,

Although I will not be here, the team is planning on continuing the work on the 
project. A good person to contact is:
Larry Mclister
lmcli...@adobe.com

--
Anish Bhayani
WebKit Engineering Intern
Web Platform  Authoring

From: Benjamin Poulain benja...@webkit.orgmailto:benja...@webkit.org
Date: Monday, September 10, 2012 7:21 PM
To: Adobe bhay...@adobe.commailto:bhay...@adobe.com
Cc: webkit-dev@lists.webkit.orgmailto:webkit-dev@lists.webkit.org 
webkit-dev@lists.webkit.orgmailto:webkit-dev@lists.webkit.org
Subject: Re: [webkit-dev] New Feature: CSS Element

On Mon, Sep 10, 2012 at 6:41 PM, Anish Bhayani 
bhay...@adobe.commailto:bhay...@adobe.com wrote:

I am an intern on the Adobe Web Platform  Authoring team. For the summer, I 
was working on implementing CSS Element [1] in WebKit. The specification itself 
is still being finalized, but Mozilla [2] has had this feature working since 
FireFox 4.0. CSS Element allows an element to use another element as its 
background and Mozilla has a handy page on it [3]. Unfortunately, my internship 
is coming to an end, but I am working hard to get the grammar and parsing for 
it to land.

Will anyone finish the work after you finish the internship?

Benjamin
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-dev


[webkit-dev] How to diagnose a failing early-warning failure that passes on my machine?

2012-09-11 Thread John J Barton
On Bug 96040 (https://bugs.webkit.org/show_bug.cgi?id=96040) I posted
a patch. The little oval thingys are all green except cr-linux.
Clicking the failing oval gives a long file including these lines:

Regressions: Unexpected text failures : (1)
  inspector/extensions/extensions-panel.html = TEXT

This is a file I changed so I would like to know what failed in that
test. It passes on my linux box.

Any hints?

jjb
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] How to diagnose a failing early-warning failure that passes on my machine?

2012-09-11 Thread Adam Barth
Currently, there's no way to get results from the bots.  You might
need to land your patch and see what the bots on build.webkit.org tell
you.

Adam


On Tue, Sep 11, 2012 at 2:45 PM, John J Barton
johnjbar...@johnjbarton.com wrote:
 On Bug 96040 (https://bugs.webkit.org/show_bug.cgi?id=96040) I posted
 a patch. The little oval thingys are all green except cr-linux.
 Clicking the failing oval gives a long file including these lines:

 Regressions: Unexpected text failures : (1)
   inspector/extensions/extensions-panel.html = TEXT

 This is a file I changed so I would like to know what failed in that
 test. It passes on my linux box.

 Any hints?

 jjb
 ___
 webkit-dev mailing list
 webkit-dev@lists.webkit.org
 http://lists.webkit.org/mailman/listinfo/webkit-dev
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] How to diagnose a failing early-warning failure that passes on my machine?

2012-09-11 Thread Eric Seidel
The cr-linux bots used to upload the results to the bug itself.  Maybe
that changed?

On Tue, Sep 11, 2012 at 3:20 PM, Adam Barth aba...@webkit.org wrote:
 Currently, there's no way to get results from the bots.  You might
 need to land your patch and see what the bots on build.webkit.org tell
 you.

 Adam


 On Tue, Sep 11, 2012 at 2:45 PM, John J Barton
 johnjbar...@johnjbarton.com wrote:
 On Bug 96040 (https://bugs.webkit.org/show_bug.cgi?id=96040) I posted
 a patch. The little oval thingys are all green except cr-linux.
 Clicking the failing oval gives a long file including these lines:

 Regressions: Unexpected text failures : (1)
   inspector/extensions/extensions-panel.html = TEXT

 This is a file I changed so I would like to know what failed in that
 test. It passes on my linux box.

 Any hints?

 jjb
 ___
 webkit-dev mailing list
 webkit-dev@lists.webkit.org
 http://lists.webkit.org/mailman/listinfo/webkit-dev
 ___
 webkit-dev mailing list
 webkit-dev@lists.webkit.org
 http://lists.webkit.org/mailman/listinfo/webkit-dev
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] How to diagnose a failing early-warning failure that passes on my machine?

2012-09-11 Thread Adam Barth
I think we disabled that because we didn't want to spam the
bugs.webkit.org database with tons of zip files.

Adam


On Tue, Sep 11, 2012 at 3:25 PM, Eric Seidel e...@webkit.org wrote:
 The cr-linux bots used to upload the results to the bug itself.  Maybe
 that changed?

 On Tue, Sep 11, 2012 at 3:20 PM, Adam Barth aba...@webkit.org wrote:
 Currently, there's no way to get results from the bots.  You might
 need to land your patch and see what the bots on build.webkit.org tell
 you.

 Adam


 On Tue, Sep 11, 2012 at 2:45 PM, John J Barton
 johnjbar...@johnjbarton.com wrote:
 On Bug 96040 (https://bugs.webkit.org/show_bug.cgi?id=96040) I posted
 a patch. The little oval thingys are all green except cr-linux.
 Clicking the failing oval gives a long file including these lines:

 Regressions: Unexpected text failures : (1)
   inspector/extensions/extensions-panel.html = TEXT

 This is a file I changed so I would like to know what failed in that
 test. It passes on my linux box.

 Any hints?

 jjb
 ___
 webkit-dev mailing list
 webkit-dev@lists.webkit.org
 http://lists.webkit.org/mailman/listinfo/webkit-dev
 ___
 webkit-dev mailing list
 webkit-dev@lists.webkit.org
 http://lists.webkit.org/mailman/listinfo/webkit-dev
___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-dev


Re: [webkit-dev] Adding reverse flag to Widget::SetFocus?

2012-09-11 Thread Yoshifumi Inoue
Hi Fady,

DateTimeEditElement::focusByOwner() is called on HTMLInputElement::focus()
function == JavaScript focus() method.

Other than other input types, input type time isn't focusable, but
DateTimeFieldElement, field, is focusable. So, Focus controller moves focus
around fields.

In other words, DateTime{Edit,Field}Element don't manage focus.

Thanks.
-yosi


On Wed, Sep 12, 2012 at 12:41 AM, Fady Samuel fsam...@chromium.org wrote:

 Hi Youifumi,

 I'm a little bit confused about what you did. It seems like youalways
 select the first subelement in your elemnt.

 void DateTimeEditElement::focusByOwner()
 {
 if (DateTimeFieldElement* field = fieldAt(0))
 field-focus();
 }

 I don't understand how Shift+Tab works in your code?

 Thanks,

 Fady

 On Mon, Sep 10, 2012 at 9:39 PM, Yoshifumi Inoue yo...@google.com wrote:

 Hi Fady,

 I have same experience about focus in internal element within container
 element.  I tried to do same thing for multiple fields time input UI for
 input type=time. In the implementation, fields are implemented in shadow
 DOM hosted by input element.
 We call fields are DateTimeFieldElement and container for them as
 DateTimeEditElement.

 On first implementation, DateTimeEditElement controlled focus. When input
 element focused, DateTimeEditElement sets the first field. It worked fine
 except for Shift+Tab.
 http://trac.webkit.org/changeset/125263

 I studied FocusController and EventHandler::defaultTabEventHandler.

 http://trac.webkit.org/browser/trunk/Source/WebCore/page/FocusController.cpp

 http://trac.webkit.org/browser/trunk/Source/WebCore/page/EventHandler.cpp


 I thought two options:
 1. Factor out defaultTabEventHandler.
   = FocusController::advanceFocus requires keyboard event object for
 Option+Tab on Mac.
 2. Create fake-keyboard event containing Shift+Tab then pass to
 defaultEventHandler.

 It seems making fake-keyboard event is little bit ugly.

 So, our conclusion is making DateTimeEditElement not to manage focus ==
 FocusController manages focus.
 http://trac.webkit.org/changeset/127226

 As of this experiment,  setFocus() with direction parameter doesn't solve
 controlling focus by container. Container wants to know direction of focus
 navigation from event object.

 The pseudo code can be written as:

 TimeInputElement::defaultEventHandler(Event* event)
 {
 if (event-isFocusEvent()) {
 if (event-focuseDirection() == FocusDiectionForward)
   setFocusToField(0);
else
  setFocusToField(m_lastFieldIndex);

// Not sure about FocusDirectionUp/Down
// Need RTL support for FocusDirectionLeft/Right. Move focus
 Left/Right on physical location.
 }
 }




 On Tue, Sep 11, 2012 at 4:32 AM, Fady Samuel fsam...@chromium.orgwrote:

 Hi all,

 I'm working on a plugin that needs to deal with focus. I'd like this
 plugin to look an feel just like any other DOM element including the way it
 deals with focus. The problem that I have is Widgets know about focus but
 not focus direction (forward/reverse). My plugin has several logical
 subelements. The initial subelement to select is based on the direction
 taken to arrive to the plugin by keyboard  (Tab v.s. Shift-Tab).

 I'd like to add a new parameter with a flag or enum three states
 perhaps: Foward Reverse, Neither to Widget::SetFocus.

 This is going to require many one-line changes throughout a number of
 files throughout WebCore.

 Before I embark on such a change, I'd like to get some feedback at this
 point. Is this a reasonable thing to add? Does anyone oppose this change?
 Is there a cleaner way to add this support?

 Thanks,

 Fady

 ___
 webkit-dev mailing list
 webkit-dev@lists.webkit.org
 http://lists.webkit.org/mailman/listinfo/webkit-dev




___
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-dev