diff options
author | jochen@chromium.org <jochen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-09 12:25:07 +0000 |
---|---|---|
committer | jochen@chromium.org <jochen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-09 12:25:07 +0000 |
commit | 09c48ef59935a2da0dcb423bde5dfeec0a227e55 (patch) | |
tree | 4bdef6857babc9884995ef8d28fc7a05c08586ca /content/shell | |
parent | a7f899ec2f1daf50e9ba4d93ab46b2e551c7a79d (diff) | |
download | chromium_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.cc | 53 | ||||
-rw-r--r-- | content/shell/webkit_test_runner.h | 15 | ||||
-rw-r--r-- | content/shell/webkit_test_runner.js | 17 | ||||
-rw-r--r-- | content/shell/webkit_test_runner_bindings.cc | 49 |
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"))) |