WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
102054
[EFL][WK2] Add APIs to get/set whether scripts can open new windows.
https://bugs.webkit.org/show_bug.cgi?id=102054
Summary
[EFL][WK2] Add APIs to get/set whether scripts can open new windows.
Yuni Jeong
Reported
2012-11-13 00:27:30 PST
Added setting APIs make it possible to allow or prevent scripts from opening the new windows automatically.
Attachments
Patch
(4.52 KB, patch)
2012-11-13 02:57 PST
,
Yuni Jeong
no flags
Details
Formatted Diff
Diff
Patch
(4.43 KB, patch)
2012-11-14 20:17 PST
,
Yuni Jeong
no flags
Details
Formatted Diff
Diff
Show Obsolete
(1)
View All
Add attachment
proposed patch, testcase, etc.
Yuni Jeong
Comment 1
2012-11-13 02:57:39 PST
Created
attachment 173856
[details]
Patch
Raphael Kubo da Costa (:rakuco)
Comment 2
2012-11-14 07:07:31 PST
Comment on
attachment 173856
[details]
Patch Looks good to me, with an English nitpick: "open the new windows" -> "open new windows".
Yuni Jeong
Comment 3
2012-11-14 20:17:36 PST
Created
attachment 174331
[details]
Patch
Yuni Jeong
Comment 4
2012-11-14 20:21:21 PST
I changed: "open the new windows" -> "open new windows".
Gyuyoung Kim
Comment 5
2012-11-14 20:36:42 PST
Comment on
attachment 174331
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=174331&action=review
> Source/WebKit2/UIProcess/API/efl/ewk_settings.cpp:323 > + EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false);
I think we don't need to set if enable value is same as current value. For example, you may add this condition. bool currentValue = settings->preferences()->javaScriptCanOpenWindowsAutomatically(); if (currentValue == enable) return;
Yuni Jeong
Comment 6
2012-11-15 03:00:08 PST
Comment on
attachment 174331
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=174331&action=review
>> Source/WebKit2/UIProcess/API/efl/ewk_settings.cpp:323 >> + EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false); > > I think we don't need to set if enable value is same as current value. > > For example, you may add this condition. > > bool currentValue = settings->preferences()->javaScriptCanOpenWindowsAutomatically(); > if (currentValue == enable) > return;
I agree to your idea. But, other APIs to set enable value do not check above condition. Above condition must be added in this function?
Gyuyoung Kim
Comment 7
2012-11-15 03:03:59 PST
(In reply to
comment #6
)
> I agree to your idea. > But, other APIs to set enable value do not check above condition. > Above condition must be added in this function?
I think so. We don't need to set even though current setting is set as parameter. I think other settings functions need to have this checking condition.
Chris Dumez
Comment 8
2012-11-15 03:11:09 PST
Comment on
attachment 174331
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=174331&action=review
>>> Source/WebKit2/UIProcess/API/efl/ewk_settings.cpp:323 >>> + EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false); >> >> I think we don't need to set if enable value is same as current value. >> >> For example, you may add this condition. >> >> bool currentValue = settings->preferences()->javaScriptCanOpenWindowsAutomatically(); >> if (currentValue == enable) >> return; > > I agree to your idea. > But, other APIs to set enable value do not check above condition. > Above condition must be added in this function?
I think such if check would make sense if the operation was expensive. However, these are settings and the behavior is usually to set a boolean flag in memory. In practice, adding the if check may make it slower for no good reason. See for e.g.: void Settings::setJavaScriptCanOpenWindowsAutomatically(bool javaScriptCanOpenWindowsAutomatically) { m_javaScriptCanOpenWindowsAutomatically = javaScriptCanOpenWindowsAutomatically; } Would it really make sense to do if (m_javaScriptCanOpenWindowsAutomatically != javaScriptCanOpenWindowsAutomatically) m_javaScriptCanOpenWindowsAutomatically = javaScriptCanOpenWindowsAutomatically; ?
Gyuyoung Kim
Comment 9
2012-11-15 03:47:20 PST
(In reply to
comment #8
)
> (From update of
attachment 174331
[details]
) > View in context:
https://bugs.webkit.org/attachment.cgi?id=174331&action=review
> > >>> Source/WebKit2/UIProcess/API/efl/ewk_settings.cpp:323 > >>> + EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false); > >> > >> I think we don't need to set if enable value is same as current value. > >> > >> For example, you may add this condition. > >> > >> bool currentValue = settings->preferences()->javaScriptCanOpenWindowsAutomatically(); > >> if (currentValue == enable) > >> return; > > > > I agree to your idea. > > But, other APIs to set enable value do not check above condition. > > Above condition must be added in this function? > > I think such if check would make sense if the operation was expensive. However, these are settings and the behavior is usually to set a boolean flag in memory. In practice, adding the if check may make it slower for no good reason. > > See for e.g.: > > void Settings::setJavaScriptCanOpenWindowsAutomatically(bool javaScriptCanOpenWindowsAutomatically) > { > m_javaScriptCanOpenWindowsAutomatically = javaScriptCanOpenWindowsAutomatically; > } > > Would it really make sense to do if (m_javaScriptCanOpenWindowsAutomatically != javaScriptCanOpenWindowsAutomatically) m_javaScriptCanOpenWindowsAutomatically = javaScriptCanOpenWindowsAutomatically; ?
When we add this check, I also think there is no big performance gain because this is not expensive operation. In addition, to add this condition is not big operation. However, I think it doesn't generally make sense we set same value again. If the settings operation become a expensive stuff, I think this checking will prevent to waste our resource in future. Honestly, now there is no gain by this checking. But, if we add additional operation in ewk_settings_xxx function as below, Eina_Bool ewk_settings_encoding_detector_enabled_set(Ewk_Settings* settings, Eina_Bool enable) { EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false); settings->preferences()->setUsesEncodingDetector(enable); // To do something. return true; } In this case, we have to add this checking. But, I think it would be not bad if we add this now in order to prevent to do unnecessary operations in future.
Chris Dumez
Comment 10
2012-11-15 04:03:09 PST
Comment on
attachment 174331
[details]
Patch View in context:
https://bugs.webkit.org/attachment.cgi?id=174331&action=review
>>>>> Source/WebKit2/UIProcess/API/efl/ewk_settings.cpp:323 >>>>> + EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false); >>>> >>>> I think we don't need to set if enable value is same as current value. >>>> >>>> For example, you may add this condition. >>>> >>>> bool currentValue = settings->preferences()->javaScriptCanOpenWindowsAutomatically(); >>>> if (currentValue == enable) >>>> return; >>> >>> I agree to your idea. >>> But, other APIs to set enable value do not check above condition. >>> Above condition must be added in this function? >> >> I think such if check would make sense if the operation was expensive. However, these are settings and the behavior is usually to set a boolean flag in memory. In practice, adding the if check may make it slower for no good reason. >> >> See for e.g.: >> >> void Settings::setJavaScriptCanOpenWindowsAutomatically(bool javaScriptCanOpenWindowsAutomatically) >> { >> m_javaScriptCanOpenWindowsAutomatically = javaScriptCanOpenWindowsAutomatically; >> } >> >> Would it really make sense to do if (m_javaScriptCanOpenWindowsAutomatically != javaScriptCanOpenWindowsAutomatically) m_javaScriptCanOpenWindowsAutomatically = javaScriptCanOpenWindowsAutomatically; ? > > When we add this check, I also think there is no big performance gain because this is not expensive operation. In addition, to add this condition is not big operation. However, I think it doesn't generally make sense we set same value again. If the settings operation become a expensive stuff, I think this checking will prevent to waste our resource in future. > > Honestly, now there is no gain by this checking. But, if we add additional operation in ewk_settings_xxx function as below, > > Eina_Bool ewk_settings_encoding_detector_enabled_set(Ewk_Settings* settings, Eina_Bool enable) > { > EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false); > > settings->preferences()->setUsesEncodingDetector(enable); > > // To do something. > > return true; > } > > In this case, we have to add this checking. But, I think it would be not bad if we add this now in order to prevent to do unnecessary operations in future.
Yes, I agree with you that if it does something more that setting a flag, adding a change check is worth it. However, it is not the case at the moment, and I would like to avoid refactoring which adds more code (and potentially decreases performance) unless we really need to. If more logic is added later which may take time, then we can optimize then, by adding the change check as you suggest. I would hold off on it until then though.
Mikhail Pozdnyakov
Comment 11
2012-11-15 04:09:37 PST
(In reply to
comment #9
)
> (In reply to
comment #8
) > > (From update of
attachment 174331
[details]
[details]) > > View in context:
https://bugs.webkit.org/attachment.cgi?id=174331&action=review
> > > > >>> Source/WebKit2/UIProcess/API/efl/ewk_settings.cpp:323 > > >>> + EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false); > > >> > > >> I think we don't need to set if enable value is same as current value. > > >> > > >> For example, you may add this condition. > > >> > > >> bool currentValue = settings->preferences()->javaScriptCanOpenWindowsAutomatically(); > > >> if (currentValue == enable) > > >> return; > > > > > > I agree to your idea. > > > But, other APIs to set enable value do not check above condition. > > > Above condition must be added in this function? > > > > I think such if check would make sense if the operation was expensive. However, these are settings and the behavior is usually to set a boolean flag in memory. In practice, adding the if check may make it slower for no good reason. > > > > See for e.g.: > > > > void Settings::setJavaScriptCanOpenWindowsAutomatically(bool javaScriptCanOpenWindowsAutomatically) > > { > > m_javaScriptCanOpenWindowsAutomatically = javaScriptCanOpenWindowsAutomatically; > > } > > > > Would it really make sense to do if (m_javaScriptCanOpenWindowsAutomatically != javaScriptCanOpenWindowsAutomatically) m_javaScriptCanOpenWindowsAutomatically = javaScriptCanOpenWindowsAutomatically; ? > > When we add this check, I also think there is no big performance gain because this is not expensive operation. In addition, to add this condition is not big operation. However, I think it doesn't generally make sense we set same value again. If the settings operation become a expensive stuff, I think this checking will prevent to waste our resource in future. > > Honestly, now there is no gain by this checking. But, if we add additional operation in ewk_settings_xxx function as below, > > Eina_Bool ewk_settings_encoding_detector_enabled_set(Ewk_Settings* settings, Eina_Bool enable) > { > EINA_SAFETY_ON_NULL_RETURN_VAL(settings, false); > > settings->preferences()->setUsesEncodingDetector(enable); > > // To do something. > > return true; > } > > In this case, we have to add this checking. But, I think it would be not bad if we add this now in order to prevent to do unnecessary operations in future.
I would not put it as a rule to be done dogmatically every time, and introduce the check only in cases when we really have an expensive operation.
Gyuyoung Kim
Comment 12
2012-11-15 04:10:58 PST
(In reply to
comment #10
)
> Yes, I agree with you that if it does something more that setting a flag, adding a change check is worth it. > However, it is not the case at the moment, and I would like to avoid refactoring which adds more code (and potentially decreases performance) unless we really need to. If more logic is added later which may take time, then we can optimize then, by adding the change check as you suggest. I would hold off on it until then though.
This is timing problem. Ok, let's do that.
WebKit Review Bot
Comment 13
2012-11-15 04:14:00 PST
Comment on
attachment 174331
[details]
Patch Clearing flags on attachment: 174331 Committed
r134760
: <
http://trac.webkit.org/changeset/134760
>
WebKit Review Bot
Comment 14
2012-11-15 04:14:05 PST
All reviewed patches have been landed. Closing bug.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug