summaryrefslogtreecommitdiffstats
path: root/content/shell
diff options
context:
space:
mode:
authorjochen@chromium.org <jochen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-09 12:25:07 +0000
committerjochen@chromium.org <jochen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-09 12:25:07 +0000
commit09c48ef59935a2da0dcb423bde5dfeec0a227e55 (patch)
tree4bdef6857babc9884995ef8d28fc7a05c08586ca /content/shell
parenta7f899ec2f1daf50e9ba4d93ab46b2e551c7a79d (diff)
downloadchromium_src-09c48ef59935a2da0dcb423bde5dfeec0a227e55.zip
chromium_src-09c48ef59935a2da0dcb423bde5dfeec0a227e55.tar.gz
chromium_src-09c48ef59935a2da0dcb423bde5dfeec0a227e55.tar.bz2
[content shell] add support for dumping frame load callbacks
BUG=111316 TEST=more fast/loader tests pass R=jam@chromium.org Review URL: https://codereview.chromium.org/11829002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@175785 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/shell')
-rw-r--r--content/shell/webkit_test_runner.cc53
-rw-r--r--content/shell/webkit_test_runner.h15
-rw-r--r--content/shell/webkit_test_runner.js17
-rw-r--r--content/shell/webkit_test_runner_bindings.cc49
4 files changed, 131 insertions, 3 deletions
diff --git a/content/shell/webkit_test_runner.cc b/content/shell/webkit_test_runner.cc
index 6290ca5..cfd9ea1 100644
--- a/content/shell/webkit_test_runner.cc
+++ b/content/shell/webkit_test_runner.cc
@@ -155,7 +155,13 @@ void CopyCanvasToBitmap(SkCanvas* canvas, SkBitmap* snapshot) {
WebKitTestRunner::WebKitTestRunner(RenderView* render_view)
: RenderViewObserver(render_view),
- dump_editing_callbacks_(false) {
+ dump_editing_callbacks_(false),
+ dump_frame_load_callbacks_(false),
+ dump_user_gesture_in_frame_load_callbacks_(false),
+ stop_provisional_frame_loads_(false),
+ dump_title_changes_(false),
+ test_is_running_(true),
+ wait_until_done_(false) {
}
WebKitTestRunner::~WebKitTestRunner() {
@@ -297,6 +303,22 @@ bool WebKitTestRunner::shouldDumpEditingCallbacks() const {
return dump_editing_callbacks_;
}
+bool WebKitTestRunner::shouldDumpFrameLoadCallbacks() const {
+ return test_is_running_ && dump_frame_load_callbacks_;
+}
+
+bool WebKitTestRunner::shouldDumpUserGestureInFrameLoadCallbacks() const {
+ return test_is_running_ && dump_user_gesture_in_frame_load_callbacks_;
+}
+
+bool WebKitTestRunner::stopProvisionalFrameLoads() const {
+ return stop_provisional_frame_loads_;
+}
+
+bool WebKitTestRunner::shouldDumpTitleChanges() const {
+ return dump_title_changes_;
+}
+
// RenderViewObserver --------------------------------------------------------
void WebKitTestRunner::DidClearWindowObject(WebFrame* frame) {
@@ -304,8 +326,11 @@ void WebKitTestRunner::DidClearWindowObject(WebFrame* frame) {
}
void WebKitTestRunner::DidFinishLoad(WebFrame* frame) {
- if (!frame->parent())
+ if (!frame->parent()) {
+ if (!wait_until_done_)
+ test_is_running_ = false;
Send(new ShellViewHostMsg_DidFinishLoad(routing_id()));
+ }
}
void WebKitTestRunner::DidRequestShowContextMenu(
@@ -343,6 +368,7 @@ void WebKitTestRunner::SetXSSAuditorEnabled(bool enabled) {
}
void WebKitTestRunner::NotifyDone() {
+ test_is_running_ = false;
Send(new ShellViewHostMsg_NotifyDone(routing_id()));
}
@@ -365,6 +391,7 @@ void WebKitTestRunner::SetShouldStayOnPageAfterHandlingBeforeUnload(
}
void WebKitTestRunner::WaitUntilDone() {
+ wait_until_done_ = true;
Send(new ShellViewHostMsg_WaitUntilDone(routing_id()));
}
@@ -451,6 +478,22 @@ void WebKitTestRunner::DumpEditingCallbacks() {
dump_editing_callbacks_ = true;
}
+void WebKitTestRunner::DumpFrameLoadCallbacks() {
+ dump_frame_load_callbacks_ = true;
+}
+
+void WebKitTestRunner::DumpUserGestureInFrameLoadCallbacks() {
+ dump_user_gesture_in_frame_load_callbacks_ = true;
+}
+
+void WebKitTestRunner::StopProvisionalFrameLoads() {
+ stop_provisional_frame_loads_ = true;
+}
+
+void WebKitTestRunner::DumpTitleChanges() {
+ dump_title_changes_ = true;
+}
+
void WebKitTestRunner::NotImplemented(const std::string& object,
const std::string& method) {
Send(new ShellViewHostMsg_NotImplemented(routing_id(), object, method));
@@ -462,6 +505,12 @@ void WebKitTestRunner::Reset() {
ExportLayoutTestSpecificPreferences(prefs_, &prefs);
render_view()->SetWebkitPreferences(prefs);
dump_editing_callbacks_ = false;
+ dump_frame_load_callbacks_ = false;
+ dump_user_gesture_in_frame_load_callbacks_ = false;
+ stop_provisional_frame_loads_ = false;
+ dump_title_changes_ = false;
+ test_is_running_ = true;
+ wait_until_done_ = false;
}
// Private methods -----------------------------------------------------------
diff --git a/content/shell/webkit_test_runner.h b/content/shell/webkit_test_runner.h
index 099a889..92420ea 100644
--- a/content/shell/webkit_test_runner.h
+++ b/content/shell/webkit_test_runner.h
@@ -67,6 +67,10 @@ class WebKitTestRunner : public RenderViewObserver,
// WebTestRunner implementation.
virtual bool shouldDumpEditingCallbacks() const;
+ virtual bool shouldDumpFrameLoadCallbacks() const;
+ virtual bool shouldDumpUserGestureInFrameLoadCallbacks() const;
+ virtual bool stopProvisionalFrameLoads() const;
+ virtual bool shouldDumpTitleChanges() const;
void Reset();
void Display();
@@ -84,6 +88,10 @@ class WebKitTestRunner : public RenderViewObserver,
void ExecCommand(const std::string& command, const std::string& value);
void OverridePreference(const std::string& key, v8::Local<v8::Value> value);
void DumpEditingCallbacks();
+ void DumpFrameLoadCallbacks();
+ void DumpUserGestureInFrameLoadCallbacks();
+ void StopProvisionalFrameLoads();
+ void DumpTitleChanges();
void NotImplemented(const std::string& object, const std::string& method);
@@ -109,6 +117,13 @@ class WebKitTestRunner : public RenderViewObserver,
::WebTestRunner::WebPreferences prefs_;
bool dump_editing_callbacks_;
+ bool dump_frame_load_callbacks_;
+ bool dump_user_gesture_in_frame_load_callbacks_;
+ bool stop_provisional_frame_loads_;
+ bool dump_title_changes_;
+
+ bool test_is_running_;
+ bool wait_until_done_;
DISALLOW_COPY_AND_ASSIGN(WebKitTestRunner);
};
diff --git a/content/shell/webkit_test_runner.js b/content/shell/webkit_test_runner.js
index 35f0e96..ad13141 100644
--- a/content/shell/webkit_test_runner.js
+++ b/content/shell/webkit_test_runner.js
@@ -8,6 +8,10 @@ var testRunner = testRunner || {};
native function CloseWebInspector();
native function Display();
native function DumpEditingCallbacks();
+ native function DumpFrameLoadCallbacks();
+ native function DumpUserGestureInFrameLoadCallbacks();
+ native function SetStopProvisionalFrameLoads();
+ native function DumpTitleChanges();
native function EvaluateInWebInspector();
native function ExecCommand();
native function GetWorkerThreadCount();
@@ -85,7 +89,18 @@ var testRunner = testRunner || {};
Object.defineProperty(this,
"dumpEditingCallbacks",
{value: DumpEditingCallbacks});
-
+ Object.defineProperty(this,
+ "dumpFrameLoadCallbacks",
+ {value: DumpFrameLoadCallbacks});
+ Object.defineProperty(this,
+ "dumpUserGestureInFrameLoadCallbacks",
+ {value: DumpUserGestureInFrameLoadCallbacks});
+ Object.defineProperty(this,
+ "setStopProvisionalFrameLoads",
+ {value: SetStopProvisionalFrameLoads});
+ Object.defineProperty(this,
+ "dumpTitleChanges",
+ {value: DumpTitleChanges});
Object.defineProperty(this,
"globalFlag",
diff --git a/content/shell/webkit_test_runner_bindings.cc b/content/shell/webkit_test_runner_bindings.cc
index 5ebb962..40b0578 100644
--- a/content/shell/webkit_test_runner_bindings.cc
+++ b/content/shell/webkit_test_runner_bindings.cc
@@ -206,6 +206,47 @@ v8::Handle<v8::Value> DumpEditingCallbacks(const v8::Arguments& args) {
return v8::Undefined();
}
+v8::Handle<v8::Value> DumpFrameLoadCallbacks(const v8::Arguments& args) {
+ WebKitTestRunner* runner =
+ ShellRenderProcessObserver::GetInstance()->main_test_runner();
+ if (!runner)
+ return v8::Undefined();
+
+ runner->DumpFrameLoadCallbacks();
+ return v8::Undefined();
+}
+
+v8::Handle<v8::Value> DumpUserGestureInFrameLoadCallbacks(
+ const v8::Arguments& args) {
+ WebKitTestRunner* runner =
+ ShellRenderProcessObserver::GetInstance()->main_test_runner();
+ if (!runner)
+ return v8::Undefined();
+
+ runner->DumpUserGestureInFrameLoadCallbacks();
+ return v8::Undefined();
+}
+
+v8::Handle<v8::Value> SetStopProvisionalFrameLoads(const v8::Arguments& args) {
+ WebKitTestRunner* runner =
+ ShellRenderProcessObserver::GetInstance()->main_test_runner();
+ if (!runner)
+ return v8::Undefined();
+
+ runner->StopProvisionalFrameLoads();
+ return v8::Undefined();
+}
+
+v8::Handle<v8::Value> DumpTitleChanges(const v8::Arguments& args) {
+ WebKitTestRunner* runner =
+ ShellRenderProcessObserver::GetInstance()->main_test_runner();
+ if (!runner)
+ return v8::Undefined();
+
+ runner->DumpTitleChanges();
+ return v8::Undefined();
+}
+
v8::Handle<v8::Value> GetGlobalFlag(const v8::Arguments& args) {
return v8::Boolean::New(g_global_flag);
}
@@ -291,6 +332,14 @@ WebKitTestRunnerBindings::GetNativeFunction(v8::Handle<v8::String> name) {
return v8::FunctionTemplate::New(OverridePreference);
if (name->Equals(v8::String::New("DumpEditingCallbacks")))
return v8::FunctionTemplate::New(DumpEditingCallbacks);
+ if (name->Equals(v8::String::New("DumpFrameLoadCallbacks")))
+ return v8::FunctionTemplate::New(DumpFrameLoadCallbacks);
+ if (name->Equals(v8::String::New("DumpUserGestureInFrameLoadCallbacks")))
+ return v8::FunctionTemplate::New(DumpUserGestureInFrameLoadCallbacks);
+ if (name->Equals(v8::String::New("SetStopProvisionalFrameLoads")))
+ return v8::FunctionTemplate::New(SetStopProvisionalFrameLoads);
+ if (name->Equals(v8::String::New("DumpTitleChanges")))
+ return v8::FunctionTemplate::New(DumpTitleChanges);
if (name->Equals(v8::String::New("GetGlobalFlag")))
return v8::FunctionTemplate::New(GetGlobalFlag);
if (name->Equals(v8::String::New("SetGlobalFlag")))