| Differences between
and this patch
- a/ManualTests/database-success-callback.html +24 lines
Line 0 a/ManualTests/database-success-callback.html_sec1
1
<body>
2
<p id="result">Callback hasn't been called</p>
3
<script>
4
var showingAlert;
5
6
function transactionSuccessCallback()
7
{
8
    if (showingAlert)
9
        document.getElementById("result").innerHTML = "Callback was called while JS dialog was opened. Test failed";
10
    else
11
        document.getElementById("result").innerHTML = "Test passed";
12
}
13
14
var db = openDatabase("DatabaseCallbackTest", "1.0", "", 1);
15
db.transaction(function(tx) { tx.executeSql("CREATE TABLE IF NOT EXISTS CallbackDeferredTest (randomData)", []); }, null, transactionSuccessCallback);
16
17
showingAlert = true;
18
19
alert("Wait a few seconds and close me");
20
21
showingAlert = false;
22
23
</script>
24
</body>
- a/Source/WebCore/ChangeLog +14 lines
Lines 1-3 a/Source/WebCore/ChangeLog_sec1
1
2011-12-06  Yong Li  <yoli@rim.com>
2
3
        Let JSCustomVoidCallback derive from ActiveDOMCallback, because
4
        it belongs to the document.
5
6
        Reviewed by NOBODY (OOPS!).
7
8
        Test: ManualTests/database-success-callback.html.
9
10
        * bindings/js/JSCustomVoidCallback.cpp:
11
        (WebCore::JSCustomVoidCallback::JSCustomVoidCallback):
12
        (WebCore::JSCustomVoidCallback::handleEvent):
13
        * bindings/js/JSCustomVoidCallback.h:
14
1
2011-12-02  Yong Li  <yoli@rim.com>
15
2011-12-02  Yong Li  <yoli@rim.com>
2
16
3
        https://bugs.webkit.org/show_bug.cgi?id=73683
17
        https://bugs.webkit.org/show_bug.cgi?id=73683
- a/Source/WebCore/bindings/js/JSCustomVoidCallback.cpp -2 / +4 lines
Lines 41-47 namespace WebCore { a/Source/WebCore/bindings/js/JSCustomVoidCallback.cpp_sec1
41
using namespace JSC;
41
using namespace JSC;
42
    
42
    
43
JSCustomVoidCallback::JSCustomVoidCallback(JSObject* callback, JSDOMGlobalObject* globalObject)
43
JSCustomVoidCallback::JSCustomVoidCallback(JSObject* callback, JSDOMGlobalObject* globalObject)
44
    : m_data(new JSCallbackData(callback, globalObject))
44
    : ActiveDOMCallback(globalObject->scriptExecutionContext())
45
    , m_data(new JSCallbackData(callback, globalObject))
45
    , m_scriptExecutionContext(globalObject->scriptExecutionContext())
46
    , m_scriptExecutionContext(globalObject->scriptExecutionContext())
46
{
47
{
47
}
48
}
Lines 59-65 JSCustomVoidCallback::~JSCustomVoidCallback() a/Source/WebCore/bindings/js/JSCustomVoidCallback.cpp_sec2
59
    
60
    
60
void JSCustomVoidCallback::handleEvent()
61
void JSCustomVoidCallback::handleEvent()
61
{
62
{
62
    ASSERT(m_data);
63
    if (!m_data || !m_data->globalObject() || !canInvokeCallback())
64
        return true; 
63
65
64
    RefPtr<JSCustomVoidCallback> protect(this);
66
    RefPtr<JSCustomVoidCallback> protect(this);
65
        
67
        
- a/Source/WebCore/bindings/js/JSCustomVoidCallback.h -2 / +2 lines
Lines 29-36 a/Source/WebCore/bindings/js/JSCustomVoidCallback.h_sec1
29
#ifndef JSCustomVoidCallback_h
29
#ifndef JSCustomVoidCallback_h
30
#define JSCustomVoidCallback_h
30
#define JSCustomVoidCallback_h
31
31
32
#include "ActiveDOMCallback.h"
32
#include "JSDOMGlobalObject.h"
33
#include "JSDOMGlobalObject.h"
33
#include "VoidCallback.h"
34
#include <heap/Strong.h>
34
#include <heap/Strong.h>
35
#include <wtf/Forward.h>
35
#include <wtf/Forward.h>
36
36
Lines 38-44 namespace WebCore { a/Source/WebCore/bindings/js/JSCustomVoidCallback.h_sec2
38
38
39
class JSCallbackData;
39
class JSCallbackData;
40
40
41
class JSCustomVoidCallback : public VoidCallback {
41
class JSCustomVoidCallback : public ActiveDOMCallback {
42
public: 
42
public: 
43
    static PassRefPtr<JSCustomVoidCallback> create(JSC::JSObject* callback, JSDOMGlobalObject* globalObject)
43
    static PassRefPtr<JSCustomVoidCallback> create(JSC::JSObject* callback, JSDOMGlobalObject* globalObject)
44
    {
44
    {

Return to Bug 73945