Bug 97884 - [EFL][WK2] Support multiple window creation for MiniBrowser
Summary: [EFL][WK2] Support multiple window creation for MiniBrowser
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKit EFL (show other bugs)
Version: 528+ (Nightly build)
Hardware: Other Linux
: P2 Normal
Assignee: Jinwoo Song
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-09-28 03:38 PDT by Jinwoo Song
Modified: 2012-10-08 00:40 PDT (History)
4 users (show)

See Also:


Attachments
Patch (5.46 KB, patch)
2012-09-28 03:43 PDT, Jinwoo Song
no flags Details | Formatted Diff | Diff
Patch (6.53 KB, patch)
2012-09-28 10:33 PDT, Jinwoo Song
no flags Details | Formatted Diff | Diff
Patch (6.58 KB, patch)
2012-10-01 06:28 PDT, Jinwoo Song
no flags Details | Formatted Diff | Diff
Patch (6.63 KB, patch)
2012-10-01 23:33 PDT, Jinwoo Song
no flags Details | Formatted Diff | Diff
Patch (6.59 KB, patch)
2012-10-02 04:24 PDT, Jinwoo Song
no flags Details | Formatted Diff | Diff
Patch (7.43 KB, patch)
2012-10-04 06:20 PDT, Jinwoo Song
no flags Details | Formatted Diff | Diff
Patch (7.49 KB, patch)
2012-10-04 11:01 PDT, Jinwoo Song
no flags Details | Formatted Diff | Diff
Patch (7.62 KB, patch)
2012-10-05 05:09 PDT, Jinwoo Song
no flags Details | Formatted Diff | Diff
Patch (10.98 KB, patch)
2012-10-05 11:04 PDT, Jinwoo Song
no flags Details | Formatted Diff | Diff
Patch (11.98 KB, patch)
2012-10-07 22:51 PDT, Jinwoo Song
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Jinwoo Song 2012-09-28 03:38:26 PDT
Implement the multiple window creation for MiniBrowser and bind the 'F9' key for opening new window.
Comment 1 Jinwoo Song 2012-09-28 03:43:44 PDT
Created attachment 166195 [details]
Patch
Comment 2 Byungwoo Lee 2012-09-28 04:58:10 PDT
Comment on attachment 166195 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=166195&action=review

> Tools/MiniBrowser/efl/main.c:260
> +static int browserCreate(const char *url, const char *engine)

Why is the return type changed? 
There is no change about return value in the body of this function.
Comment 3 Jinwoo Song 2012-09-28 06:05:12 PDT
Comment on attachment 166195 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=166195&action=review

>> Tools/MiniBrowser/efl/main.c:260
>> +static int browserCreate(const char *url, const char *engine)
> 
> Why is the return type changed? 
> There is no change about return value in the body of this function.

As the browserCreate does not need to return anymore, I'll change the type to void.
Thanks for pointing out the mistake.
Comment 4 Byungwoo Lee 2012-09-28 08:49:30 PDT
Comment on attachment 166195 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=166195&action=review

> Tools/MiniBrowser/efl/main.c:50
> MiniBrowser *browser;

The global 'browser' variable can be removed.

> Tools/MiniBrowser/efl/main.c:41
> +static char *engine = NULL;

I cannot found where this variable is used.

> Tools/MiniBrowser/efl/main.c:112
> +static void
> +browserDestroy(Ecore_Evas *ee)
> +{
> +    ecore_evas_free(ee);
> +    if (!eina_list_count(windows))
> +        ecore_main_loop_quit();
> +}

I think that this function can be removed.

It is better to move #110,111 line to the #120 in closeWindow().
There is no relation between ecore_evas_free and checking eina_list_count.

> Tools/MiniBrowser/efl/main.c:114
>  static void closeWindow(Ecore_Evas *ee)

I think that it is more clear to use MiniBrowser* for the parameter.

> Tools/MiniBrowser/efl/main.c:118
> +    MiniBrowser *app;
> +
> +    app = find_app_from_ee(ee);

MiniBrowser *app = find_app_from_ee(ee);

And I think null check will be needed.

> Tools/MiniBrowser/efl/main.c:135
> +    app = find_app_from_ee(ee);
> +    url_bar_width_set(app->url_bar, w);

Null check is needed before use

> Tools/MiniBrowser/efl/main.c:336
> -    Ecore_Event_Handler *handle = ecore_event_handler_add(ECORE_EVENT_SIGNAL_EXIT, main_signal_exit, 0);
> +    Ecore_Event_Handler *handle = ecore_event_handler_add(ECORE_EVENT_SIGNAL_EXIT, main_signal_exit, &windows);

windows is a global variable and the passed pointer is not used in the main_signal_exit.
Passing the pointer is not needed, or main_signal_exit should use the pointer.
Comment 5 Jinwoo Song 2012-09-28 10:28:03 PDT
Comment on attachment 166195 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=166195&action=review

>> Tools/MiniBrowser/efl/main.c:41
>> +static char *engine = NULL;
> 
> I cannot found where this variable is used.

It stores the ecore-evas engine type from the command line argument.

>> Tools/MiniBrowser/efl/main.c:112
>> +}
> 
> I think that this function can be removed.
> 
> It is better to move #110,111 line to the #120 in closeWindow().
> There is no relation between ecore_evas_free and checking eina_list_count.

I agree and will remove this function and move the code as your suggestion.

>> Tools/MiniBrowser/efl/main.c:114
>>  static void closeWindow(Ecore_Evas *ee)
> 
> I think that it is more clear to use MiniBrowser* for the parameter.

This is a callback function of ecore_evas_callback_delete_request_set() with Ecore_Evas parameter.

>> Tools/MiniBrowser/efl/main.c:118
>> +    app = find_app_from_ee(ee);
> 
> MiniBrowser *app = find_app_from_ee(ee);
> 
> And I think null check will be needed.

okay, I'll do it.

>> Tools/MiniBrowser/efl/main.c:135
>> +    url_bar_width_set(app->url_bar, w);
> 
> Null check is needed before use

okay.

>>> Tools/MiniBrowser/efl/main.c:260
>>> +static int browserCreate(const char *url, const char *engine)
>> 
>> Why is the return type changed? 
>> There is no change about return value in the body of this function.
> 
> As the browserCreate does not need to return anymore, I'll change the type to void.
> Thanks for pointing out the mistake.

It seems to better to use Eina_Bool return type to check if the creation is succeeded or not.

>> Tools/MiniBrowser/efl/main.c:336
>> +    Ecore_Event_Handler *handle = ecore_event_handler_add(ECORE_EVENT_SIGNAL_EXIT, main_signal_exit, &windows);
> 
> windows is a global variable and the passed pointer is not used in the main_signal_exit.
> Passing the pointer is not needed, or main_signal_exit should use the pointer.

yes indeed.
Comment 6 Jinwoo Song 2012-09-28 10:33:37 PDT
Created attachment 166274 [details]
Patch
Comment 7 Byungwoo Lee 2012-09-28 17:30:37 PDT
Comment on attachment 166274 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=166274&action=review

> Tools/MiniBrowser/efl/main.c:-48
> -MiniBrowser *browser;

This global variable still exists.

> Tools/MiniBrowser/efl/main.c:96
> +        closeWindow(app->ee);

closeWindow() is used here also.

At this context, find_app_from_ee() is not needed because app is already known.

How about separating closeWindow() and deleteRequestCallback()?

> Tools/MiniBrowser/efl/main.c:99
> +    if (!eina_list_count(windows))
> +        ecore_main_loop_quit();

if condition can be removed.
At this line, window will be always NULL.

> Tools/MiniBrowser/efl/main.c:111
> +    if (!eina_list_count(windows)) {

if(!windows) looks enough like #94

> Tools/MiniBrowser/efl/main.c:112
> +        free(app);

Is it mistake? I think this line should be out of the if() condition.

> Tools/MiniBrowser/efl/main.c:350
> +    eina_list_free(windows);

Is it needed?

If so, deleting 'app' also needed.
Comment 8 Byungwoo Lee 2012-09-28 17:31:40 PDT
Comment on attachment 166274 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=166274&action=review

>> Tools/MiniBrowser/efl/main.c:-48
>> -MiniBrowser *browser;
> 
> This global variable still exists.

Oops. deleted. :)
Comment 9 Jinwoo Song 2012-10-01 05:56:33 PDT
Comment on attachment 166274 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=166274&action=review

>> Tools/MiniBrowser/efl/main.c:96
>> +        closeWindow(app->ee);
> 
> closeWindow() is used here also.
> 
> At this context, find_app_from_ee() is not needed because app is already known.
> 
> How about separating closeWindow() and deleteRequestCallback()?

I understand your point and separated closeWindow() and deleteRequestCallback().

>> Tools/MiniBrowser/efl/main.c:99
>> +        ecore_main_loop_quit();
> 
> if condition can be removed.
> At this line, window will be always NULL.

you are right.

>> Tools/MiniBrowser/efl/main.c:111
>> +    if (!eina_list_count(windows)) {
> 
> if(!windows) looks enough like #94

done.

>> Tools/MiniBrowser/efl/main.c:112
>> +        free(app);
> 
> Is it mistake? I think this line should be out of the if() condition.

done.

>> Tools/MiniBrowser/efl/main.c:350
>> +    eina_list_free(windows);
> 
> Is it needed?
> 
> If so, deleting 'app' also needed.

It is an unneeded line so I removed it.
Comment 10 Jinwoo Song 2012-10-01 06:28:33 PDT
Created attachment 166463 [details]
Patch
Comment 11 Byungwoo Lee 2012-10-01 17:24:04 PDT
Comment on attachment 166463 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=166463&action=review

> Tools/MiniBrowser/efl/main.c:79
> +

How about adding NULL check for 'ee'?
if (!ee)
    return NULL;

> Tools/MiniBrowser/efl/main.c:90
> +{

Please add Null check before accessing 'app'

> Tools/MiniBrowser/efl/main.c:110
> +    MiniBrowser *app = browser_find(ee);
> +    if (!app)
> +        return;
> +    browser_close(app);

Can be shortened 'browser_close(browser_find(ee));' if browser_close has null check for 'app'.
Comment 12 Jinwoo Song 2012-10-01 23:33:27 PDT
Created attachment 166617 [details]
Patch
Comment 13 Jinwoo Song 2012-10-01 23:33:52 PDT
(In reply to comment #11)
> (From update of attachment 166463 [details])
> View in context: https://bugs.webkit.org/attachment.cgi?id=166463&action=review
> 
> > Tools/MiniBrowser/efl/main.c:79
> > +
> 
> How about adding NULL check for 'ee'?
> if (!ee)
>     return NULL;
> 
> > Tools/MiniBrowser/efl/main.c:90
> > +{
> 
> Please add Null check before accessing 'app'
> 
> > Tools/MiniBrowser/efl/main.c:110
> > +    MiniBrowser *app = browser_find(ee);
> > +    if (!app)
> > +        return;
> > +    browser_close(app);
> 
> Can be shortened 'browser_close(browser_find(ee));' if browser_close has null check for 'app'.

All done, thanks for review!
Comment 14 Byungwoo Lee 2012-10-02 00:21:58 PDT
Comment on attachment 166617 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=166617&action=review

With some additional empty lines, it looks ok to me.

> Tools/MiniBrowser/efl/main.c:81
> +    if (!ee)
> +        return NULL;

How about adding empty line after this?

> Tools/MiniBrowser/efl/main.c:94
> +    if (!app)
> +        return;

ditto.

> Tools/MiniBrowser/efl/main.c:104
> +    while (windows)
> +        browser_close((MiniBrowser *)eina_list_data_get(windows));

ditto.

> Tools/MiniBrowser/efl/main.c:111
> +    browser_close(browser_find(ee));

ditto.

> Tools/MiniBrowser/efl/main.c:127
> +    app = browser_find(ee);
> +    if (!app)
> +        return;

ditto.
Comment 15 Jinwoo Song 2012-10-02 04:24:38 PDT
Created attachment 166659 [details]
Patch
Comment 16 Jinwoo Song 2012-10-02 04:25:12 PDT
(In reply to comment #14)
> (From update of attachment 166617 [details])
> View in context: https://bugs.webkit.org/attachment.cgi?id=166617&action=review
> 
> With some additional empty lines, it looks ok to me.
> 
> > Tools/MiniBrowser/efl/main.c:81
> > +    if (!ee)
> > +        return NULL;
> 
> How about adding empty line after this?
> 
> > Tools/MiniBrowser/efl/main.c:94
> > +    if (!app)
> > +        return;
> 
> ditto.
> 
> > Tools/MiniBrowser/efl/main.c:104
> > +    while (windows)
> > +        browser_close((MiniBrowser *)eina_list_data_get(windows));
> 
> ditto.
> 
> > Tools/MiniBrowser/efl/main.c:111
> > +    browser_close(browser_find(ee));
> 
> ditto.
> 
> > Tools/MiniBrowser/efl/main.c:127
> > +    app = browser_find(ee);
> > +    if (!app)
> > +        return;
> 
> ditto.

Done. :-)
Comment 17 Ryuan Choi 2012-10-03 20:11:48 PDT
Comment on attachment 166659 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=166659&action=review

> Tools/MiniBrowser/efl/main.c:106
> +    while (windows)
> +        browser_close((MiniBrowser *)eina_list_data_get(windows));

Why don't you use EINA_LIST_FREE?
Comment 18 Laszlo Gombos 2012-10-03 20:43:55 PDT
Comment on attachment 166659 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=166659&action=review

> Tools/MiniBrowser/efl/main.c:41
> +static char *engine = NULL;

I think we should use a more descriptive name, perhaps evas_engine.

> Tools/MiniBrowser/efl/main.c:170
> +        browser_create(DEFAULT_URL, engine);

Should this be window_create instead ?
Comment 19 Jinwoo Song 2012-10-03 22:50:48 PDT
Comment on attachment 166659 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=166659&action=review

>> Tools/MiniBrowser/efl/main.c:41
>> +static char *engine = NULL;
> 
> I think we should use a more descriptive name, perhaps evas_engine.

Okay, I'll change to evas_engine.

>> Tools/MiniBrowser/efl/main.c:106
>> +        browser_close((MiniBrowser *)eina_list_data_get(windows));
> 
> Why don't you use EINA_LIST_FREE?

I can use EINA_LIST_FREE as following, but it seems current style looks more simple.
Do we have any more advantage to use EINA_LIST_FREE?

MiniBrowser *app;
EINA_LIST_FREE(windows, app)
{
    url_bar_del(app->url_bar);
    ecore_evas_free(app->ee);
    free(app);
}

>> Tools/MiniBrowser/efl/main.c:170
>> +        browser_create(DEFAULT_URL, engine);
> 
> Should this be window_create instead ?

window_create, window_close are more proper name. I'll modify them.
Comment 20 Jinwoo Song 2012-10-04 06:16:50 PDT
Comment on attachment 166659 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=166659&action=review

>>> Tools/MiniBrowser/efl/main.c:106
>>> +        browser_close((MiniBrowser *)eina_list_data_get(windows));
>> 
>> Why don't you use EINA_LIST_FREE?
> 
> I can use EINA_LIST_FREE as following, but it seems current style looks more simple.
> Do we have any more advantage to use EINA_LIST_FREE?
> 
> MiniBrowser *app;
> EINA_LIST_FREE(windows, app)
> {
>     url_bar_del(app->url_bar);
>     ecore_evas_free(app->ee);
>     free(app);
> }

As discussed in offline, I use EINA_LIST_FREE and take out eina_list_remove from browser_close().
Comment 21 Jinwoo Song 2012-10-04 06:20:58 PDT
Created attachment 167093 [details]
Patch
Comment 22 Ryuan Choi 2012-10-04 08:35:17 PDT
Comment on attachment 167093 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=167093&action=review

> Tools/MiniBrowser/efl/main.c:92
> +static void window_close(MiniBrowser *app)

How about window_delete?
Functionality looks not close and you looks introduce window_create for creation.

Anyway, I think that Efl commonly use _add / _del.

> Tools/MiniBrowser/efl/main.c:131
> +    app = browser_find(ee);
> +    if (!app)
> +        return;

We'd better to move this before calling 126 line.

> Tools/MiniBrowser/efl/main.c:135
>      webview = evas_object_name_find(ecore_evas_get(ee), "browser");

After this patch, we don't need to find webview from ecore_evas, right?

> Tools/MiniBrowser/efl/main.c:341
> -        browser = browserCreate(url, engine);
> +        if (!window_create(url, evas_engine)) {

For me, returning browser (or window) and adding it to lists looks better.

At least, I think that window_create and window_close should consider windows lists in same view point.
Comment 23 Jinwoo Song 2012-10-04 10:54:01 PDT
Comment on attachment 167093 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=167093&action=review

>> Tools/MiniBrowser/efl/main.c:92
>> +static void window_close(MiniBrowser *app)
> 
> How about window_delete?
> Functionality looks not close and you looks introduce window_create for creation.
> 
> Anyway, I think that Efl commonly use _add / _del.

window_delete may describe the things done in the function, but window_close looks good to me as well.

> Tools/MiniBrowser/efl/main.c:132
> +

Fixed.

>> Tools/MiniBrowser/efl/main.c:135
>>      webview = evas_object_name_find(ecore_evas_get(ee), "browser");
> 
> After this patch, we don't need to find webview from ecore_evas, right?

yes, we can directly use the webview from app like app->browser. I'll fix it.

>> Tools/MiniBrowser/efl/main.c:341
>> +        if (!window_create(url, evas_engine)) {
> 
> For me, returning browser (or window) and adding it to lists looks better.
> 
> At least, I think that window_create and window_close should consider windows lists in same view point.

From the point of consistency, I agree with you.
Comment 24 Jinwoo Song 2012-10-04 11:01:51 PDT
Created attachment 167132 [details]
Patch
Comment 25 Ryuan Choi 2012-10-04 19:12:12 PDT
Comment on attachment 167132 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=167132&action=review

> Tools/MiniBrowser/efl/main.c:341
> +    MiniBrowser *app;

Because this file has c extension, should we declare this in top of function for compatibility?
Comment 26 Jinwoo Song 2012-10-05 05:09:39 PDT
Created attachment 167311 [details]
Patch
Comment 27 Jinwoo Song 2012-10-05 05:10:03 PDT
(In reply to comment #25)
> (From update of attachment 167132 [details])
> View in context: https://bugs.webkit.org/attachment.cgi?id=167132&action=review
> 
> > Tools/MiniBrowser/efl/main.c:341
> > +    MiniBrowser *app;
> 
> Because this file has c extension, should we declare this in top of function for compatibility?

Fixed.
Comment 28 Kenneth Rohde Christiansen 2012-10-05 09:15:32 PDT
Comment on attachment 167132 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=167132&action=review

> Tools/MiniBrowser/efl/main.c:59
> -            ('e', "engine", "ecore-evas engine to use."),
> +            ('e', "ecore-evas engine", "ecore-evas engine to use."),

huh? isn't this so you can write -e or --engine? I guess --ecore-evas engine won't work

> Tools/MiniBrowser/efl/main.c:73
> +static MiniBrowser *window_create(const char *url, const char *evas_engine);

evas_engine_name? it is a string

> Tools/MiniBrowser/efl/main.c:126
> +    app = browser_find(ee);

browser_find? we dont have multiple browsers, we have multiple browser windows. find_browser_window?

> Tools/MiniBrowser/efl/main.c:135
> +    evas_object_move(app->browser, 0, URL_BAR_HEIGHT);

browser is what here? the window?

> Tools/MiniBrowser/efl/main.c:350
> +        return quit(EINA_FALSE, "ERROR: could not create browser window\n");

missing .
Comment 29 Jinwoo Song 2012-10-05 10:59:55 PDT
Comment on attachment 167132 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=167132&action=review

>> Tools/MiniBrowser/efl/main.c:59
>> +            ('e', "ecore-evas engine", "ecore-evas engine to use."),
> 
> huh? isn't this so you can write -e or --engine? I guess --ecore-evas engine won't work

That's a silly mistake. I'll fix it.

>> Tools/MiniBrowser/efl/main.c:73
>> +static MiniBrowser *window_create(const char *url, const char *evas_engine);
> 
> evas_engine_name? it is a string

okay, I'll change the variable name to 'evas_engine_name'.

>> Tools/MiniBrowser/efl/main.c:126
>> +    app = browser_find(ee);
> 
> browser_find? we dont have multiple browsers, we have multiple browser windows. find_browser_window?

I'll change to browser_window_find().

>> Tools/MiniBrowser/efl/main.c:135
>> +    evas_object_move(app->browser, 0, URL_BAR_HEIGHT);
> 
> browser is what here? the window?

Yes, app->browser seems to be improper name so I'll change to app->webview.

>> Tools/MiniBrowser/efl/main.c:350
>> +        return quit(EINA_FALSE, "ERROR: could not create browser window\n");
> 
> missing .

I'll fix it.
Comment 30 Jinwoo Song 2012-10-05 11:04:45 PDT
Created attachment 167352 [details]
Patch
Comment 31 Kenneth Rohde Christiansen 2012-10-06 22:56:14 PDT
Comment on attachment 167352 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=167352&action=review

> Tools/MiniBrowser/efl/main.c:48
>  typedef struct _MiniBrowser {
>      Ecore_Evas *ee;
>      Evas *evas;
> -    Evas_Object *browser;
> +    Evas_Object *webview;
>      Url_Bar *url_bar;
>  } MiniBrowser;

Maybe renaming MiniBrowser to BrowserWindow would make sense

> Tools/MiniBrowser/efl/main.c:86
> +    EINA_LIST_FOREACH(windows, l, data)
> +    {

should { be on the other line? That would be normal webkit style

> Tools/MiniBrowser/efl/main.c:99
> +static void window_close(MiniBrowser *app)
> +{
> +    url_bar_del(app->url_bar);
> +    ecore_evas_free(app->ee);
> +    free(app);
> +}

The name makes it seem like this method closes the window, but the implementation looks to be destructing the window instead. Why not call it window_free() ?

Also it is confusing that the argument is called "app" and not "window"
Comment 32 Jinwoo Song 2012-10-07 21:24:37 PDT
(In reply to comment #31)
> (From update of attachment 167352 [details])
> View in context: https://bugs.webkit.org/attachment.cgi?id=167352&action=review
> 
> > Tools/MiniBrowser/efl/main.c:48
> >  typedef struct _MiniBrowser {
> >      Ecore_Evas *ee;
> >      Evas *evas;
> > -    Evas_Object *browser;
> > +    Evas_Object *webview;
> >      Url_Bar *url_bar;
> >  } MiniBrowser;
> 
> Maybe renaming MiniBrowser to BrowserWindow would make sense
> 
Yes, BrowserWindow looks much better than MiniBrowser. I'll change it.

> > Tools/MiniBrowser/efl/main.c:86
> > +    EINA_LIST_FOREACH(windows, l, data)
> > +    {
> 
> should { be on the other line? That would be normal webkit style
> 
I'll fix it.

> > Tools/MiniBrowser/efl/main.c:99
> > +static void window_close(MiniBrowser *app)
> > +{
> > +    url_bar_del(app->url_bar);
> > +    ecore_evas_free(app->ee);
> > +    free(app);
> > +}
> 
> The name makes it seem like this method closes the window, but the implementation looks to be destructing the window instead. Why not call it window_free() ?
> 
> Also it is confusing that the argument is called "app" and not "window"

Okay, I'll follow your advise. 

It seems that this patch is doing refactoring the whole code, but I like to do this 
as I also didn't like some function/variable names. :)
Comment 33 Jinwoo Song 2012-10-07 22:51:45 PDT
Created attachment 167510 [details]
Patch
Comment 34 WebKit Review Bot 2012-10-08 00:40:51 PDT
Comment on attachment 167510 [details]
Patch

Clearing flags on attachment: 167510

Committed r130620: <http://trac.webkit.org/changeset/130620>
Comment 35 WebKit Review Bot 2012-10-08 00:40:56 PDT
All reviewed patches have been landed.  Closing bug.