Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(209)

Side by Side Diff: chrome/renderer/render_view.h

Issue 16554: WaitableEvent (Closed)
Patch Set: Addresssing darin's comments (round 2) Created 11 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « chrome/renderer/render_thread.cc ('k') | chrome/renderer/render_view.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_RENDERER_RENDER_VIEW_H_ 5 #ifndef CHROME_RENDERER_RENDER_VIEW_H_
6 #define CHROME_RENDERER_RENDER_VIEW_H_ 6 #define CHROME_RENDERER_RENDER_VIEW_H_
7 7
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 30 matching lines...) Expand all
41 class GURL; 41 class GURL;
42 class RenderThread; 42 class RenderThread;
43 class SkBitmap; 43 class SkBitmap;
44 struct ThumbnailScore; 44 struct ThumbnailScore;
45 class WebError; 45 class WebError;
46 class WebFrame; 46 class WebFrame;
47 class WebPluginDelegate; 47 class WebPluginDelegate;
48 class WebPluginDelegateProxy; 48 class WebPluginDelegateProxy;
49 enum WebRequestCachePolicy; 49 enum WebRequestCachePolicy;
50 50
51 namespace base {
52 class WaitableEvent;
53 }
54
51 namespace webkit_glue { 55 namespace webkit_glue {
52 struct FileUploadData; 56 struct FileUploadData;
53 } 57 }
54 58
55 // We need to prevent a page from trying to create infinite popups. It is not 59 // We need to prevent a page from trying to create infinite popups. It is not
56 // as simple as keeping a count of the number of immediate children 60 // as simple as keeping a count of the number of immediate children
57 // popups. Having an html file that window.open()s itself would create 61 // popups. Having an html file that window.open()s itself would create
58 // an unlimited chain of RenderViews who only have one RenderView child. 62 // an unlimited chain of RenderViews who only have one RenderView child.
59 // 63 //
60 // Therefore, each new top level RenderView creates a new counter and shares it 64 // Therefore, each new top level RenderView creates a new counter and shares it
(...skipping 17 matching lines...) Expand all
78 // parent of the WebView HWND that will be created. The modal_dialog_event 82 // parent of the WebView HWND that will be created. The modal_dialog_event
79 // is set by the RenderView whenever a modal dialog alert is shown, so that 83 // is set by the RenderView whenever a modal dialog alert is shown, so that
80 // the renderer and plugin processes know to pump window messages. If this 84 // the renderer and plugin processes know to pump window messages. If this
81 // is a constrained popup or as a new tab, opener_id is the routing ID of the 85 // is a constrained popup or as a new tab, opener_id is the routing ID of the
82 // RenderView responsible for creating this RenderView (corresponding to the 86 // RenderView responsible for creating this RenderView (corresponding to the
83 // parent_hwnd). |counter| is either a currently initialized counter, or NULL 87 // parent_hwnd). |counter| is either a currently initialized counter, or NULL
84 // (in which case we treat this RenderView as a top level window). 88 // (in which case we treat this RenderView as a top level window).
85 static RenderView* Create( 89 static RenderView* Create(
86 RenderThreadBase* render_thread, 90 RenderThreadBase* render_thread,
87 HWND parent_hwnd, 91 HWND parent_hwnd,
88 HANDLE modal_dialog_event, 92 base::WaitableEvent* modal_dialog_event, // takes ownership
89 int32 opener_id, 93 int32 opener_id,
90 const WebPreferences& webkit_prefs, 94 const WebPreferences& webkit_prefs,
91 SharedRenderViewCounter* counter, 95 SharedRenderViewCounter* counter,
92 int32 routing_id); 96 int32 routing_id);
93 97
94 // Sets the "next page id" counter. 98 // Sets the "next page id" counter.
95 static void SetNextPageID(int32 next_page_id); 99 static void SetNextPageID(int32 next_page_id);
96 100
97 // The resource dispatcher used to fetch resources for this view. 101 // The resource dispatcher used to fetch resources for this view.
98 ResourceDispatcher* resource_dispatcher() { 102 ResourceDispatcher* resource_dispatcher() {
99 return resource_dispatcher_; 103 return resource_dispatcher_;
100 } 104 }
101 105
102 // May return NULL when the view is closing. 106 // May return NULL when the view is closing.
103 WebView* webview() const { 107 WebView* webview() const {
104 return static_cast<WebView*>(webwidget()); 108 return static_cast<WebView*>(webwidget());
105 } 109 }
106 110
107 HWND host_window() const { 111 HWND host_window() const {
108 return host_window_; 112 return host_window_;
109 } 113 }
110 114
111 HANDLE modal_dialog_event() { 115 base::WaitableEvent* modal_dialog_event() {
112 return modal_dialog_event_.Get(); 116 return modal_dialog_event_.get();
113 } 117 }
114 118
115 // IPC::Channel::Listener 119 // IPC::Channel::Listener
116 virtual void OnMessageReceived(const IPC::Message& msg); 120 virtual void OnMessageReceived(const IPC::Message& msg);
117 121
118 // WebViewDelegate 122 // WebViewDelegate
119 virtual void ShowModalHTMLDialog(const GURL& url, int width, int height, 123 virtual void ShowModalHTMLDialog(const GURL& url, int width, int height,
120 const std::string& json_arguments, 124 const std::string& json_arguments,
121 std::string* json_retval); 125 std::string* json_retval);
122 virtual void RunJavaScriptAlert(WebView* webview, 126 virtual void RunJavaScriptAlert(WebView* webview,
(...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after
321 private: 325 private:
322 FRIEND_TEST(RenderViewTest, OnLoadAlternateHTMLText); 326 FRIEND_TEST(RenderViewTest, OnLoadAlternateHTMLText);
323 FRIEND_TEST(RenderViewTest, OnNavStateChanged); 327 FRIEND_TEST(RenderViewTest, OnNavStateChanged);
324 328
325 explicit RenderView(RenderThreadBase* render_thread); 329 explicit RenderView(RenderThreadBase* render_thread);
326 330
327 // Initializes this view with the given parent and ID. The |routing_id| can be 331 // Initializes this view with the given parent and ID. The |routing_id| can be
328 // set to 'MSG_ROUTING_NONE' if the true ID is not yet known. In this case, 332 // set to 'MSG_ROUTING_NONE' if the true ID is not yet known. In this case,
329 // CompleteInit must be called later with the true ID. 333 // CompleteInit must be called later with the true ID.
330 void Init(HWND parent, 334 void Init(HWND parent,
331 HANDLE modal_dialog_event, 335 base::WaitableEvent* modal_dialog_event, // takes ownership
332 int32 opener_id, 336 int32 opener_id,
333 const WebPreferences& webkit_prefs, 337 const WebPreferences& webkit_prefs,
334 SharedRenderViewCounter* counter, 338 SharedRenderViewCounter* counter,
335 int32 routing_id); 339 int32 routing_id);
336 340
337 void UpdateURL(WebFrame* frame); 341 void UpdateURL(WebFrame* frame);
338 void UpdateTitle(WebFrame* frame, const std::wstring& title); 342 void UpdateTitle(WebFrame* frame, const std::wstring& title);
339 void UpdateSessionHistory(WebFrame* frame); 343 void UpdateSessionHistory(WebFrame* frame);
340 344
341 // Update current main frame's encoding and send it to browser window. 345 // Update current main frame's encoding and send it to browser window.
(...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after
652 WebPluginDelegate* first_default_plugin_; 656 WebPluginDelegate* first_default_plugin_;
653 657
654 // If the browser hasn't sent us an ACK for the last FindReply we sent 658 // If the browser hasn't sent us an ACK for the last FindReply we sent
655 // to it, then we need to queue up the message (keeping only the most 659 // to it, then we need to queue up the message (keeping only the most
656 // recent message if new ones come in). 660 // recent message if new ones come in).
657 scoped_ptr<IPC::Message> queued_find_reply_message_; 661 scoped_ptr<IPC::Message> queued_find_reply_message_;
658 662
659 // Handle to an event that's set when the page is showing a modal dialog (or 663 // Handle to an event that's set when the page is showing a modal dialog (or
660 // equivalent constrained window). The renderer and any plugin processes 664 // equivalent constrained window). The renderer and any plugin processes
661 // check this to know if they should pump messages/tasks then. 665 // check this to know if they should pump messages/tasks then.
662 ScopedHandle modal_dialog_event_; 666 scoped_ptr<base::WaitableEvent> modal_dialog_event_;
663 667
664 // Document width when in print CSS media type. 0 otherwise. 668 // Document width when in print CSS media type. 0 otherwise.
665 int printed_document_width_; 669 int printed_document_width_;
666 670
667 // Backup the view size before printing since it needs to be overriden. This 671 // Backup the view size before printing since it needs to be overriden. This
668 // value is set to restore the view size when printing is done. 672 // value is set to restore the view size when printing is done.
669 gfx::Size printing_view_size_; 673 gfx::Size printing_view_size_;
670 674
671 scoped_refptr<DebugMessageHandler> debug_message_handler_; 675 scoped_refptr<DebugMessageHandler> debug_message_handler_;
672 676
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
726 // Time in seconds of the delay between syncing page state such as form 730 // Time in seconds of the delay between syncing page state such as form
727 // elements and scroll position. This timeout allows us to avoid spamming the 731 // elements and scroll position. This timeout allows us to avoid spamming the
728 // browser process with every little thing that changes. This normally doesn't 732 // browser process with every little thing that changes. This normally doesn't
729 // change but is overridden by tests. 733 // change but is overridden by tests.
730 int delay_seconds_for_form_state_sync_; 734 int delay_seconds_for_form_state_sync_;
731 735
732 DISALLOW_COPY_AND_ASSIGN(RenderView); 736 DISALLOW_COPY_AND_ASSIGN(RenderView);
733 }; 737 };
734 738
735 #endif // CHROME_RENDERER_RENDER_VIEW_H_ 739 #endif // CHROME_RENDERER_RENDER_VIEW_H_
OLDNEW
« no previous file with comments | « chrome/renderer/render_thread.cc ('k') | chrome/renderer/render_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698