Remove the last uses of Missing in TestExpectations.  Missing no longer makes sense with the auto-rebaseliner

R=ojan,adamk

Review URL: https://chromiumcodereview.appspot.com/20191002

git-svn-id: svn://svn.chromium.org/blink/trunk@154879 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Remove a couple of dead client redirect functions in WebFrameTestProxy

BUG=257316

Review URL: https://chromiumcodereview.appspot.com/20177002

git-svn-id: svn://svn.chromium.org/blink/trunk@154880 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Do not normalize into NFC the values of form fields

This commit renames the TextEncoding::encode(const String&, UnencodableHandling) const
API function to normalizeAndEncode() to make clear that the function
first applies Unicode NFC normalization before encoding the string. All
existing references to encode() except for one were updated to call
normalizeAndEncode() instead.

TextEncoding::encode(const String&, UnencodableHandling) const is added
back as a new API function which only encodes the string, but does not
normalize the string before encoding.

The one call to the old encode() function that was not updated is in
FormDataList::appendString(const String&). This was left as a call to
the new encode() to fix Issue 117128.

Chrome and Safari are unlike other browsers in that they apply Unicode
NFC normalization to form values when submitting a form; in particular,
the following browsers were tested and found not to normalize the form
values:
- Firefox 22.0
- Firefox ESR 17.0.7
- Opera 12.16
- IE 6
- IE 7
- IE 8
- IE 9
- IE 10
- Amaya 11.4.7

NFC normalization actually changes the meaning of text in certain scripts.
Notably, there are certain Biblical Hebrew words for which normalization
causes the word to be erroneously encoded. One example is given on page 9
of the SBL Hebrew Font User Manual version 1.5:
http://www.sbl-site.org/Fonts/SBLHebrewManualv1.5.pdf
This example is added as the new form-data-encoding-3.html layout test.

BUG=117128

Review URL: https://chromiumcodereview.appspot.com/19845004

git-svn-id: svn://svn.chromium.org/blink/trunk@154881 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Add Ian Vollick to core/OWNERS.

Review URL: https://chromiumcodereview.appspot.com/20152003

git-svn-id: svn://svn.chromium.org/blink/trunk@154882 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Add a Blink API to set window features on a WebView.

This will allow for re-creating a popup with correct window features
after we've decided to block the popup and not create it previously.

With the old popup blocking behavior, the new WebView was just hidden,
and we never had to set the features manually.

BUG=38458
R=abarth@chromium.org

Review URL: https://chromiumcodereview.appspot.com/19804008

git-svn-id: svn://svn.chromium.org/blink/trunk@154883 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Move runin to original position when sibling element is destroyed. Additionally, if If moveRunInUnderSiblingBlockIfNeeded is called when the sibling run-in block is being destroyed, it means that the run-in is moving to original position and we do not need to do nothing.

R=
BUG=260388

Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=154557

Review URL: https://chromiumcodereview.appspot.com/19290002

git-svn-id: svn://svn.chromium.org/blink/trunk@154884 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Refactoring: Clarifying DOMWindow ownership by removing Frame::setDOMWindow()

This chagne replaces Frame::setDOMWindow() by Frame::clearDOMWindow() and
Frame::ensureDOMWindow() to clarify the owner of DOMWindow objects.
Now it is created and owned by Frame.

BUG=none
TEST=none
R=abarth, japhet

Review URL: https://chromiumcodereview.appspot.com/19798011

git-svn-id: svn://svn.chromium.org/blink/trunk@154885 bbb929c8-8fbe-4397-9dbb-9b2b20218538
WebString::utf8() should return a std::string

There don't appear to be any strong reasons for prefering WebCString over
std::string in the API. To improve integration with Chromium, we're going to
move the API over to using std::string over time.

This first callsite is useful to migrate because it makes it possible to
optimize the conversion of WebURL into GURL.

R=darin
BUG=261412

Review URL: https://chromiumcodereview.appspot.com/20176003

git-svn-id: svn://svn.chromium.org/blink/trunk@154886 bbb929c8-8fbe-4397-9dbb-9b2b20218538
New positioning model: Borders

Converting to the shape coordinate system was not properly accounting
for borders and padding. This has been fixed and a new convienence
method added because of the added complexity of the conversion.

This is a port from WebKit: http://trac.webkit.org/changeset/153058

BUG=260357

Review URL: https://chromiumcodereview.appspot.com/20107003

git-svn-id: svn://svn.chromium.org/blink/trunk@154887 bbb929c8-8fbe-4397-9dbb-9b2b20218538
StyleSheetCollection should be aware of scoped styles.

This also fixes an issue: styles are not correctly applied if order of scoping nodes is different from order of scoped styles.


BUG=244314

Review URL: https://chromiumcodereview.appspot.com/18980004

git-svn-id: svn://svn.chromium.org/blink/trunk@154888 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Add experimental unprefixed Shadow DOM API.

This change exposes unprefixed Shadow DOM API behind the "experimental web
platform features" runtime flag. At this moment, the existing prefixed API
is kept as-is, but it is planned to sunset the prefixed API eventually.

This change also replaces every occurence of prefixed Shadow DOM APIs in
tests. For now, files under PerformanceTests/ are excluded because
the performance tests are run on the environment where the "experimental web
platform features" flag is not set.

Here's the record of commands I ran to replace the prefixed API (or the record
of my mad skillz on shellscripts):
$ git grep -e webkitCreateShadowRoot -e webkitPseudo -e webkitShadowRoot | \
> cut --delimiter=: --fields=1 | sort | uniq | \
> while read F; do \
> if (echo $F | grep -q -e '/Element\.idl' -e 'PerformanceTests/'); \
> then continue; \
> fi; \
> sed -i s/webkitCreateShadowRoot/createShadowRoot/g $F; \
> sed -i s/webkitPseudo/pseudo/g $F; \
> sed -i s/webkitShadowRoot/shadowRoot/g $F; \
> done

BUG=242153
R=morrita@chromium.org,tkent@chromium.org

Review URL: https://chromiumcodereview.appspot.com/19628004

git-svn-id: svn://svn.chromium.org/blink/trunk@154889 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Code generator makes useless include line to the binding files.

There are useless include statement in the Internals.idl,
because of generating duplicated include statements from code generator.
It is better to remove it from code generator.

BUG=263278

Review URL: https://chromiumcodereview.appspot.com/19688011

git-svn-id: svn://svn.chromium.org/blink/trunk@154890 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Expose a way to set a view's base background color.

BUG=263263

Review URL: https://chromiumcodereview.appspot.com/19883002

git-svn-id: svn://svn.chromium.org/blink/trunk@154891 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Make StylePropertyMetadata a 16 bits object.

This is a new patch after the rollout of 153173.

Profiling the benchmark with Intel Vtune to find out the performance regression
showed that copying uint16_t, so StylePropertyMetadata, is not
a fast operation in term of assembly code and has a big penalty on Windows 
MSVC over unsigned for example. The latter produces a much faster code 
when using unsigned over uint16_t (45% difference in the benchmark).

The patch fixes the regression by avoiding the copies of StylePropertyMetada
when applicable (by using const ref).

The second part of the fix is avoiding the conversion from an int (enum) to
an uint16_t in a tight loop such as StylePropertySet::findPropertyIndex 
(which is the hotspot of the benchmark).

On my Windows 7 64 bits Core i5 machine CSSPropertySetterGetter results are :
- avg : 2714 runs/s with the patch
- avg : 2696 runs/s without the patch

Apple internal MemBuster reports ~1.8 Mb of improvements (loading the top 50 Alexa websites).

Review URL: https://chromiumcodereview.appspot.com/19846004

git-svn-id: svn://svn.chromium.org/blink/trunk@154892 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Sort IDL definitions in Perl, so in order in JSON

There's one difference between JSON files from the Perl parser and the
Python parser, namely Promise.idl.

This CL fixes it (by adding a sort), so the JSON is exactly the same.


The difference is b/c Perl lists definitions in the order of definition,
while Python lists them in alphabetical order.
The only case where these differ is Promise.idl, which has two callback
functions in non-alphabetical order.
They're in this order upstream, and this is allowed, hence not changing
the IDL file:
https://github.com/slightlyoff/Promises/blob/master/Promise.idl

The fix is to sort the definitions (within a type: callback functions,
enumerations, interfaces). Do this for each type of definition, for
consistency, though in practice this will generally be a nop (only 1 interface
and usually no enumerations or callback functions).

(We're *not* sorting interface members, as these need to appear in order,
due to overloading.)

Review URL: https://chromiumcodereview.appspot.com/19458004

git-svn-id: svn://svn.chromium.org/blink/trunk@154894 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Add LegacyImplementedInBaseClass check to interface_dependency_resolver.py

Christophe added a new extended attribute last week that changes the parsing
(JSON) slightly (of Window.idl and WorkerGlobalScope.idl).
Just noticed this, so adding to Python.

Reference:
Issue 19675008: Move btoa() / atob() implementation out of DOMWindow
https://chromiumcodereview.appspot.com/19675008

BUG=261226

Review URL: https://chromiumcodereview.appspot.com/19693021

git-svn-id: svn://svn.chromium.org/blink/trunk@154895 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Refactoring patch

The IDL reader (and resolver, and validator) currently has functions
with really long signatures, due to passing lots of setup
parameters around.
The better solution is to use these setup parameters *once*
to make an object.
This makes the interfaces much cleaner (shorter signatures),
and the function bodies cleaner because setup is put in a setup
function.

Compare:
Before:
interface_dependency_resolver.resolve_dependencies(
  definitions, idl_filename, interface_dependencies_filename,
  additional_idl_filenames, verbose=verbose)

After:
self.interface_dependency_resolver.resolve_dependencies(
  definitions, interface_name)

This allows us to remove a circular module dependency
(idl_reader <-> interface_dependency_resolver),
since we can pass an (instantiated) object, rather than
having circular imports for functions.

This also regularizes use of
interface_name/idl_basename/idl_filename
in dependency resolution, using the short interface_name
except when we actually need the full filename.

...and moves an error up to where we know the filename,
fixing a bug where we report Extended Attribute errors
on the main IDL file, even if they occur in a dependency.

Review URL: https://chromiumcodereview.appspot.com/19934009

git-svn-id: svn://svn.chromium.org/blink/trunk@154896 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Introduce toSVGRectElement(), use it

As a step to change static_cast with toSVGXXX, static_cast<SVGRectElement*> can
be changed with toSVGRectElement().

BUG=

Review URL: https://chromiumcodereview.appspot.com/19781008

git-svn-id: svn://svn.chromium.org/blink/trunk@154897 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Move the policy for processing Custom Elements into DocumentInit.

This does not change any behavior. But when documents share a Custom
Element registration context, DocumentInit will be the vector that
conveys the registration context to the new document.

TL;DR Soon, trojan:wooden horse :: registration context:DocumentInit.

BUG=247219

Review URL: https://chromiumcodereview.appspot.com/20106005

git-svn-id: svn://svn.chromium.org/blink/trunk@154898 bbb929c8-8fbe-4397-9dbb-9b2b20218538
Do not include internal libwebp header in Blink

The internal headers are not installed when libwebp is installed with a package manager, e.g. media-libs/libwebp on Gentoo, or libwebp2/libwebp-dev on Debian/Ubuntu.

So, if they are included in Blink, it would break Blink compile when using system installed libwebp.

BUG=

Review URL: https://chromiumcodereview.appspot.com/20141003

git-svn-id: svn://svn.chromium.org/blink/trunk@154899 bbb929c8-8fbe-4397-9dbb-9b2b20218538