Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
71ce8aaa
Commit
71ce8aaa
authored
Dec 24, 2014
by
Jacek Caban
Committed by
Alexandre Julliard
Dec 24, 2014
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
mshtml: Flush pending document node tasks before firing onload event.
parent
94fcaad7
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
26 additions
and
3 deletions
+26
-3
mshtml_private.h
dlls/mshtml/mshtml_private.h
+1
-0
nsevents.c
dlls/mshtml/nsevents.c
+6
-3
task.c
dlls/mshtml/task.c
+19
-0
No files found.
dlls/mshtml/mshtml_private.h
View file @
71ce8aaa
...
...
@@ -1038,6 +1038,7 @@ HWND get_thread_hwnd(void) DECLSPEC_HIDDEN;
LONG
get_task_target_magic
(
void
)
DECLSPEC_HIDDEN
;
HRESULT
push_task
(
task_t
*
,
task_proc_t
,
task_proc_t
,
LONG
)
DECLSPEC_HIDDEN
;
void
remove_target_tasks
(
LONG
)
DECLSPEC_HIDDEN
;
void
flush_pending_tasks
(
LONG
)
DECLSPEC_HIDDEN
;
HRESULT
set_task_timer
(
HTMLInnerWindow
*
,
DWORD
,
BOOL
,
IDispatch
*
,
LONG
*
)
DECLSPEC_HIDDEN
;
HRESULT
clear_task_timer
(
HTMLInnerWindow
*
,
BOOL
,
DWORD
)
DECLSPEC_HIDDEN
;
...
...
dlls/mshtml/nsevents.c
View file @
71ce8aaa
...
...
@@ -233,7 +233,6 @@ static nsresult NSAPI handle_load(nsIDOMEventListener *iface, nsIDOMEvent *event
{
nsEventListener
*
This
=
impl_from_nsIDOMEventListener
(
iface
);
HTMLDocumentNode
*
doc
=
This
->
This
->
doc
;
nsIDOMHTMLElement
*
nsbody
=
NULL
;
HTMLDocumentObj
*
doc_obj
=
NULL
;
nsresult
nsres
=
NS_OK
;
...
...
@@ -268,8 +267,12 @@ static nsresult NSAPI handle_load(nsIDOMEventListener *iface, nsIDOMEvent *event
&
doc
->
basedoc
.
window
->
base
.
IHTMLWindow2_iface
,
0
);
if
(
doc
->
nsdoc
)
{
nsIDOMHTMLDocument_GetBody
(
doc
->
nsdoc
,
&
nsbody
);
if
(
nsbody
)
{
nsIDOMHTMLElement
*
nsbody
;
flush_pending_tasks
(
doc
->
basedoc
.
task_magic
);
nsres
=
nsIDOMHTMLDocument_GetBody
(
doc
->
nsdoc
,
&
nsbody
);
if
(
NS_SUCCEEDED
(
nsres
)
&&
nsbody
)
{
fire_event
(
doc
,
EVENTID_LOAD
,
TRUE
,
(
nsIDOMNode
*
)
nsbody
,
event
,
(
IDispatch
*
)
&
doc
->
window
->
base
.
IDispatchEx_iface
);
nsIDOMHTMLElement_Release
(
nsbody
);
}
...
...
dlls/mshtml/task.c
View file @
71ce8aaa
...
...
@@ -102,6 +102,25 @@ static void release_task_timer(HWND thread_hwnd, task_timer_t *timer)
heap_free
(
timer
);
}
void
flush_pending_tasks
(
LONG
target
)
{
thread_data_t
*
thread_data
=
get_thread_data
(
FALSE
);
struct
list
*
liter
,
*
ltmp
;
task_t
*
task
;
if
(
!
thread_data
)
return
;
LIST_FOR_EACH_SAFE
(
liter
,
ltmp
,
&
thread_data
->
task_list
)
{
task
=
LIST_ENTRY
(
liter
,
task_t
,
entry
);
if
(
task
->
target_magic
==
target
)
{
list_remove
(
&
task
->
entry
);
task
->
proc
(
task
);
task
->
destr
(
task
);
}
}
}
void
remove_target_tasks
(
LONG
target
)
{
thread_data_t
*
thread_data
=
get_thread_data
(
FALSE
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment