diff options
author | jrg@chromium.org <jrg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-02-06 20:36:33 +0000 |
---|---|---|
committer | jrg@chromium.org <jrg@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-02-06 20:36:33 +0000 |
commit | be645db8f6309a1e9a2670e3a23c7b2d7b403519 (patch) | |
tree | 2f8b2408bdba3c970074ec5bb2f027e7b78776e3 /chrome/renderer | |
parent | da90ffdff909ac442444c6d7b8ec9a2a15d8f01a (diff) | |
download | chromium_src-be645db8f6309a1e9a2670e3a23c7b2d7b403519.zip chromium_src-be645db8f6309a1e9a2670e3a23c7b2d7b403519.tar.gz chromium_src-be645db8f6309a1e9a2670e3a23c7b2d7b403519.tar.bz2 |
Reference and create a RenderView when needed.
This initiates the landslide of linker hell in Chromium.app,
bringing in webkit, v8, and the kitchen sink.
Review URL: http://codereview.chromium.org/21123
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@9335 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer')
-rw-r--r-- | chrome/renderer/render_thread.cc | 13 | ||||
-rw-r--r-- | chrome/renderer/render_view.cc | 20 | ||||
-rw-r--r-- | chrome/renderer/render_view.h | 3 |
3 files changed, 29 insertions, 7 deletions
diff --git a/chrome/renderer/render_thread.cc b/chrome/renderer/render_thread.cc index d2d293b..3260a29 100644 --- a/chrome/renderer/render_thread.cc +++ b/chrome/renderer/render_thread.cc @@ -218,7 +218,7 @@ void RenderThread::OnSetNextPageID(int32 next_page_id) { // This should only be called at process initialization time, so we shouldn't // have to worry about thread-safety. // TODO(port) -#if defined(OS_WIN) +#if !defined(OS_LINUX) RenderView::SetNextPageID(next_page_id); #endif } @@ -227,7 +227,10 @@ void RenderThread::OnCreateNewView(gfx::NativeViewId parent_hwnd, ModalDialogEvent modal_dialog_event, const WebPreferences& webkit_prefs, int32 view_id) { -#if defined(OS_WIN) + // TODO(port): this routine is a noop only for Linux. + // When bringing in render_view, also bring in webkit's glue and jsbindings. +#if !defined(OS_LINUX) + base::WaitableEvent* waitable_event = new base::WaitableEvent( #if defined(OS_WIN) modal_dialog_event.event); @@ -235,12 +238,16 @@ void RenderThread::OnCreateNewView(gfx::NativeViewId parent_hwnd, true, false); #endif +#if defined(OS_MACOSX) + // TODO(jrg): causes a crash. + if (0) +#endif // TODO(darin): once we have a RenderThread per RenderView, this will need to // change to assert that we are not creating more than one view. RenderView::Create( this, parent_hwnd, waitable_event, MSG_ROUTING_NONE, webkit_prefs, new SharedRenderViewCounter(0), view_id); -#endif +#endif // !OS_LINUX } void RenderThread::OnSetCacheCapacities(size_t min_dead_capacity, diff --git a/chrome/renderer/render_view.cc b/chrome/renderer/render_view.cc index ca54f01..892915b 100644 --- a/chrome/renderer/render_view.cc +++ b/chrome/renderer/render_view.cc @@ -329,7 +329,7 @@ void RenderView::OnMessageReceived(const IPC::Message& message) { // parents any plugins instantiated in this RenderView instance. // Plugins can be instantiated only when we receive the parent window // handle as they are child windows. - if (waiting_for_create_window_ack_ && + if (waiting_for_create_window_ack_ && resource_dispatcher_->IsResourceMessage(message)) { queued_resource_messages_.push(new IPC::Message(message)); return; @@ -1140,7 +1140,7 @@ void RenderView::UpdateURL(WebFrame* frame) { #if defined(OS_WIN) if (glue_accessibility_.get()) { - // Clear accessibility info cache. + // Clear accessibility info cache. glue_accessibility_->ClearIAccessibleMap(-1, true); } #else @@ -1340,7 +1340,7 @@ void RenderView::DidFailProvisionalLoadWithError(WebView* webview, } } - // Fallback to a local error page. + // Fallback to a local error page. LoadNavigationErrorPage(frame, &failed_request, error, std::string(), replace); } @@ -1923,7 +1923,13 @@ WebPluginDelegate* RenderView::CreatePluginDelegate( } webkit_glue::WebMediaPlayerDelegate* RenderView::CreateMediaPlayerDelegate() { +#if defined(OS_WIN) return new WebMediaPlayerDelegateImpl(this); +#else + // TODO(port) + NOTIMPLEMENTED(); + return NULL; +#endif } void RenderView::OnMissingPluginStatus(WebPluginDelegate* delegate, @@ -2023,7 +2029,7 @@ void RenderView::ShowContextMenu(WebView* webview, params.frame_url = frame_url; params.selection_text = selection_text; params.misspelled_word = misspelled_word; - params.spellcheck_enabled = + params.spellcheck_enabled = webview->GetFocusedFrame()->SpellCheckEnabled(); params.edit_flags = edit_flags; params.security_info = security_info; @@ -2856,7 +2862,13 @@ std::string RenderView::GetAltHTMLForTemplate( NOTREACHED() << "unable to load template. ID: " << template_resource_id; return ""; } +#if defined(OS_WIN) // "t" is the id of the templates root node. return jstemplate_builder::GetTemplateHtml( template_html, &error_strings, "t"); +#else + // TODO(port) + NOTIMPLEMENTED(); + return std::string(); +#endif // OS_WIN } diff --git a/chrome/renderer/render_view.h b/chrome/renderer/render_view.h index 83047b9..56b90f6 100644 --- a/chrome/renderer/render_view.h +++ b/chrome/renderer/render_view.h @@ -706,9 +706,12 @@ class RenderView : public RenderWidget, // shouldn't count against their own |shared_popup_counter_|. bool decrement_shared_popup_at_destruction_; + // TODO(port): revisit once qwe have accessibility +#if defined(OS_WIN) // Handles accessibility requests into the renderer side, as well as // maintains the cache and other features of the accessibility tree. scoped_ptr<GlueAccessibility> glue_accessibility_; +#endif // Resource message queue. Used to queue up resource IPCs if we need // to wait for an ACK from the browser before proceeding. |