I took a look at CodeGeneratorJS.pm to see how hard it would be to port this 
over.  I have no idea where to start...   The structure of CodeGeneratorJS.pm 
and CodeGeneratorV8.pm seem quite different.  This also seems like a lot of 
work to do just to enable/disable one feature, but I guess if there's no 
framework for enabling/disabling JS features in JSC at all then it's necessary.

Is there wide agreement that porting the RuntimeEnabledFeatures to JSC is a 
good idea?  If so I'll file a bug.

Joe

From: jor...@google.com [mailto:jor...@google.com] On Behalf Of Jeremy Orlow
Sent: Thursday, January 06, 2011 2:43 PM
To: Joe Mason
Cc: webkit-dev Development
Subject: Re: [webkit-dev] Getting at Settings object from WorkerContext

Btw, the reason that this behavior has to live in the bindings and not WebCore 
is to ensure feature detection code still works.  For example, if indexedDB is 
disabled at runtime, then the webkitIndexedDB attribute on window needs to not 
exist in any form.

Also, IIRC, because of optimizations, the runtime features are actually more of 
initialize time features in v8.  I.e. once window has been accessed, any of the 
RuntimeEnabledFeatures settings are locked in until you restart WebKit.  I 
don't know how hard it'd be to make it something that can change on the fly.

J
On Thu, Jan 6, 2011 at 7:38 PM, Jeremy Orlow 
<jor...@chromium.org<mailto:jor...@chromium.org>> wrote:
Hmm.  It might still be v8-only, though I'm surprised since the class was moved 
from the v8 directory to generic.  If that's the case, then I suppose it'll 
need to be ported to JSC.

J

On Thu, Jan 6, 2011 at 7:24 PM, Joe Mason 
<jma...@rim.com<mailto:jma...@rim.com>> wrote:
Hmm, I can't get the RuntimeEnabledFeatures class working.

bool RuntimeEnabledFeatures::webSocketEnabled()
{
    return WebSocket::isAvailable();
}

So it looks from that like I should just be able to call 
WebSocket::setIsAvailable(false), and then websockets would automatically drop 
out.  But when I tried that (and I've verified that nothings setting it to true 
behind my back), JSDOMWindow::webSocket still gets called and returns the 
socket prototype.  I can't seem to find any code that calls webSocketEnabled.

I notice that RuntimeEnabledFeatures is referenced in CodeGeneratorV8.pm, but 
not any other code generator.  Is this a V8-only thing?

Joe

From: 
webkit-dev-boun...@lists.webkit.org<mailto:webkit-dev-boun...@lists.webkit.org> 
[mailto:webkit-dev-boun...@lists.webkit.org<mailto:webkit-dev-boun...@lists.webkit.org>]
 On Behalf Of Joe Mason
Sent: Thursday, January 06, 2011 1:52 PM
To: Jeremy Orlow

Cc: webkit-dev Development
Subject: Re: [webkit-dev] Getting at Settings object from WorkerContext

Aha, there is already a "websocketsEnabled" method there!  Thanks, that's 
perfect.

From: jor...@google.com<mailto:jor...@google.com> 
[mailto:jor...@google.com<mailto:jor...@google.com>] On Behalf Of Jeremy Orlow
Sent: Thursday, January 06, 2011 1:25 PM
To: Joe Mason
Cc: webkit-dev Development
Subject: Re: [webkit-dev] Getting at Settings object from WorkerContext

The RuntimeEnabledFeatures class [1] seems like what you're looking for.

J

[1] 
http://codesearch.google.com/codesearch/p?hl=en#OAMlx_jo-ck/src/third_party/WebKit/WebCore/bindings/generic/RuntimeEnabledFeatures.h&q=RuntimeFeature&exact_package=chromium&d=6
On Thu, Jan 6, 2011 at 6:05 PM, Joe Mason 
<jma...@rim.com<mailto:jma...@rim.com>> wrote:
I'm trying to add a setting to enable/disable WebSockets at runtime (so that 
the browser can make websockets available as a user preference, for instance).  
It's easy to add a flag to Settings, and check it from 
JSDOMWindowCustom::webSocket to return undefined for the websocket object when 
it's disabled.  But you can also get a websocket object from a worker, with 
JSWorkerContext::webSocket.  And since there's no frame or page associated 
here, there's no way to get a Settings object.

Is it possible to get a Settings object from a WorkerContext?

If not, I think I need to make the setting a static on the Settings object.  
There's precedent for this in setMinDOMTimerInterval and 
setShouldUseHighResolutionTimer, but it doesn't feel right for a high-level 
feature like this.

Joe

---------------------------------------------------------------------
This transmission (including any attachments) may contain confidential 
information, privileged material (including material protected by the 
solicitor-client or other applicable privileges), or constitute non-public 
information. Any use of this information by anyone other than the intended 
recipient is prohibited. If you have received this transmission in error, 
please immediately reply to the sender and delete this information from your 
system. Use, dissemination, distribution, or reproduction of this transmission 
by unintended recipients is not authorized and may be unlawful.
_______________________________________________
webkit-dev mailing list
webkit-dev@lists.webkit.org<mailto:webkit-dev@lists.webkit.org>
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

---------------------------------------------------------------------
This transmission (including any attachments) may contain confidential 
information, privileged material (including material protected by the 
solicitor-client or other applicable privileges), or constitute non-public 
information. Any use of this information by anyone other than the intended 
recipient is prohibited. If you have received this transmission in error, 
please immediately reply to the sender and delete this information from your 
system. Use, dissemination, distribution, or reproduction of this transmission 
by unintended recipients is not authorized and may be unlawful.
---------------------------------------------------------------------
This transmission (including any attachments) may contain confidential 
information, privileged material (including material protected by the 
solicitor-client or other applicable privileges), or constitute non-public 
information. Any use of this information by anyone other than the intended 
recipient is prohibited. If you have received this transmission in error, 
please immediately reply to the sender and delete this information from your 
system. Use, dissemination, distribution, or reproduction of this transmission 
by unintended recipients is not authorized and may be unlawful.



---------------------------------------------------------------------
This transmission (including any attachments) may contain confidential 
information, privileged material (including material protected by the 
solicitor-client or other applicable privileges), or constitute non-public 
information. Any use of this information by anyone other than the intended 
recipient is prohibited. If you have received this transmission in error, 
please immediately reply to the sender and delete this information from your 
system. Use, dissemination, distribution, or reproduction of this transmission 
by unintended recipients is not authorized and may be unlawful.
_______________________________________________
webkit-dev mailing list
webkit-dev@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

Reply via email to