Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(230)

Side by Side Diff: webkit/tools/test_shell/layout_test_controller.cc

Issue 594054: Implement layoutTestController.numberOfPages. (Closed)
Patch Set: update per yuzo's suggestion Created 10 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « webkit/tools/test_shell/layout_test_controller.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // This file contains the definition for LayoutTestController. 5 // This file contains the definition for LayoutTestController.
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "webkit/tools/test_shell/layout_test_controller.h" 9 #include "webkit/tools/test_shell/layout_test_controller.h"
10 10
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
122 BindMethod("waitForPolicyDelegate", &LayoutTestController::waitForPolicyDelega te); 122 BindMethod("waitForPolicyDelegate", &LayoutTestController::waitForPolicyDelega te);
123 BindMethod("setWillSendRequestReturnsNullOnRedirect", &LayoutTestController::s etWillSendRequestReturnsNullOnRedirect); 123 BindMethod("setWillSendRequestReturnsNullOnRedirect", &LayoutTestController::s etWillSendRequestReturnsNullOnRedirect);
124 BindMethod("setWillSendRequestReturnsNull", &LayoutTestController::setWillSend RequestReturnsNull); 124 BindMethod("setWillSendRequestReturnsNull", &LayoutTestController::setWillSend RequestReturnsNull);
125 BindMethod("whiteListAccessFromOrigin", &LayoutTestController::whiteListAccess FromOrigin); 125 BindMethod("whiteListAccessFromOrigin", &LayoutTestController::whiteListAccess FromOrigin);
126 BindMethod("clearAllDatabases", &LayoutTestController::clearAllDatabases); 126 BindMethod("clearAllDatabases", &LayoutTestController::clearAllDatabases);
127 BindMethod("setDatabaseQuota", &LayoutTestController::setDatabaseQuota); 127 BindMethod("setDatabaseQuota", &LayoutTestController::setDatabaseQuota);
128 BindMethod("setPOSIXLocale", &LayoutTestController::setPOSIXLocale); 128 BindMethod("setPOSIXLocale", &LayoutTestController::setPOSIXLocale);
129 BindMethod("counterValueForElementById", &LayoutTestController::counterValueFo rElementById); 129 BindMethod("counterValueForElementById", &LayoutTestController::counterValueFo rElementById);
130 BindMethod("addUserScript", &LayoutTestController::addUserScript); 130 BindMethod("addUserScript", &LayoutTestController::addUserScript);
131 BindMethod("pageNumberForElementById", &LayoutTestController::pageNumberForEle mentById); 131 BindMethod("pageNumberForElementById", &LayoutTestController::pageNumberForEle mentById);
132 BindMethod("numberOfPages", &LayoutTestController::numberOfPages);
132 133
133 // The following are stubs. 134 // The following are stubs.
134 BindMethod("dumpAsWebArchive", &LayoutTestController::dumpAsWebArchive); 135 BindMethod("dumpAsWebArchive", &LayoutTestController::dumpAsWebArchive);
135 BindMethod("setMainFrameIsFirstResponder", &LayoutTestController::setMainFrame IsFirstResponder); 136 BindMethod("setMainFrameIsFirstResponder", &LayoutTestController::setMainFrame IsFirstResponder);
136 BindMethod("dumpSelectionRect", &LayoutTestController::dumpSelectionRect); 137 BindMethod("dumpSelectionRect", &LayoutTestController::dumpSelectionRect);
137 BindMethod("display", &LayoutTestController::display); 138 BindMethod("display", &LayoutTestController::display);
138 BindMethod("testRepaint", &LayoutTestController::testRepaint); 139 BindMethod("testRepaint", &LayoutTestController::testRepaint);
139 BindMethod("repaintSweepHorizontally", &LayoutTestController::repaintSweepHori zontally); 140 BindMethod("repaintSweepHorizontally", &LayoutTestController::repaintSweepHori zontally);
140 BindMethod("clearBackForwardList", &LayoutTestController::clearBackForwardList ); 141 BindMethod("clearBackForwardList", &LayoutTestController::clearBackForwardList );
141 BindMethod("keepWebHistory", &LayoutTestController::keepWebHistory); 142 BindMethod("keepWebHistory", &LayoutTestController::keepWebHistory);
(...skipping 922 matching lines...) Expand 10 before | Expand all | Expand 10 after
1064 if (args.size() < 1 || !args[0].isString()) 1065 if (args.size() < 1 || !args[0].isString())
1065 return; 1066 return;
1066 std::wstring counterValue; 1067 std::wstring counterValue;
1067 if (!webkit_glue::CounterValueForElementById(shell_->webView()->mainFrame(), 1068 if (!webkit_glue::CounterValueForElementById(shell_->webView()->mainFrame(),
1068 args[0].ToString(), 1069 args[0].ToString(),
1069 &counterValue)) 1070 &counterValue))
1070 return; 1071 return;
1071 result->Set(WideToUTF8(counterValue)); 1072 result->Set(WideToUTF8(counterValue));
1072 } 1073 }
1073 1074
1075 static bool ParsePageSizeParameters(const CppArgumentList& args,
1076 int arg_offset,
1077 float* page_width_in_pixels,
1078 float* page_height_in_pixels) {
1079 // WebKit is using the window width/height of DumpRenderTree as the
1080 // default value of the page size.
1081 // TODO(hamaji): Once chromium DumpRenderTree is implemented,
1082 // share these values with other ports.
1083 *page_width_in_pixels = 800;
1084 *page_height_in_pixels = 600;
1085 switch (args.size() - arg_offset) {
1086 case 2:
1087 if (!args[arg_offset].isNumber() || !args[1 + arg_offset].isNumber())
1088 return false;
1089 *page_width_in_pixels = static_cast<float>(args[arg_offset].ToInt32());
1090 *page_height_in_pixels = static_cast<float>(args[1 + arg_offset].ToInt32());
1091 // fall through.
1092 case 0:
1093 break;
1094 default:
1095 return false;
1096 }
1097 return true;
1098 }
1099
1074 void LayoutTestController::pageNumberForElementById( 1100 void LayoutTestController::pageNumberForElementById(
1075 const CppArgumentList& args, CppVariant* result) { 1101 const CppArgumentList& args, CppVariant* result) {
1076 result->SetNull(); 1102 result->SetNull();
1077 // WebKit is using the window width/height of DumpRenderTree as the 1103 float page_width_in_pixels = 0;
1078 // default value of the page size. 1104 float page_height_in_pixels = 0;
1079 // TODO(hamaji): Once chromium DumpRenderTree is implemented, 1105 if (!ParsePageSizeParameters(args, 1,
1080 // share these values with other ports. 1106 &page_width_in_pixels, &page_height_in_pixels))
1081 float page_width_in_pixels = 800;
1082 float page_height_in_pixels = 600;
1083 switch (args.size()) {
1084 case 3:
1085 if (!args[1].isNumber() || !args[2].isNumber())
1086 return;
1087 page_width_in_pixels = static_cast<float>(args[1].ToInt32());
1088 page_height_in_pixels = static_cast<float>(args[2].ToInt32());
1089 case 1: // fall through.
1090 if (!args[0].isString())
1091 return;
1092 break;
1093 default:
1094 return; 1107 return;
1095 } 1108 if (!args[0].isString())
1109 return;
1110
1096 int page_number = webkit_glue::PageNumberForElementById( 1111 int page_number = webkit_glue::PageNumberForElementById(
1097 shell_->webView()->mainFrame(), 1112 shell_->webView()->mainFrame(),
1098 args[0].ToString(), 1113 args[0].ToString(),
1099 page_width_in_pixels, 1114 page_width_in_pixels,
1100 page_height_in_pixels); 1115 page_height_in_pixels);
1101 result->Set(page_number); 1116 result->Set(page_number);
1102 } 1117 }
1103 1118
1119 void LayoutTestController::numberOfPages(
1120 const CppArgumentList& args, CppVariant* result) {
1121 result->SetNull();
1122 float page_width_in_pixels = 0;
1123 float page_height_in_pixels = 0;
1124 if (!ParsePageSizeParameters(args, 0,
1125 &page_width_in_pixels, &page_height_in_pixels))
1126 return;
1127
1128 int page_number = webkit_glue::NumberOfPages(shell_->webView()->mainFrame(),
1129 page_width_in_pixels,
1130 page_height_in_pixels);
1131 result->Set(page_number);
1132 }
1133
1104 void LayoutTestController::LogErrorToConsole(const std::string& text) { 1134 void LayoutTestController::LogErrorToConsole(const std::string& text) {
1105 shell_->delegate()->didAddMessageToConsole( 1135 shell_->delegate()->didAddMessageToConsole(
1106 WebConsoleMessage(WebConsoleMessage::LevelError, 1136 WebConsoleMessage(WebConsoleMessage::LevelError,
1107 WebString::fromUTF8(text)), 1137 WebString::fromUTF8(text)),
1108 WebString(), 0); 1138 WebString(), 0);
1109 } 1139 }
1110 1140
1111 void LayoutTestController::setTimelineProfilingEnabled( 1141 void LayoutTestController::setTimelineProfilingEnabled(
1112 const CppArgumentList& args, CppVariant* result) { 1142 const CppArgumentList& args, CppVariant* result) {
1113 result->SetNull(); 1143 result->SetNull();
(...skipping 19 matching lines...) Expand all
1133 } 1163 }
1134 1164
1135 void LayoutTestController::addUserScript(const CppArgumentList& args, 1165 void LayoutTestController::addUserScript(const CppArgumentList& args,
1136 CppVariant* result) { 1166 CppVariant* result) {
1137 result->SetNull(); 1167 result->SetNull();
1138 if (args.size() < 1 || !args[0].isString() || !args[1].isBool()) 1168 if (args.size() < 1 || !args[0].isString() || !args[1].isBool())
1139 return; 1169 return;
1140 shell_->webView()->addUserScript(WebString::fromUTF8(args[0].ToString()), 1170 shell_->webView()->addUserScript(WebString::fromUTF8(args[0].ToString()),
1141 args[1].ToBoolean()); 1171 args[1].ToBoolean());
1142 } 1172 }
OLDNEW
« no previous file with comments | « webkit/tools/test_shell/layout_test_controller.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698