diff options
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/browser/browser_process.cc | 4 | ||||
-rw-r--r-- | chrome/browser/browser_process.h | 2 | ||||
-rw-r--r-- | chrome/browser/download/download_request_manager.cc | 9 | ||||
-rw-r--r-- | chrome/browser/renderer_host/render_view_host.cc | 4 | ||||
-rw-r--r-- | chrome/browser/renderer_host/render_view_host.h | 2 | ||||
-rw-r--r-- | chrome/browser/renderer_host/render_view_host_delegate.h | 4 | ||||
-rw-r--r-- | chrome/browser/renderer_host/render_widget_host.cc | 4 | ||||
-rw-r--r-- | chrome/browser/renderer_host/render_widget_host.h | 10 | ||||
-rw-r--r-- | chrome/browser/tab_contents/tab_contents.cc | 7 | ||||
-rw-r--r-- | chrome/browser/tab_contents/tab_contents.h | 2 | ||||
-rw-r--r-- | chrome/browser/tab_contents/tab_contents_view_win.cc | 4 |
11 files changed, 28 insertions, 24 deletions
diff --git a/chrome/browser/browser_process.cc b/chrome/browser/browser_process.cc index 8f29cbc..a646a9e 100644 --- a/chrome/browser/browser_process.cc +++ b/chrome/browser/browser_process.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. +// Copyright (c) 2009 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. @@ -6,7 +6,7 @@ BrowserProcess* g_browser_process = NULL; -#if defined(OS_WIN) +#if defined(OS_WIN) || defined(OS_LINUX) #include "chrome/browser/renderer_host/resource_dispatcher_host.h" diff --git a/chrome/browser/browser_process.h b/chrome/browser/browser_process.h index 7e1a46f..86cee4e 100644 --- a/chrome/browser/browser_process.h +++ b/chrome/browser/browser_process.h @@ -130,7 +130,7 @@ class BrowserProcess { virtual MemoryModel memory_model() = 0; -#if defined(OS_WIN) +#if defined(OS_WIN) || defined(OS_LINUX) DownloadRequestManager* download_request_manager(); #endif diff --git a/chrome/browser/download/download_request_manager.cc b/chrome/browser/download/download_request_manager.cc index 4364700..d779b66 100644 --- a/chrome/browser/download/download_request_manager.cc +++ b/chrome/browser/download/download_request_manager.cc @@ -66,10 +66,15 @@ void DownloadRequestManager::TabDownloadState::PromptUserForDownload( if (is_showing_prompt()) return; // Already showing prompt. - if (DownloadRequestManager::delegate_) + if (DownloadRequestManager::delegate_) { NotifyCallbacks(DownloadRequestManager::delegate_->ShouldAllowDownload()); - else + } else { dialog_delegate_ = DownloadRequestDialogDelegate::Create(tab, this); + // TODO(estade): the dialog delegate isn't yet implemented on linux. Just + // assume we shouldn't allow the download. + if (dialog_delegate_ == NULL) + NotifyCallbacks(false); + } } void DownloadRequestManager::TabDownloadState::Cancel() { diff --git a/chrome/browser/renderer_host/render_view_host.cc b/chrome/browser/renderer_host/render_view_host.cc index 44c0023..421615f 100644 --- a/chrome/browser/renderer_host/render_view_host.cc +++ b/chrome/browser/renderer_host/render_view_host.cc @@ -1277,8 +1277,8 @@ void RenderViewHost::UnhandledKeyboardEvent( } } -void RenderViewHost::OnEnterOrSpace() { - delegate_->OnEnterOrSpace(); +void RenderViewHost::OnUserGesture() { + delegate_->OnUserGesture(); } void RenderViewHost::OnMissingPluginStatus(int status) { diff --git a/chrome/browser/renderer_host/render_view_host.h b/chrome/browser/renderer_host/render_view_host.h index 9c08f11..c28af30 100644 --- a/chrome/browser/renderer_host/render_view_host.h +++ b/chrome/browser/renderer_host/render_view_host.h @@ -434,7 +434,7 @@ class RenderViewHost : public RenderWidgetHost { protected: // RenderWidgetHost protected overrides. virtual void UnhandledKeyboardEvent(const NativeWebKeyboardEvent& event); - virtual void OnEnterOrSpace(); + virtual void OnUserGesture(); virtual void NotifyRendererUnresponsive(); virtual void NotifyRendererResponsive(); diff --git a/chrome/browser/renderer_host/render_view_host_delegate.h b/chrome/browser/renderer_host/render_view_host_delegate.h index 75a80d4..7668b9c 100644 --- a/chrome/browser/renderer_host/render_view_host_delegate.h +++ b/chrome/browser/renderer_host/render_view_host_delegate.h @@ -421,10 +421,10 @@ class RenderViewHostDelegate { int32 page_id, const webkit_glue::WebApplicationInfo& app_info) { } - // Notification the user has pressed enter or space while focus was on the + // Notification the user has made a gesture while focus was on the // page. This is used to avoid uninitiated user downloads (aka carpet // bombing), see DownloadRequestManager for details. - virtual void OnEnterOrSpace() { } + virtual void OnUserGesture() { } // If this view is used to host an external tab container. virtual bool IsExternalTabContainer() const { return false; } diff --git a/chrome/browser/renderer_host/render_widget_host.cc b/chrome/browser/renderer_host/render_widget_host.cc index 9e196e9..36e6085 100644 --- a/chrome/browser/renderer_host/render_widget_host.cc +++ b/chrome/browser/renderer_host/render_widget_host.cc @@ -301,6 +301,8 @@ void RenderWidgetHost::ForwardMouseEvent(const WebMouseEvent& mouse_event) { return; } mouse_move_pending_ = true; + } else if (mouse_event.type == WebInputEvent::MouseDown) { + OnUserGesture(); } ForwardInputEvent(mouse_event, sizeof(WebMouseEvent)); @@ -316,7 +318,7 @@ void RenderWidgetHost::ForwardKeyboardEvent( if (key_event.type == WebKeyboardEvent::Char && (key_event.windowsKeyCode == base::VKEY_RETURN || key_event.windowsKeyCode == base::VKEY_SPACE)) { - OnEnterOrSpace(); + OnUserGesture(); } // Double check the type to make sure caller hasn't sent us nonsense that diff --git a/chrome/browser/renderer_host/render_widget_host.h b/chrome/browser/renderer_host/render_widget_host.h index 8e12099..8936e48 100644 --- a/chrome/browser/renderer_host/render_widget_host.h +++ b/chrome/browser/renderer_host/render_widget_host.h @@ -275,10 +275,12 @@ class RenderWidgetHost : public IPC::Channel::Listener { // overridden by RenderView to send upwards to its delegate. virtual void UnhandledKeyboardEvent(const NativeWebKeyboardEvent& event) {} - // Notification that the user pressed the enter key or the spacebar. The - // render view host overrides this to forward the information to its delegate - // (see corresponding function in RenderViewHostDelegate). - virtual void OnEnterOrSpace() {} + // Notification that the user has made some kind of input that could + // perform an action. The render view host overrides this to forward the + // information to its delegate (see corresponding function in + // RenderViewHostDelegate). The gestures that count are 1) any mouse down + // event and 2) enter or space key presses. + virtual void OnUserGesture() {} // Callbacks for notification when the renderer becomes unresponsive to user // input events, and subsequently responsive again. RenderViewHost overrides diff --git a/chrome/browser/tab_contents/tab_contents.cc b/chrome/browser/tab_contents/tab_contents.cc index 0b27087..e3a0bb6 100644 --- a/chrome/browser/tab_contents/tab_contents.cc +++ b/chrome/browser/tab_contents/tab_contents.cc @@ -2299,10 +2299,9 @@ void TabContents::OnDidGetApplicationInfo( &GearsCreateShortcutCallbackFunctor::Run)); } -void TabContents::OnEnterOrSpace() { - // See comment in RenderViewHostDelegate::OnEnterOrSpace as to why we do this. -#if defined(OS_WIN) - // TODO(port): this is stubbed in BrowserProcess +void TabContents::OnUserGesture() { + // See comment in RenderViewHostDelegate::OnUserGesture as to why we do this. +#if defined(OS_WIN) || defined(OS_LINUX) DownloadRequestManager* drm = g_browser_process->download_request_manager(); if (drm) drm->OnUserGesture(this); diff --git a/chrome/browser/tab_contents/tab_contents.h b/chrome/browser/tab_contents/tab_contents.h index a77e2cd..7e3a70f 100644 --- a/chrome/browser/tab_contents/tab_contents.h +++ b/chrome/browser/tab_contents/tab_contents.h @@ -841,7 +841,7 @@ class TabContents : public PageNavigator, virtual void OnDidGetApplicationInfo( int32 page_id, const webkit_glue::WebApplicationInfo& info); - virtual void OnEnterOrSpace(); + virtual void OnUserGesture(); virtual void OnFindReply(int request_id, int number_of_matches, const gfx::Rect& selection_rect, diff --git a/chrome/browser/tab_contents/tab_contents_view_win.cc b/chrome/browser/tab_contents/tab_contents_view_win.cc index f254820..fac170d 100644 --- a/chrome/browser/tab_contents/tab_contents_view_win.cc +++ b/chrome/browser/tab_contents/tab_contents_view_win.cc @@ -415,10 +415,6 @@ LRESULT TabContentsViewWin::OnMouseRange(UINT msg, // Make sure this TabContents is activated when it is clicked on. if (tab_contents()->delegate()) tab_contents()->delegate()->ActivateContents(tab_contents()); - DownloadRequestManager* drm = - g_browser_process->download_request_manager(); - if (drm) - drm->OnUserGesture(tab_contents()); break; } case WM_MOUSEMOVE: |