| OLD | NEW | 
|---|
| 1 /* | 1 /* | 
| 2  * Copyright (C) 2006, 2007, 2008, 2010 Apple Inc. All rights reserved. | 2  * Copyright (C) 2006, 2007, 2008, 2010 Apple Inc. All rights reserved. | 
| 3  * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) | 3  * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) | 
| 4  * Copyright (C) 2013 Samsung Electronics. All rights reserved. | 4  * Copyright (C) 2013 Samsung Electronics. All rights reserved. | 
| 5  * | 5  * | 
| 6  * Redistribution and use in source and binary forms, with or without | 6  * Redistribution and use in source and binary forms, with or without | 
| 7  * modification, are permitted provided that the following conditions are | 7  * modification, are permitted provided that the following conditions are | 
| 8  * met: | 8  * met: | 
| 9  * | 9  * | 
| 10  *     * Redistributions of source code must retain the above copyright | 10  *     * Redistributions of source code must retain the above copyright | 
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 60         if (isEval && policy && !policy->allowEval(scriptState, ContentSecurityP
     olicy::SendReport, ContentSecurityPolicy::WillNotThrowException)) | 60         if (isEval && policy && !policy->allowEval(scriptState, ContentSecurityP
     olicy::SendReport, ContentSecurityPolicy::WillNotThrowException)) | 
| 61             return false; | 61             return false; | 
| 62         return true; | 62         return true; | 
| 63     } | 63     } | 
| 64     ASSERT_NOT_REACHED(); | 64     ASSERT_NOT_REACHED(); | 
| 65     return false; | 65     return false; | 
| 66 } | 66 } | 
| 67 | 67 | 
| 68 int setTimeout(ScriptState* scriptState, EventTarget& eventTarget, const ScriptV
     alue& handler, int timeout, const Vector<ScriptValue>& arguments) | 68 int setTimeout(ScriptState* scriptState, EventTarget& eventTarget, const ScriptV
     alue& handler, int timeout, const Vector<ScriptValue>& arguments) | 
| 69 { | 69 { | 
| 70     ExecutionContext* executionContext = eventTarget.executionContext(); | 70     ExecutionContext* executionContext = eventTarget.getExecutionContext(); | 
| 71     if (!isAllowed(scriptState, executionContext, false)) | 71     if (!isAllowed(scriptState, executionContext, false)) | 
| 72         return 0; | 72         return 0; | 
| 73     if (timeout >= 0 && executionContext->isDocument()) { | 73     if (timeout >= 0 && executionContext->isDocument()) { | 
| 74         // FIXME: Crude hack that attempts to pass idle time to V8. This should | 74         // FIXME: Crude hack that attempts to pass idle time to V8. This should | 
| 75         // be done using the scheduler instead. | 75         // be done using the scheduler instead. | 
| 76         V8GCForContextDispose::instance().notifyIdle(); | 76         V8GCForContextDispose::instance().notifyIdle(); | 
| 77     } | 77     } | 
| 78     OwnPtrWillBeRawPtr<ScheduledAction> action = ScheduledAction::create(scriptS
     tate, handler, arguments); | 78     OwnPtrWillBeRawPtr<ScheduledAction> action = ScheduledAction::create(scriptS
     tate, handler, arguments); | 
| 79     return DOMTimer::install(executionContext, action.release(), timeout, true); | 79     return DOMTimer::install(executionContext, action.release(), timeout, true); | 
| 80 } | 80 } | 
| 81 | 81 | 
| 82 int setTimeout(ScriptState* scriptState, EventTarget& eventTarget, const String&
      handler, int timeout, const Vector<ScriptValue>&) | 82 int setTimeout(ScriptState* scriptState, EventTarget& eventTarget, const String&
      handler, int timeout, const Vector<ScriptValue>&) | 
| 83 { | 83 { | 
| 84     ExecutionContext* executionContext = eventTarget.executionContext(); | 84     ExecutionContext* executionContext = eventTarget.getExecutionContext(); | 
| 85     if (!isAllowed(scriptState, executionContext, true)) | 85     if (!isAllowed(scriptState, executionContext, true)) | 
| 86         return 0; | 86         return 0; | 
| 87     // Don't allow setting timeouts to run empty functions.  Was historically a | 87     // Don't allow setting timeouts to run empty functions.  Was historically a | 
| 88     // perfomance issue. | 88     // perfomance issue. | 
| 89     if (handler.isEmpty()) | 89     if (handler.isEmpty()) | 
| 90         return 0; | 90         return 0; | 
| 91     if (timeout >= 0 && executionContext->isDocument()) { | 91     if (timeout >= 0 && executionContext->isDocument()) { | 
| 92         // FIXME: Crude hack that attempts to pass idle time to V8. This should | 92         // FIXME: Crude hack that attempts to pass idle time to V8. This should | 
| 93         // be done using the scheduler instead. | 93         // be done using the scheduler instead. | 
| 94         V8GCForContextDispose::instance().notifyIdle(); | 94         V8GCForContextDispose::instance().notifyIdle(); | 
| 95     } | 95     } | 
| 96     OwnPtrWillBeRawPtr<ScheduledAction> action = ScheduledAction::create(scriptS
     tate, handler); | 96     OwnPtrWillBeRawPtr<ScheduledAction> action = ScheduledAction::create(scriptS
     tate, handler); | 
| 97     return DOMTimer::install(executionContext, action.release(), timeout, true); | 97     return DOMTimer::install(executionContext, action.release(), timeout, true); | 
| 98 } | 98 } | 
| 99 | 99 | 
| 100 int setInterval(ScriptState* scriptState, EventTarget& eventTarget, const Script
     Value& handler, int timeout, const Vector<ScriptValue>& arguments) | 100 int setInterval(ScriptState* scriptState, EventTarget& eventTarget, const Script
     Value& handler, int timeout, const Vector<ScriptValue>& arguments) | 
| 101 { | 101 { | 
| 102     ExecutionContext* executionContext = eventTarget.executionContext(); | 102     ExecutionContext* executionContext = eventTarget.getExecutionContext(); | 
| 103     if (!isAllowed(scriptState, executionContext, false)) | 103     if (!isAllowed(scriptState, executionContext, false)) | 
| 104         return 0; | 104         return 0; | 
| 105     OwnPtrWillBeRawPtr<ScheduledAction> action = ScheduledAction::create(scriptS
     tate, handler, arguments); | 105     OwnPtrWillBeRawPtr<ScheduledAction> action = ScheduledAction::create(scriptS
     tate, handler, arguments); | 
| 106     return DOMTimer::install(executionContext, action.release(), timeout, false)
     ; | 106     return DOMTimer::install(executionContext, action.release(), timeout, false)
     ; | 
| 107 } | 107 } | 
| 108 | 108 | 
| 109 int setInterval(ScriptState* scriptState, EventTarget& eventTarget, const String
     & handler, int timeout, const Vector<ScriptValue>&) | 109 int setInterval(ScriptState* scriptState, EventTarget& eventTarget, const String
     & handler, int timeout, const Vector<ScriptValue>&) | 
| 110 { | 110 { | 
| 111     ExecutionContext* executionContext = eventTarget.executionContext(); | 111     ExecutionContext* executionContext = eventTarget.getExecutionContext(); | 
| 112     if (!isAllowed(scriptState, executionContext, true)) | 112     if (!isAllowed(scriptState, executionContext, true)) | 
| 113         return 0; | 113         return 0; | 
| 114     // Don't allow setting timeouts to run empty functions.  Was historically a | 114     // Don't allow setting timeouts to run empty functions.  Was historically a | 
| 115     // perfomance issue. | 115     // perfomance issue. | 
| 116     if (handler.isEmpty()) | 116     if (handler.isEmpty()) | 
| 117         return 0; | 117         return 0; | 
| 118     OwnPtrWillBeRawPtr<ScheduledAction> action = ScheduledAction::create(scriptS
     tate, handler); | 118     OwnPtrWillBeRawPtr<ScheduledAction> action = ScheduledAction::create(scriptS
     tate, handler); | 
| 119     return DOMTimer::install(executionContext, action.release(), timeout, false)
     ; | 119     return DOMTimer::install(executionContext, action.release(), timeout, false)
     ; | 
| 120 } | 120 } | 
| 121 | 121 | 
| 122 void clearTimeout(EventTarget& eventTarget, int timeoutID) | 122 void clearTimeout(EventTarget& eventTarget, int timeoutID) | 
| 123 { | 123 { | 
| 124     if (ExecutionContext* context = eventTarget.executionContext()) | 124     if (ExecutionContext* context = eventTarget.getExecutionContext()) | 
| 125         DOMTimer::removeByID(context, timeoutID); | 125         DOMTimer::removeByID(context, timeoutID); | 
| 126 } | 126 } | 
| 127 | 127 | 
| 128 void clearInterval(EventTarget& eventTarget, int timeoutID) | 128 void clearInterval(EventTarget& eventTarget, int timeoutID) | 
| 129 { | 129 { | 
| 130     if (ExecutionContext* context = eventTarget.executionContext()) | 130     if (ExecutionContext* context = eventTarget.getExecutionContext()) | 
| 131         DOMTimer::removeByID(context, timeoutID); | 131         DOMTimer::removeByID(context, timeoutID); | 
| 132 } | 132 } | 
| 133 | 133 | 
| 134 } // namespace DOMWindowTimers | 134 } // namespace DOMWindowTimers | 
| 135 | 135 | 
| 136 } // namespace blink | 136 } // namespace blink | 
| OLD | NEW | 
|---|