summaryrefslogtreecommitdiffstats
path: root/webkit
diff options
context:
space:
mode:
authorbrettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-03-05 20:18:07 +0000
committerbrettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-03-05 20:18:07 +0000
commita455d381543e773418e645b3192c8731430a646e (patch)
treef52ea9e8a6a2db06957637b8698d7c5007b2e4a5 /webkit
parent2eb312b025971ee1529b3a6c67d715055cb77906 (diff)
downloadchromium_src-a455d381543e773418e645b3192c8731430a646e.zip
chromium_src-a455d381543e773418e645b3192c8731430a646e.tar.gz
chromium_src-a455d381543e773418e645b3192c8731430a646e.tar.bz2
Try #2 of "make JavaScript alerts reflect the URL of the frame they came from,
not the enclosing frame." The diffrence between this one and the previous version of this patch is the addition of test_webview_delegate. BUG=1686837 Review URL: http://codereview.chromium.org/39163 Review URL: http://codereview.chromium.org/40175 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11026 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit')
-rw-r--r--webkit/glue/chrome_client_impl.cc13
-rw-r--r--webkit/glue/webframe.h4
-rw-r--r--webkit/glue/webview_delegate.h11
-rwxr-xr-xwebkit/tools/test_shell/test_webview_delegate.cc11
-rw-r--r--webkit/tools/test_shell/test_webview_delegate.h6
5 files changed, 24 insertions, 21 deletions
diff --git a/webkit/glue/chrome_client_impl.cc b/webkit/glue/chrome_client_impl.cc
index c9965dd..91af605 100644
--- a/webkit/glue/chrome_client_impl.cc
+++ b/webkit/glue/chrome_client_impl.cc
@@ -289,12 +289,13 @@ bool ChromeClientImpl::canRunBeforeUnloadConfirmPanel() {
return webview_->delegate() != NULL;
}
-bool ChromeClientImpl::runBeforeUnloadConfirmPanel(const WebCore::String& message,
- WebCore::Frame* frame) {
+bool ChromeClientImpl::runBeforeUnloadConfirmPanel(
+ const WebCore::String& message,
+ WebCore::Frame* frame) {
WebViewDelegate* d = webview_->delegate();
if (d) {
std::wstring wstr = webkit_glue::StringToStdWString(message);
- return d->RunBeforeUnloadConfirm(webview_, wstr);
+ return d->RunBeforeUnloadConfirm(WebFrameImpl::FromFrame(frame), wstr);
}
return false;
}
@@ -325,7 +326,7 @@ void ChromeClientImpl::runJavaScriptAlert(WebCore::Frame* frame,
#endif
std::wstring wstr = webkit_glue::StringToStdWString(message);
- d->RunJavaScriptAlert(webview_, wstr);
+ d->RunJavaScriptAlert(WebFrameImpl::FromFrame(frame), wstr);
}
}
@@ -335,7 +336,7 @@ bool ChromeClientImpl::runJavaScriptConfirm(WebCore::Frame* frame,
WebViewDelegate* d = webview_->delegate();
if (d) {
std::wstring wstr = webkit_glue::StringToStdWString(message);
- return d->RunJavaScriptConfirm(webview_, wstr);
+ return d->RunJavaScriptConfirm(WebFrameImpl::FromFrame(frame), wstr);
}
return false;
}
@@ -350,7 +351,7 @@ bool ChromeClientImpl::runJavaScriptPrompt(WebCore::Frame* frame,
std::wstring wstr_message = webkit_glue::StringToStdWString(message);
std::wstring wstr_default = webkit_glue::StringToStdWString(defaultValue);
std::wstring wstr_result;
- bool ok = d->RunJavaScriptPrompt(webview_,
+ bool ok = d->RunJavaScriptPrompt(WebFrameImpl::FromFrame(frame),
wstr_message,
wstr_default,
&wstr_result);
diff --git a/webkit/glue/webframe.h b/webkit/glue/webframe.h
index 37eea8a..4a0cf01 100644
--- a/webkit/glue/webframe.h
+++ b/webkit/glue/webframe.h
@@ -114,11 +114,11 @@ class WebFrame {
// lacks a history item. Otherwise, this will always be true.
virtual bool HasCurrentHistoryState() const = 0;
- // Returns the current URL of the frame, or the empty string if there is no
+ // Returns the current URL of the frame, or an empty GURL if there is no
// URL to retrieve (for example, the frame may never have had any content).
virtual GURL GetURL() const = 0;
- // Returns the URL to the favorite icon for the frame. An empty string is
+ // Returns the URL to the favorite icon for the frame. An empty GURL is
// returned if the frame has not finished loading, or the frame's URL
// protocol is not http or https.
virtual GURL GetFavIconURL() const = 0;
diff --git a/webkit/glue/webview_delegate.h b/webkit/glue/webview_delegate.h
index 59d4d95..a1a90d2 100644
--- a/webkit/glue/webview_delegate.h
+++ b/webkit/glue/webview_delegate.h
@@ -498,9 +498,10 @@ class WebViewDelegate : virtual public WebWidgetDelegate {
}
// Displays a JavaScript alert panel associated with the given view. Clients
- // should visually indicate that this panel comes from JavaScript. The panel
+ // should visually indicate that this panel comes from JavaScript and some
+ // information about the originating frame (at least the domain). The panel
// should have a single OK button.
- virtual void RunJavaScriptAlert(WebView* webview,
+ virtual void RunJavaScriptAlert(WebFrame* webframe,
const std::wstring& message) {
}
@@ -508,7 +509,7 @@ class WebViewDelegate : virtual public WebWidgetDelegate {
// Clients should visually indicate that this panel comes
// from JavaScript. The panel should have two buttons, e.g. "OK" and
// "Cancel". Returns true if the user hit OK, or false if the user hit Cancel.
- virtual bool RunJavaScriptConfirm(WebView* webview,
+ virtual bool RunJavaScriptConfirm(WebFrame* webframe,
const std::wstring& message) {
return false;
}
@@ -520,7 +521,7 @@ class WebViewDelegate : virtual public WebWidgetDelegate {
// panel when it is shown. If the user hit OK, returns true and fills result
// with the text in the box. The value of result is undefined if the user
// hit Cancel.
- virtual bool RunJavaScriptPrompt(WebView* webview,
+ virtual bool RunJavaScriptPrompt(WebFrame* webframe,
const std::wstring& message,
const std::wstring& default_value,
std::wstring* result) {
@@ -536,7 +537,7 @@ class WebViewDelegate : virtual public WebWidgetDelegate {
// that the navigation should continue, and Cancel means that the navigation
// should be cancelled, leaving the user on the current page. Returns true
// if the user hit OK, or false if the user hit Cancel.
- virtual bool RunBeforeUnloadConfirm(WebView* webview,
+ virtual bool RunBeforeUnloadConfirm(WebFrame* webframe,
const std::wstring& message) {
return true; // OK, continue to navigate away
}
diff --git a/webkit/tools/test_shell/test_webview_delegate.cc b/webkit/tools/test_shell/test_webview_delegate.cc
index 9097dbd..3358abc 100755
--- a/webkit/tools/test_shell/test_webview_delegate.cc
+++ b/webkit/tools/test_shell/test_webview_delegate.cc
@@ -409,7 +409,7 @@ void TestWebViewDelegate::AddMessageToConsole(WebView* webview,
}
}
-void TestWebViewDelegate::RunJavaScriptAlert(WebView* webview,
+void TestWebViewDelegate::RunJavaScriptAlert(WebFrame* webframe,
const std::wstring& message) {
if (!shell_->layout_test_mode()) {
ShowJavaScriptAlert(message);
@@ -419,7 +419,7 @@ void TestWebViewDelegate::RunJavaScriptAlert(WebView* webview,
}
}
-bool TestWebViewDelegate::RunJavaScriptConfirm(WebView* webview,
+bool TestWebViewDelegate::RunJavaScriptConfirm(WebFrame* webframe,
const std::wstring& message) {
if (shell_->layout_test_mode()) {
// When running tests, write to stdout.
@@ -430,9 +430,10 @@ bool TestWebViewDelegate::RunJavaScriptConfirm(WebView* webview,
return false;
}
-bool TestWebViewDelegate::RunJavaScriptPrompt(WebView* webview,
- const std::wstring& message, const std::wstring& default_value,
- std::wstring* result) {
+bool TestWebViewDelegate::RunJavaScriptPrompt(WebFrame* webframe,
+ const std::wstring& message,
+ const std::wstring& default_value,
+ std::wstring* result) {
if (shell_->layout_test_mode()) {
// When running tests, write to stdout.
std::string utf8_message = WideToUTF8(message);
diff --git a/webkit/tools/test_shell/test_webview_delegate.h b/webkit/tools/test_shell/test_webview_delegate.h
index aa3e521..a0dcbf9 100644
--- a/webkit/tools/test_shell/test_webview_delegate.h
+++ b/webkit/tools/test_shell/test_webview_delegate.h
@@ -87,11 +87,11 @@ class TestWebViewDelegate : public base::RefCounted<TestWebViewDelegate>,
const GURL& url,
const GURL& referrer,
WindowOpenDisposition disposition);
- virtual void RunJavaScriptAlert(WebView* webview,
+ virtual void RunJavaScriptAlert(WebFrame* webframe,
const std::wstring& message);
- virtual bool RunJavaScriptConfirm(WebView* webview,
+ virtual bool RunJavaScriptConfirm(WebFrame* webframe,
const std::wstring& message);
- virtual bool RunJavaScriptPrompt(WebView* webview,
+ virtual bool RunJavaScriptPrompt(WebFrame* webframe,
const std::wstring& message,
const std::wstring& default_value,
std::wstring* result);