Commit Graph

47 Commits

Author SHA1 Message Date
sgjesse@google.com 1e4c88c97b Don't to do HTML entity decoding for multi-part form fields
The code was trying to do HTML entity decoding on text field values
in multipart form posts. This has been removed as it did not work.

The parsing was expecting HTML entities to always be used, but that is
not the case. Chrome, Firefox and Safari will do it if e.g. the attribute
accept-charset="latin1" is set on the HTML form element, but the default
when accept-charset is not set or is set to utf8 UTF-8 encoding will be
used.

Also when HTML entity encoding is used, the encoding done by the browser
cannot be consistently  decoded. E.g. if the value '&#<some large char>' is
entered in a form with accept-charset="latin1" the value in the
multipart/form-data response is '&#&#12402;' (<some large char> is HTML
entity encoded as &#12402;), so '&#' is not escaped in any way.

Passing the value returned by the browser into user code without trying to
be clever is the right thing to do.

R=kustermann@google.com
BUG=

Review URL: https://codereview.chromium.org//730203008

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41821 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-19 07:41:17 +00:00
sgjesse@google.com 7086214a4e Handle multipart MIME parsing with no parts
The multipart MIME parser did not correctly handle the case where there
was only the final boundary.

R=kustermann@google.com
BUG=

Review URL: https://codereview.chromium.org//739533002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41805 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-18 14:40:00 +00:00
sgjesse@google.com 82ba3ad49b Fix a number of issues with the Range header handling for serving files
* Handling end position after file length
* Handling suffix range longer than file length
* Ignore syntactically invalid Range headers
* Return 416 (Requested range not satisfiable) if start < end

Added tests for these cases.

BUG=http://dartbug.com/21587
R=ajohnsen@google.com, kustermann@google.com

Review URL: https://codereview.chromium.org//721213002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@41775 260f80e4-7a28-3924-810f-c04153c831b5
2014-11-17 14:21:09 +00:00
ajohnsen@google.com 979f82002f Add 'pathPrefix' optional argument to VirtualDirectory constructor.
By setting the pathPrefix, all incoming requests are expected to have
its uri starting with the path. Then, before doing resource lookup, the
prefix is trimmed from the path.

BUG=https://code.google.com/p/dart/issues/detail?id=17353
R=kevmoo@google.com

Review URL: https://codereview.chromium.org//424063002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38720 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-30 06:50:23 +00:00
ajohnsen@google.com d3411334c8 Fix links of VirtualDirectory.
BUG=https://code.google.com/p/dart/issues/detail?id=19717
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//370753002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38010 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-04 12:04:25 +00:00
ajohnsen@google.com 2eb4efb5eb Don't use å in non-ascii test, as it can have multiple representations.
BUG=

Review URL: https://codereview.chromium.org//356843004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37781 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-27 09:47:05 +00:00
ajohnsen@google.com 4c9f0be0fc Use utf-8 encoding for listing and error page, in http_server VirtualDirectory.
BUG=https://code.google.com/p/dart/issues/detail?id=15157
R=ricow@google.com

Review URL: https://codereview.chromium.org//360453004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37779 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-27 09:11:25 +00:00
ajohnsen@google.com e229ac6db2 Fix long line.
BUG=
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//227133004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34773 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-07 09:27:27 +00:00
ajohnsen@google.com 2333d0916a Don't create special path characters on windows.
BUG=

Review URL: https://codereview.chromium.org//226183013

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34770 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-07 07:36:14 +00:00
ajohnsen@google.com 75a0668f6d Fix XSS issues in http_server's dir-listing and error-page.
BUG=
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//225813002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34769 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-07 07:03:24 +00:00
kevmoo@google.com 1e7466a677 pkg/http_server: fixes for unittest deprecations
R=ajohnsen@google.com

Review URL: https://codereview.chromium.org//217143002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34506 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-28 16:37:57 +00:00
kevmoo@google.com a300ce0a1d pkg/http_server: return future for VirtualDirectory serveRequest
Also:
- Return the subscription from serve method
- Bumped version

BUG= https://code.google.com/p/dart/issues/detail?id=15893
BUG= https://code.google.com/p/dart/issues/detail?id=16005
R=ajohnsen@google.com

Review URL: https://codereview.chromium.org//124833003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31701 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-10 19:27:05 +00:00
ajohnsen@google.com 41dfdb599c Make VirtualDirectory redirect if the directory-path does not end with a tailing slash.
BUG=https://code.google.com/p/dart/issues/detail?id=15764
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//119453005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31651 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-09 10:26:54 +00:00
kevmoo@google.com 2c286cf7d0 pkg/http_server: fix broken test
R=sigmund@google.com

Review URL: https://codereview.chromium.org//126453002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31573 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-07 21:03:18 +00:00
kevmoo@google.com 4f64d474ef pkg/http_server more virtual dir test cleanup
Preparing for https://code.google.com/p/dart/issues/detail?id=15893 fix

R=ajohnsen@google.com

Review URL: https://codereview.chromium.org//120343005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31567 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-07 19:37:27 +00:00
kevmoo@google.com a8dc1227be pkg/http_server: follow on to r31466
missed up one test, fixed whitespace

R=ajohnsen@google.com

Review URL: https://codereview.chromium.org//102743004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31471 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-06 12:10:53 +00:00
ajohnsen@google.com 989f6e1d5d Fix Directory path in VirtualDirectory, so it always ends with a platform-specific seperator. That'll make sure Uri.resolve always works.
BUG=http://code.google.com/p/dart/issues/detail?id=15764
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//125003002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31469 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-06 10:44:14 +00:00
kevmoo@google.com 3a73a2ed5c pkg/http_server: virtual dir test cleanup
...and test util tweaks

R=ajohnsen@google.com

Review URL: https://codereview.chromium.org//124693002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31466 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-05 22:21:16 +00:00
kevmoo@google.com e2607cff65 pkg/http_server: removed unused imports
R=sigmund@google.com

Review URL: https://codereview.chromium.org//123283003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31464 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-04 04:05:11 +00:00
sgjesse@google.com c38de04d0c Change dart:io Platform.script to return a Uri.
BUG=
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//46063010

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29651 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-31 07:29:01 +00:00
whesse@google.com 4f08151090 Revert "Change dart:io Platform.script to return a Uri."
This reverts r29619 and r29624.  The changes look fine on the buildbot,
but need review before adding to the repository.

BUG=

TBR=sgjesse@google.com

Review URL: https://codereview.chromium.org//52723007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29627 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-31 02:17:37 +00:00
whesse@google.com cb0110350a Change dart:io Platform.script to return a URI. Change all uses of Platform.script to work with the new value.
R=floitsch@google.com

Review URL: https://codereview.chromium.org//53313007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29619 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-31 01:08:11 +00:00
whesse@google.com 69205c207c Remove uses of Options from pkg, samples, tests, and third_party directories.
BUG=
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//52573002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29552 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-30 15:17:01 +00:00
ajohnsen@google.com e2434065ce Expose 'serveFile' on VirtualDirectory.
This makes it possible to easy forward directory requets to e.g.
'index.html'.

BUG=http://code.google.com/p/dart/issues/detail?id=14333
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//47513008

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29430 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-29 10:17:30 +00:00
ajohnsen@google.com bc7c3b0301 The request may be canceled by http_body, thus allow that when testing.
BUG=https://code.google.com/p/dart/issues/detail?id=14381
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//46043003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29358 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-28 13:20:24 +00:00
ajohnsen@google.com 7ed07c2bc8 Fix typo in http_body_test.
BUG=
R=ricow@google.com

Review URL: https://codereview.chromium.org//34423003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28983 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-22 06:03:45 +00:00
ajohnsen@google.com 08239af74a Wait for server response in http_body_test before closing client and server.
BUG=https://code.google.com/p/dart/issues/detail?id=14275

Review URL: https://codereview.chromium.org//34383002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28982 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-22 05:40:40 +00:00
ajohnsen@google.com 31bfc41409 Make setDirectoryHandler and setErrorPageHandler setters, and add a jailRoot property.
While being on by default, disabling jailRoot allows following links to
outside the root directory.

BUG=https://code.google.com/p/dart/issues/detail?id=14196,https://code.google.com/p/dart/issues/detail?id=14193
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//31633003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28926 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-21 12:21:04 +00:00
ajohnsen@google.com 2c02feaa38 Expose the HttpRequest object in HttpRequestBody, making all request properties available.
BUG=https://code.google.com/p/dart/issues/detail?id=14259
R=sethladd@google.com, sgjesse@google.com

Review URL: https://codereview.chromium.org//31813002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28919 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-21 08:07:11 +00:00
ajohnsen@google.com 86e664e645 Preserve '\' in filenames for uploads, as Windows/IE contains them.
BUG=http://code.google.com/p/dart/issues/detail?id=13928
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//26973004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28515 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-11 12:36:14 +00:00
ajohnsen@google.com 326f48d476 Expand usage of defaultEncoding in HttpBody in the http_server package.
This fixes a few cases where other default encodings was used. Given
that we operate with the concept of a default encoding, to use that
encoding makes more sense.

BUG=https://code.google.com/p/dart/issues/detail?id=13928
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//26685004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28453 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-10 14:08:55 +00:00
whesse@google.com 428e84e7d4 Use Directory.systemTemp getter in pkg subdirectory of repository.
BUG=
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//25731003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28218 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-03 13:12:10 +00:00
lrn@google.com 12c9510193 Update implementations to use Object.identityHashCode for identity map/set
Update map/set constructors to have an .identity() constructor as well.

R=floitsch@google.com

Review URL: https://codereview.chromium.org//24267023

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27869 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-25 09:43:43 +00:00
floitsch@google.com 35d7140e66 Remove Encoding-enum from dart:io and add interface in dart:convert.
BUG= http://dartbug.com/6284
BUG= http://dartbug.com/7966
R=nweiz@google.com, sgjesse@google.com

Review URL: https://codereview.chromium.org//22872012

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26632 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-26 10:37:25 +00:00
sgjesse@google.com 353428a918 Remove the Path class from dart:io
The Path class in dart:io has been deprecated for some time
now. It was scheduled to be removed on August 11th, so here it
goes.

dart:io still uses the Path class internally, but now it is
private. I will trim it down to what is actually used in a
follow-up change.

R=ahe@google.com, devoncarew@google.com, whesse@google.com
BUG=http://dartbug.com/11666

Review URL: https://codereview.chromium.org//23054008

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26181 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-15 10:10:53 +00:00
ajohnsen@google.com 40c7d89d66 Move MimeMultipartTransformer and HttpBodyHandler to mime and http_server packages.
BUG=
R=whesse@google.com

Review URL: https://codereview.chromium.org//18438005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24991 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-15 08:40:36 +00:00
ajohnsen@google.com 1a5ccabf14 Correctly url-decode the path segment in the http_server.
BUG=
R=lrn@google.com

Review URL: https://codereview.chromium.org//18333003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24677 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-02 11:08:17 +00:00
ajohnsen@google.com 72219cf60b Don't test links on windows, for http_server.
BUG=

Review URL: https://codereview.chromium.org//18050017

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24589 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-28 13:37:38 +00:00
ajohnsen@google.com 4d6cde0779 Add directory-listing to VirtualDirectory.
BUG=
R=sgjesse@google.com, whesse@google.com

Review URL: https://codereview.chromium.org//17833003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24584 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-28 12:49:31 +00:00
ajohnsen@google.com 94f6029199 Add error-page support in VirtualDirectory.
BUG=
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//17589012

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24378 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-25 06:00:19 +00:00
ajohnsen@google.com 53badd793a Add auto-detection of MIME-type in VirtualDirectory.
Default charset for text/* is still missing.

BUG=
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//17573011

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24328 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-24 13:05:39 +00:00
ajohnsen@google.com c9b66a7973 Add new VirtualHost class to http_server package, for handling multiple hosts on multiple sources (HttpServer's).
It uses a by-name aproach, and thus depends on the host field to be
present.

BUG=
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//17581002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24318 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-24 10:07:19 +00:00
ajohnsen@google.com 0539f11c4a Add support for IfModifiedSince headers, in http_servers' VirtualDirectory.
BUG=
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//17582002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24314 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-24 09:23:33 +00:00
ajohnsen@google.com 8a687aab84 Don't test links on Windows, as we can't create relative links, in http_server.
BUG=

Review URL: https://codereview.chromium.org//17570006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24312 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-24 09:07:29 +00:00
ajohnsen@google.com 96a8fe6aed Add support for following links, in VirtualDirectory.
A link must be relative, and not escape the 'root' directory. The
implementation is kept conservative, to increase security.

BUG=
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//17582007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24310 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-24 08:21:51 +00:00
ajohnsen@google.com bb2980367c Fix virtual_directory_test and Fail, OK on dart2js/browsers.
BUG=

Review URL: https://codereview.chromium.org//16950015

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24285 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-21 12:20:03 +00:00
ajohnsen@google.com 0ef921b335 First push of a new 'http_server' dart package.
The package will contain helper-classes for writing http server, such as
VirtualDirectory, VirtualHost etc.

BUG=
R=sgjesse@google.com

Review URL: https://codereview.chromium.org//17544005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24281 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-21 11:22:31 +00:00