- Add CefPostData::HasExcludedElements which returns true if the underlying

POST data includes elements that are not represented (issue #1761).
- Add CefRequest::SetReferrer and CefRequest::GetReferrer[URL|Policy]. The
  Referer value will no longer be stored in the header map.
- Move request-related conversion logic to CefRequestImpl and standardize the
  implementation.
This commit is contained in:
Marshall Greenblatt
2015-12-01 13:22:28 -05:00
parent 2a658c414b
commit 9bc8da1e02
18 changed files with 793 additions and 348 deletions

View File

@ -49,6 +49,7 @@ enum RequestTestMode {
REQTEST_GET_NODATA,
REQTEST_GET_ALLOWCOOKIES,
REQTEST_GET_REDIRECT,
REQTEST_GET_REFERRER,
REQTEST_POST,
REQTEST_POST_FILE,
REQTEST_POST_WITHPROGRESS,
@ -583,6 +584,7 @@ class RequestTestRunner : public base::RefCountedThreadSafe<RequestTestRunner> {
REGISTER_TEST(REQTEST_GET_ALLOWCOOKIES, SetupGetAllowCookiesTest,
GenericRunTest);
REGISTER_TEST(REQTEST_GET_REDIRECT, SetupGetRedirectTest, GenericRunTest);
REGISTER_TEST(REQTEST_GET_REFERRER, SetupGetReferrerTest, GenericRunTest);
REGISTER_TEST(REQTEST_POST, SetupPostTest, GenericRunTest);
REGISTER_TEST(REQTEST_POST_FILE, SetupPostFileTest, GenericRunTest);
REGISTER_TEST(REQTEST_POST_WITHPROGRESS, SetupPostWithProgressTest,
@ -677,6 +679,25 @@ class RequestTestRunner : public base::RefCountedThreadSafe<RequestTestRunner> {
settings_.redirect_response->SetHeaderMap(headerMap);
}
void SetupGetReferrerTest() {
settings_.request = CefRequest::Create();
settings_.request->SetURL(MakeSchemeURL("GetTest.html"));
settings_.request->SetMethod("GET");
// The referrer URL must be HTTP or HTTPS. This is enforced by
// GURL::GetAsReferrer() called from URLRequest::SetReferrer().
settings_.request->SetReferrer(
"http://tests.com/referrer.html",
REFERRER_POLICY_NO_REFERRER_WHEN_DOWNGRADE);
settings_.response = CefResponse::Create();
settings_.response->SetMimeType("text/html");
settings_.response->SetStatus(200);
settings_.response->SetStatusText("OK");
settings_.response_data = "GET TEST SUCCESS";
}
void SetupPostTest() {
settings_.request = CefRequest::Create();
settings_.request->SetURL(MakeSchemeURL("PostTest.html"));
@ -1196,6 +1217,8 @@ void RegisterURLRequestCustomSchemes(
REQTEST_GET_ALLOWCOOKIES, context_mode, true); \
REQ_TEST(BrowserGETRedirect##suffix, \
REQTEST_GET_REDIRECT, context_mode, true); \
REQ_TEST(BrowserGETReferrer##suffix, \
REQTEST_GET_REFERRER, context_mode, true); \
REQ_TEST(BrowserPOST##suffix, REQTEST_POST, context_mode, true); \
REQ_TEST(BrowserPOSTFile##suffix, REQTEST_POST_FILE, context_mode, true); \
REQ_TEST(BrowserPOSTWithProgress##suffix, \
@ -1208,6 +1231,8 @@ void RegisterURLRequestCustomSchemes(
REQTEST_GET_ALLOWCOOKIES, context_mode, false); \
REQ_TEST(RendererGETRedirect##suffix, \
REQTEST_GET_REDIRECT, context_mode, false); \
REQ_TEST(RendererGETReferrer##suffix, \
REQTEST_GET_REFERRER, context_mode, false); \
REQ_TEST(RendererPOST##suffix, REQTEST_POST, context_mode, false); \
REQ_TEST(RendererPOSTWithProgress##suffix, \
REQTEST_POST_WITHPROGRESS, context_mode, false); \